Shift_A比VIM中的end_of_line跳得更远

时间:2013-11-04 05:28:57

标签: vim

我使用vim编写C代码。当我在一行中间写一些内容然后尝试使用Shift+A跳到这一行的末尾时,它有时会比我想要的跳得更远。 像这样:enter image description here

我不知道我的.vimrc有什么问题。谁能告诉我如何处理它?<​​/ p>

3 个答案:

答案 0 :(得分:1)

该行中有尾随空格。这可以偷偷进入Vim中的:set virtualedit=all或其他(劣等的:-)编辑。您可以使用

让Vim显示这些内容
: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