我使用vim編寫C代碼。當我在一條線的中間寫一些東西,然後嘗試使用Shift+A
跳到這一行的末尾時,它有時會比我想要的跳得更遠。 這樣子:Shift_A跳過VIM中的end_of_line
我不知道我的.vimrc有什麼問題。誰能告訴我如何處理它?
我使用vim編寫C代碼。當我在一條線的中間寫一些東西,然後嘗試使用Shift+A
跳到這一行的末尾時,它有時會比我想要的跳得更遠。 這樣子:Shift_A跳過VIM中的end_of_line
我不知道我的.vimrc有什麼問題。誰能告訴我如何處理它?
您可能要做到這一點,看看是否有一些不可打印的字符: :set list
存在這樣行尾部的空白。這可以潛入特別是Vim中的:set virtualedit=all
,或其他(劣等:-)編輯。你可以使Vim顯示這些與
:set list
(A得心應手切換映射可以:set invlist list?
創建)
因爲這樣的麻煩,很多人不贊成尾隨空白。有些插件會將它們顯示爲錯誤(例如我的ShowTrailingWhitespace plugin),而其他插件(如我的DeleteTrailingWhitespace plugin)會將其刪除(甚至在保存時自動刪除)。 (插件頁面有鏈接到其他插件。)
把這個放在你的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
你有尾隨空格嗎? – kev
尾隨空格,'virtualedit' ...你不會顯示你的vimrc中有什麼:你認爲我們會怎樣告訴你它有什麼問題? – romainl