.vimrc
파일을 저장할 때 뒤따르는 공백을 자동으로 제거하는 설정이 있나요 ?
이상적으로는 (안전을 위해) 특정 파일에 대해서만 이 기능을 갖고 싶습니다.*.rb
답변1
이는 모든 파일(.vimrc 파일)에 적용됩니다.
autocmd BufWritePre * :%s/\s\+$//e
이는 Ruby(.rb) 파일(.vimrc 파일)에만 작동합니다.
autocmd BufWritePre *.rb :%s/\s\+$//e
답변2
커서 위치를 유지하려면 다음 명령을 사용하십시오.
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.
사용도 가능하지만 이 경우에는 필요하지 않습니다.위치 가져오기()통과:
let save_cursor = getpos(".")
" Some replace command
call setpos('.', save_cursor)
" To list values to variables use:
let [bufnum, lnum, col, off] = getpos(".")
답변3
내 거후행 공백 플러그인 제거이렇게 하면 다양한 단순 부동 소수점과 달리 :autocmds
특수한 경우도 처리하고 사용자에게 쿼리하거나 후행 공백이 있는 쓰기를 중단할 수 있습니다.
플러그인 페이지에는 대안에 대한 링크도 포함되어 있습니다.빔 팁 위키.