我使用vim编写C代码。当我在一行中间写一些内容然后尝试使用Shift+A
跳到这一行的末尾时,它有时会比我想要的跳得更远。
像这样:
我不知道我的.vimrc有什么问题。谁能告诉我如何处理它?</ p>
答案 0 :(得分:1)
该行中有尾随空格。这可以偷偷进入Vim中的:set virtualedit=all
或其他(劣等的:-)编辑。您可以使用
:set list
(可以使用:set invlist list?
)
由于这样的麻烦,许多人对尾随的空白皱眉。有些插件可以将它们显示为错误(例如我的ShowTrailingWhitespace plugin),还有其他插件(例如我的DeleteTrailingWhitespace plugin)可以删除它们(甚至可以自动保存)。 (插件页面包含替代插件的链接。)
答案 1 :(得分:0)
您可能希望这样做以查看是否存在一些不可打印的字符:
:set list
答案 2 :(得分: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