vim を使用して C コードを記述します。行の途中に何かを書き、 を使用してこの行の最後にジャンプしようとすると、意図しShift+A
たよりも少し先にジャンプすることがあります。このような:
.vimrc のどこが悪いのかわかりません。対処法を誰が教えてくれますか?
vim を使用して C コードを記述します。行の途中に何かを書き、 を使用してこの行の最後にジャンプしようとすると、意図しShift+A
たよりも少し先にジャンプすることがあります。このような:
.vimrc のどこが悪いのかわかりません。対処法を誰が教えてくれますか?
その行には末尾の空白があります。これは、特に:set virtualedit=all
Vim で、または他の (劣った :-) エディターで忍び込む可能性があります。Vimにこれらを表示させることができます
:set list
(便利なトグル マッピングは で作成できます:set invlist list?
)
このような問題のために、多くの人は末尾の空白に眉をひそめます。それらをエラーとして表示するプラグイン (たとえば、私のShowTrailingWhitespace プラグイン) と、それらを削除するプラグイン(私のDeleteTrailingWhitespace プラグインなど) があります (保存時に自動的に)。(プラグイン ページには、代替プラグインへのリンクがあります。)
印刷できない文字があるかどうかを確認するには、次のようにします。
:set list
ファイルを保存するときにこれをvimrcに入れると、各行の最後の空白が取り除かれます。
autocmd BufWritePre * call RemoveTrailingWhitespace()
function! RemoveTrailingWhitespace()
if &ft != "diff"
let b:curcol = col(".")
let b:curline = line(".")
silent! %s/\s\+$//
silent! %s/\(\s*\n\)\+\%$//
call cursor(b:curline, b:curcol)
endif
endfunction