我使用 vim 编写 C 代码。当我在一行中间写一些东西然后尝试使用 跳到这一行的末尾时Shift+A
,它有时会比我想要的跳得更远一些。像这样:
我不知道我的 .vimrc 有什么问题。谁能告诉我怎么处理?
我使用 vim 编写 C 代码。当我在一行中间写一些东西然后尝试使用 跳到这一行的末尾时Shift+A
,它有时会比我想要的跳得更远一些。像这样:
我不知道我的 .vimrc 有什么问题。谁能告诉我怎么处理?
该行中有尾随空格。这可能会:set virtualedit=all
在 Vim 或其他(劣质 :-) 编辑器中潜行。你可以让 Vim 显示这些
:set list
(可以使用创建一个方便的切换映射:set invlist list?
)
由于这样的麻烦,许多人对尾随空格皱眉。有一些插件可以将它们显示为错误(例如我的ShowTrailingWhitespace 插件),还有一些插件(例如我的DeleteTrailingWhitespace 插件)可以删除这些错误(甚至在保存时自动删除)。(插件页面有其他插件的链接。)
保存文件时,将其放入 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
您可能想这样做以查看是否有一些不可打印的字符:
:set list