¿Existe una .vimrc
configuració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 .vimrc
configuració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 982
e ingresa :w
. Si no se restaura la posición, el cursor terminará al comienzo de la línea y, por lo 122
tanto, se eliminará el flujo de trabajo.
Configure la llamada para funcionar usando autocmd
algunos 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 :autocmds
flotantes 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 .