2011-08-16 17 views
13

मैं HTML फ़ाइलों को संपादित कर रहा हूं। मैं इस कीमैप का उपयोग फ़ायरफ़ॉक्स शुरू करने के लिए पृष्ठ का पूर्वावलोकन करने:रीफ्रेश करें विम बफर

map <F6> :update<CR>:silent !xdg-open %:p<CR> 

लेकिन इस आदेश के बाद, विम खिड़की पूरी तरह से काला हो जाता है। मुझे इसे फिर से दिखने के लिए प्रत्येक पंक्ति को स्क्रॉल करने की आवश्यकता है।

तो मैं ताजा बफर में एक फ़ंक्शन लिखना चाहता हूं। यहां मैंने यह किया है:

function! Refresh()                                    
    " code 
    set noconfirm 
    bufdo e! 
    set confirm 
endfunction 

nmap <F5> :call Refresh()<CR> 

मुझे इस post से विचार मिला। लेकिन यह काम नहीं करता है।

+3

यदि मैं Ctrl + L दबाता हूं तो इसे फिर से चलाता है। –

उत्तर

24

स्क्रीन को फिर से निकालने के लिए Ctrlएल का उपयोग करें। आप :redraw का भी उपयोग कर सकते हैं।

इन पर help देखें।

7

कैसे एक "पुनः बनाने" अपने कार्य (जो के रूप ctrl-एल एक ही करता है)

:redr[aw][!] Redraw the screen right now. When ! is included it is 
       cleared first. 
       Useful to update the screen halfway executing a script 
       or function. Also when halfway a mapping and 
       'lazyredraw' is set. 
+0

किसी कारण से, 'redr' ने मेरी स्क्रीन रीफ्रेश नहीं की, लेकिन CtrlL ने किया। सोचता हूँ क्यों। – TankorSmash

+2

क्या होगा यदि आप अंत में विस्मयादिबोधक चिह्न जोड़ते हैं? उदाहरण: ': redr!' – wilkystyle

2

यहाँ कर जोड़ने के बारे में है का समाधान खाली स्क्रीन मुद्दे के साथ HTML दस्तावेज़ का पूर्वावलोकन करने के लिए मेरे बाइंडिंग:

autocmd BufRead *.html map <F5> :exe ':silent !open -a /Applications/Firefox.app %'<CR>:redr!<CR>

मैं बाइंडिंग के लिए autocmd का उपयोग करना पसंद करता हूं, क्योंकि मैं किस प्रकार की फाइल में काम कर रहा हूं, इस पर निर्भर करता हूं कि मैं किस प्रकार की फाइल में काम कर रहा हूं। उदाहरण के लिए autocmd के साथ मैं एचटीएमएल फाइलों पर फ़ायरफ़ॉक्स में दस्तावेज़ का पूर्वावलोकन करने के लिए F5 को मानचित्र कर सकता हूं और नोड निष्पादित करने के लिए जेएस-फाइलों पर एक ही कुंजी F5 को मानचित्र करें।

संबंधित मुद्दे