कैसे Vi और विम में बचाने के लिए स्वचालित रूप से अनुगामी रिक्त स्थान पर पट्टी करें?


22

क्या .vimrcफ़ाइल को सहेजते समय स्वचालित रूप से अनुगामी व्हाट्सएप को हटाने के लिए एक सेटिंग है?

आदर्श रूप से (सुरक्षित होने के लिए) मैं केवल कुछ फ़ाइलों के लिए यह कार्यक्षमता रखना चाहूंगा, उदा *.rb

जवाबों:


25

यह सभी फ़ाइलों के लिए (.vimrc फ़ाइल) काम करता है:

autocmd BufWritePre * :%s/\s\+$//e

यह काम करता है (.vimrc फ़ाइल) सिर्फ रूबी (.rb) फ़ाइलों के लिए:

autocmd BufWritePre *.rb :%s/\s\+$//e

6
यह समाधान अच्छा है, लेकिन मुझे लगता है कि नीचे @ Sukminder का समाधान बेहतर है, क्योंकि यह कर्सर को सही ढंग से पुनर्निर्मित करता है।
hlin117

वह क्या eउपयोग करता है ?
अक्जेंट्री

19

कर्सर स्थिति रखने के लिए कुछ का उपयोग करें:

function! <SID>StripTrailingWhitespaces()
    let l = line(".")
    let c = col(".")
    %s/\s\+$//e
    call cursor(l, c)
endfun

और कर्सर सहेजने के बाद अंतिम प्रतिस्थापन की लाइन की शुरुआत में समाप्त हो जाएगा।

उदाहरण : आपके पास पंक्ति के अंत में एक जगह है 122, आप लाइन पर हैं 982और दर्ज करें :w। पुनर्स्थापना की स्थिति नहीं, इसके परिणामस्वरूप पंक्ति की शुरुआत में कर्सर ख़त्म हो जाएगा 122जिससे काम का प्रवाह समाप्त हो जाएगा ।

autocmdकुछ उदाहरणों का उपयोग करके फ़ंक्शन को कॉल सेट करें :

" Using file extension
autocmd BufWritePre *.h,*.c,*.java :call <SID>StripTrailingWhitespaces()

" Often files are not necessarily identified by extension, if so use e.g.:
autocmd BufWritePre * if &ft =~ 'sh\|perl\|python' | :call <SID>StripTrailingWhitespaces() | endif

" Or if you want it to be called when file-type i set
autocmd FileType sh,perl,python  :call <SID>StripTrailingWhitespaces()

" etc.

एक भी उपयोग कर सकते हैं, लेकिन इस मामले में जरूरत नहीं है, getpos () द्वारा:

let save_cursor = getpos(".")
" Some replace command
call setpos('.', save_cursor)

" To list values to variables use:
let [bufnum, lnum, col, off] = getpos(".")

2

मेरा DeleteTrailingWhitespace प्लगइन ऐसा करता है और, विभिन्न सरल :autocmdsफ़्लोटिंग के विपरीत , विशेष मामलों को भी संभालता है, उपयोगकर्ता को क्वेरी कर सकता है, या अनुगामी व्हाट्सएप के साथ लिखता है।

प्लगइन पृष्ठ में विकल्पों के लिंक शामिल हैं; विम टिप्स विकी पर एक बड़ी चर्चा है ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.