在Vim

时间:2017-01-30 00:01:24

标签: vim highlight margins

我希望尽可能保持严格的70个字符边距。为了解决这个问题,我想配置vim,以便突出显示当前行的第70个字符。我明白了

set cursorline

可用于突出显示当前行。但是,我想要的只是 最后一行(第70个字符)要突出显示。我将如何完成这项工作?

编辑:光标栏不是我正在寻找的东西。我只想要一个字符(当前行的第70个字符)。

编辑2:也许图片会有所帮助。enter image description here

4 个答案:

答案 0 :(得分:5)

您可以使用colorcolumn设置"右边距"杆

这在Vim 7.3之前不存在,因此最明智的做法是只在该功能可用时启用它。

if exists('&colorcolumn')
    set colorcolumn=70
endif

我更喜欢这只在插入模式下显示,所以我使用它:

if exists('&colorcolumn')
    autocmd InsertEnter * set colorcolumn=80
    autocmd InsertLeave * set colorcolumn=""
endif

这将在您切换到插入模式时设置选项,并在您退出插入模式时将其关闭。

答案 1 :(得分:1)

:call matchadd('Todo', '\%70c')

如果您不想将一个标签计为单个字符,但您想要考虑所需的所有空格:

:call matchadd('Todo', '\%70v')

您可以使用:hi而不是Todo列出的任何其他突出显示组(例如更改颜色)。

答案 2 :(得分:1)

:autocmd CursorMoved * exe 'match IncSearch /\%70v\%' . line(".") . 'l./'

高光颜色将由您的配色方案决定。

您可以将IncSearch更改为任何突出显示组,可以通过键入以下内容找到:

:hi

答案 3 :(得分:0)

如果您使用的是VIM 7.3,则可以使用以下颜色设置某列的颜色:

set colorcolumn=70