5

autocmd挿入モードを終了すると、ファイル内のすべての空白を置き換えるを作成しようとしています。ただし、Vimにパターンを記憶させ、すでにそこにあったものを削除するAFAIK。

" Add function for remove tailing whitespaces
command! CleanupTrailingSpaces :%s/\s\+$//ge | :nohlsearch
autocmd InsertLeave * :CleanupTrailingSpaces

:s[ubstitute]パターンを保存しないようにするためのフラグはありますか?

4

2 に答える 2

8

このようなフラグは便利ですが、まだ存在していません。ただし、次のようにレジスタを保存およびリセットできます。

" Add function for remove tailing whitespaces
command! CleanupTrailingSpaces let reset = @/ | %s/\s\+$//ge | let @/ = reset | nohlsearch
autocmd InsertLeave * :CleanupTrailingSpaces
于 2012-08-20T16:28:53.893 に答える
3

私はvimcastsから似たようなものを手に入れました。:-)

function! <SID>StripTrailingWhitespaces()
    " Preparation: save last search, and cursor position.
    let _s=@/
    let l = line(".")
    let c = col(".")
    " Do the business:
    %s/\s\+$//e
    " Clean up: restore previous search history, and cursor position
    let @/=_s
    call cursor(l, c)
endfunction

nnoremap <silent> <F5> :call <SID>StripTrailingWhitespaces()<CR>
autocmd BufWritePre *.py,*.js :call <SID>StripTrailingWhitespaces()
于 2012-08-20T16:52:12.510 に答える