2011-06-21 10 views
9

वापस स्विच मैं प्रलेखन से इस महान आदेश की खोज की है:, DiffOrig का शीघ्रता से अवलोकन ले रहा है तो

command DiffOrig vert new | set bt=nofile | r # | 0d_ | diffthis 
    \ | wincmd p | diffthis 

तो मैं इस के साथ आ गया है:

command DiffOrig vert new | set bt=nofile | r # | 0d_ | diffthis | wincmd p | diffthis | wincmd p 
map <Leader>do :DiffOrig<cr> 
map <leader>dc :q<cr>:diffoff!<cr> 

समस्या है , जब मैं \dc से, यह फ़ाइल की शुरुआत में वापस कूद जाएगा, जहां मैंने \do जारी करने से पहले इसे छोड़ दिया था। इसे कैसे ठीक करें?

कृपया इसे स्वयं आज़माएं, देखें कि समस्याएं क्या हैं और उन्हें कैसे ठीक किया जाए। और मुझे बताएं कि उन्हें कैसे ठीक किया जाए :-)

+0

मुझे ': q' के बजाय': bd' का उपयोग करना पसंद है, क्योंकि यह वास्तव में खिड़की को बंद करने के बजाय स्क्रैच बफर को हटा देता है। –

उत्तर

6

आप की कोशिश कर सकते:

command DiffOrig let g:diffline = line('.') | vert new | set bt=nofile | r # | 0d_ | diffthis | :exe "norm! ".g:diffline."G" | wincmd p | diffthis | wincmd p 
nnoremap <Leader>do :DiffOrig<cr> 
nnoremap <leader>dc :q<cr>:diffoff<cr>:exe "norm! ".g:diffline."G"<cr> 
+2

हां, मुझे पता है कि यह पुराना है, लेकिन मुझे कोई समस्या मिली, और कहा गया मुद्दा हल करने के लिए। यदि आप vim चलते समय अपने ~/.vimrc को संसाधन करते हैं, तो आपको पहले से मौजूद कमांड के बारे में त्रुटि मिलती है। उस त्रुटि को हटाने के लिए, '!' जोड़ें 'कमांड करने के लिए यह' आदेश की तरह दिखता है! डिफऑर्ग .... '(आदि)। – demure

2

आप विंडो में :q को बंद करना चाहते हैं, और फिर :diffoff शेष विंडो में diff स्वरूपण को बंद करने के लिए। सुनिश्चित नहीं है कि यह एक आदेश में किया जा सकता है।

+0

धन्यवाद, लेकिन अब मेरा प्रश्न देखें, मैंने इसे थोड़ा संपादित किया है। – Flavius

+2

मैं 'diffoff!' करना पसंद करता हूं क्योंकि यह सभी विंडो को 'diffoff' करेगा। –

+0

उन विंडो में 'q' के बजाय जिन्हें आप बंद करना चाहते हैं, आप उस विंडो में 'चालू' (केवल 'के लिए छोटा) भी कर सकते हैं जिसे आप रखना चाहते हैं! – dotancohen

1

diff विंडो बंद करें और वापस फ़ाइल संपादित कर रहे थे करने के लिए जाने के लिए, आपको अपने .vimrc फ़ाइल को यह जोड़ने की कोशिश कर सकते हैं:

अगर मौजूद है ("! : DiffOff ")
    आदेश DiffOff diffoff < बार > केवल
endif

फिर ई nter: diff windows बंद करने के लिए DiffOff।

+0

धन्यवाद। किसी भी विचार को एक उत्थान का हकदार है! – Flavius

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