2012-08-22 36 views
7

जारी करने से पहले बफर को स्वत: सहेजने का कोई तरीका है: बनाना? मैं मैकवीम का उपयोग करता हूं और कमांड-बी के लिए बाध्य है, जो बहुत उपयोगी है लेकिन मुझे यह समझने में प्रतीत नहीं होता कि मेक से पहले बफर कैसे लिखना है। मैंने सभी autocmd घटनाओं को देखा और कुछ भी फिट नहीं लग रहा था।ऑटोसॉव बफर ऑन: विम में बनाओ?

वहाँ एक QuickFixCmdPre जो एक मेकअप से पहले बुलाया जाना चाहिए, लेकिन यह काम करने के लिए प्राप्त करने के लिए नहीं कर पा रहे है:

~/इसके बजाय एक autocmd आदेश, बनाने की .vimrc

function! AutoSaveOnMake() 
    if &modified 
     write 
    endif 
endfunction 

autocmd QuickFixCmdPre *.c :call AutoSaveOnMake() 

उत्तर

18

विम एक अंतर्निहित में है कि के लिए सेटिंग:

:set autowrite 

, फ़ाइल की सामग्री लिखें अगर यह संशोधन किया गया है, पर प्रत्येक : अगले,: पीछे करने,: पिछले ,: पहला,: पिछला,: रोकें, निलंबित करें: टैग,:!, : बनाना, CTRL-] और CTRL-^कमांड; और जब ए: बफर, CTRL-O, CTRL-I, '{A-Z0-9}, या `{A-Z0-9} कमांड एक दूसरे फ़ाइल में ले जाता है।

+0

में जाना है, मुझे यह पसंद है। प्रतिदिन विम के बारे में कुछ नया सीखें। –

3

क्यों नहीं बस कमांड-बी मैपिंग अपडेट करें?

nnoremap <d-b> :update<bar>make<cr> 
+0

कमांड-बी को रीमेप नहीं लग रहा है। यदि मैं कोशिश करता हूं: nnoremap : अद्यतन उदाहरण के लिए बनाएं, यह काम करता है, लेकिन नहीं। – Chris

+0

सुनिश्चित करें कि आप इसे '.gvimrc' फ़ाइल में डाल दें। Http://superuser.com/questions/249448/macvim-re-map-command-key-combinations-like-d-f –

+0

को सुपरसियर टिप्पणी के साथ उपरोक्त रीमैप कमांड को संयोजित करके काम कर रहा है। जैसा कि आपने कहा था कि इसे '.gvimrc' – Chris