Esiste .vimrc
un'impostazione per rimuovere automaticamente gli spazi vuoti finali quando si salva un file?
Idealmente (per sicurezza) vorrei avere questa funzionalità solo per determinati file, ad es *.rb
Esiste .vimrc
un'impostazione per rimuovere automaticamente gli spazi vuoti finali quando si salva un file?
Idealmente (per sicurezza) vorrei avere questa funzionalità solo per determinati file, ad es *.rb
Risposte:
Funziona (nel file .vimrc) per tutti i file:
autocmd BufWritePre * :%s/\s\+$//e
Funziona (nel file .vimrc) solo per i file ruby (.rb):
autocmd BufWritePre *.rb :%s/\s\+$//e
e
usa quel lastet ?
Per mantenere la posizione del cursore usare qualcosa come:
function! <SID>StripTrailingWhitespaces()
let l = line(".")
let c = col(".")
%s/\s\+$//e
call cursor(l, c)
endfun
altrimenti il cursore finirebbe all'inizio della riga dell'ultima sostituzione dopo il salvataggio.
Esempio : hai uno spazio alla fine della linea 122
, sei in linea 982
e inserisci :w
. Non ripristinando la posizione, si tradurrebbe in una fine del cursore all'inizio della riga 122
, uccidendo così il flusso di lavoro.
Imposta la chiamata per funzionare usando autocmd
alcuni esempi:
" 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.
Si può anche usare, ma non necessario in questo caso, getpos () da:
let save_cursor = getpos(".")
" Some replace command
call setpos('.', save_cursor)
" To list values to variables use:
let [bufnum, lnum, col, off] = getpos(".")
Il mio plugin DeleteTrailingWhitespace fa questo e, contrariamente ai vari semplici :autocmds
floating, gestisce anche casi speciali, può interrogare l'utente o interrompere le scritture con spazi vuoti finali.
La pagina dei plugin contiene collegamenti ad alternative; c'è anche una grande discussione sul Vim Tips Wiki .