2013-11-04 69 views
0

我使用vim編寫C代碼。當我在一條線的中間寫一些東西,然後嘗試使用Shift+A跳到這一行的末尾時,它有時會比我想要的跳得更遠。 這樣子:enter image description hereShift_A跳過VIM中的end_of_line

我不知道我的.vimrc有什麼問題。誰能告訴我如何處理它?

+1

你有尾隨空格嗎? – kev

+1

尾隨空格,'virtualedit' ...你不會顯示你的vimrc中有什麼:你認爲我們會怎樣告訴你它有什麼問題? – romainl

回答

0

您可能要做到這一點,看看是否有一些不可打印的字符: :set list

1

存在這樣行尾部的空白。這可以潛入特別是Vim中的:set virtualedit=all,或其他(劣等:-)編輯。你可以使Vim顯示這些與

:set list 

(A得心應手切換映射可以:set invlist list?創建)

因爲這樣的麻煩,很多人不贊成尾隨空白。有些插件會將它們顯示爲錯誤(例如我的ShowTrailingWhitespace plugin),而其他插件(如我的DeleteTrailingWhitespace plugin)會將其刪除(甚至在保存時自動刪除)。 (插件頁面有鏈接到其他插件。)

0

把這個放在你的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