2013-06-06 14 views
5

स्थानांतरित करने से विम पूर्वावलोकन विंडो को रोकना क्या पूर्वावलोकन विंडो खोला/बंद होने पर autocmd है?मुख्य

जब मैं पूर्वावलोकन विंडो खोला जाता हूं, तो मुख्य विंडो एन लाइनों को स्क्रॉल करना चाहता हूं, फिर एन बंद होने पर एन लाइनें नीचे चलने वाले "चलती पाठ" प्रभाव का विरोध करने के लिए बंद होती हैं।

क्या मैं प्रासंगिक autocmd (और यह क्या है) के साथ ऐसा करने में सक्षम हूं, या क्या यह मेरे लिए इसे प्राप्त करने का एक बेहतर तरीका है?

उत्तर

1

ऐसा कोई autocmd event नहीं है। लेकिन आप उपयोग कर सकते हैं WinEnter और BufDeletepreviewwindow विकल्प के साथ जुड़े कुछ इसी तरह प्राप्त करने के लिए।

WinEnter का उपयोग करके आप previewwindow देख सकते हैं; यदि आप पूर्वावलोकन विंडो पर हैं, तो आप बाद की घटनाओं है कि पूर्वावलोकन विंडो को अन्य विंडो में जाने और वापस द्वारा उत्पन्न किया जा सकता से इस घटना अलग करने के लिए एक बफर चर सेट कर सकते हैं। पूर्वावलोकन विंडो बंद होने पर आप अपने फ़ंक्शन को कॉल करने के लिए au BufDelete <buffer> call MyRestoreMainWindow() भी सेट कर सकते हैं।

0

मुझे यह प्रश्न अक्सर पूछता है और हमेशा मेरे सिर को खरोंच कर रहा है कि खिड़की से चलने वाले लोग क्या सोचते हैं कि मुझे अनुभव नहीं है।

ठीक है, आज यह मेरे लिए हुआ है कि दो विकल्प है कि मैं अपने एक लंबे समय पहले ~/.vimrc में शामिल किया है को रोकने कि खतरनाक खिड़की-स्थानांतरण के सुखद पक्ष प्रभाव है:

set splitbelow 
set splitright 

इसे आज़मा कर देखें !

+0

मैं उन लोगों के रूप में अच्छी तरह से स्थापित किया है, मैं आंदोलन तब होता है जब इस बारे में बात कर रहा हूँ की स्थापना मूल tabbar बहाल करने के लिए: हमेशा एक टैब बार दिखाने के लिए - लेकिन यह काम करने के लिए लगता है कोई करता है: 'ps/कुछ /', फिर ': pclose'। –

+0

आप सही हैं। वह आंदोलन तब होता है जब कर्सर खिड़की के बीच से नीचे होता है। हो सकता है कि 'nnoremap ps ZT की तरह कुछ: ps'? – romainl

+0

मैं आंदोलन हर बार विंडो खोलता रोकना चाहते हैं, मैं वास्तव में कभी नहीं का उपयोग ': ps', यह सिर्फ एक मुद्दा दिखा उदाहरण था। –

0

मैं वास्तव में टैब बार को छोड़कर वही चीज़ सोच रहा था - टैब बार दिखाए जाने या छिपाने के दौरान उस परेशान बदलाव को कैसे रोकें। क्या आपने एक रैपर फ़ंक्शन माना है? निम्नलिखित (यह अभी भी एक बदलाव का कारण अगर पूर्वावलोकन विंडो कर्सर अस्पष्ट होता होगा)

se splitbelow splitright 
fun! PsWrapper(text) 
    let view=winsaveview() 
    exe 'ps' a:text 
    call winrestview(view) 
endfun 

हम यहां पर हैं ही ps उदाहरण के लिए काम करने के लिए लगता है ... टैब बार मामला कुछ काला जादू की आवश्यकता के लिए लगता है । यानी, के रूप में किसी ने कहा, tabbar पाठ नीचे स्क्रॉल करने के लिए यदि कर्सर मध्य लाइन (??) से ऊपर है कारण होगा।

let [view,g:stal]=[winsaveview(),&stal] 
let [view.topline,&stal]=[view.topline+!g:stal,2] 
call winrestview(view) 

और

let [view.topline,&stal]=[view.topline-!g:stal,g:stal] 
call winrestview(view) 
+0

आपको हमेशा टैब बार को हमेशा दिखाना चाहिए। हमेशा यह देखने में सक्षम नहीं होता कि आप किस फ़ाइल में शीर्ष से हैं ... –