0

我使用 vim 编写 C 代码。当我在一行中间写一些东西然后尝试使用 跳到这一行的末尾时Shift+A,它有时会比我想要的跳得更远一些。像这样:在此处输入图像描述

我不知道我的 .vimrc 有什么问题。谁能告诉我怎么处理?

4

3 回答 3

1

该行中有尾随空格。这可能会:set virtualedit=all在 Vim 或其他(劣质 :-) 编辑器中潜行。你可以让 Vim 显示这些

:set list

(可以使用创建一个方便的切换映射:set invlist list?

由于这样的麻烦,许多人对尾随空格皱眉。有一些插件可以将它们显示为错误(例如我的ShowTrailingWhitespace 插件),还有一些插件(例如我的DeleteTrailingWhitespace 插件)可以删除这些错误(甚至在保存时自动删除)。(插件页面有其他插件的链接。)

于 2013-11-04T08:16:36.510 回答
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
于 2013-11-04T10:44:21.810 回答
0

您可能想这样做以查看是否有一些不可打印的字符: :set list

于 2013-11-04T07:38:48.937 回答