¿Existe una .vimrcconfiguración para eliminar automáticamente los espacios en blanco al guardar un archivo?
Idealmente (para estar seguro) me gustaría tener esta funcionalidad solo para ciertos archivos, por ejemplo *.rb
¿Existe una .vimrcconfiguración para eliminar automáticamente los espacios en blanco al guardar un archivo?
Idealmente (para estar seguro) me gustaría tener esta funcionalidad solo para ciertos archivos, por ejemplo *.rb
Respuestas:
Esto funciona (en el archivo .vimrc) para todos los archivos:
autocmd BufWritePre * :%s/\s\+$//e
Esto funciona (en el archivo .vimrc) solo para archivos ruby (.rb):
autocmd BufWritePre *.rb :%s/\s\+$//e
e?
Para mantener la posición del cursor use algo como:
function! <SID>StripTrailingWhitespaces()
let l = line(".")
let c = col(".")
%s/\s\+$//e
call cursor(l, c)
endfun
de lo contrario, el cursor terminaría al comienzo de la última línea de reemplazo después de guardar.
Ejemplo : tiene un espacio al final de la línea 122, está en línea 982e ingresa :w. Si no se restaura la posición, el cursor terminará al comienzo de la línea y, por lo 122tanto, se eliminará el flujo de trabajo.
Configure la llamada para funcionar usando autocmdalgunos ejemplos:
" 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.
También se puede usar, pero no es necesario en este caso, getpos () por:
let save_cursor = getpos(".")
" Some replace command
call setpos('.', save_cursor)
" To list values to variables use:
let [bufnum, lnum, col, off] = getpos(".")
Mi complemento DeleteTrailingWhitespace hace esto y, en contraste con los diversos elementos :autocmdsflotantes simples , también maneja casos especiales, puede consultar al usuario o anular las escrituras con espacios en blanco finales.
La página del complemento contiene enlaces a alternativas; También hay una gran discusión en Vim Tips Wiki .