2

所以我在 StackOverflow 上找到了这个解决方案:Vim 80 column layout questions

如果我在文件中键入长行,我希望突出显示超过 80 个字符限制的字符。很多人似乎认为这个解决方案工作正常,但我在我的 vimrc 文件中有它,它表现得好像什么都没有改变。我的长线没有突出显示。

highlight OverLength ctermbg=red ctermfg=white guibg=#592929
match OverLength /\%81v.\+/

作为参考,这是我的全部.vimrc,不是那么长:

" You'll need to add the following to your ~/.vimrc so that pathogen will be loaded
" properly. Filetype detection must be off when you run the commands so its best to
" You'll need to add the following to your ~/.vimrc so that pathogen will be loaded
" execute them first:
"filetype off
call pathogen#runtime_append_all_bundles()
call pathogen#helptags()
"filetype on

syntax on

let mapleader = ","
let g:CommandTMaxHeight=25
imap ii <Esc>

map <S-Enter> O<Esc>
map <CR> o<Esc>

set guioptions-=T
set guioptions-=r

set hlsearch
highlight OverLength ctermbg=red ctermfg=white guibg=#592929
match OverLength /\%79v.\+/
set nocompatible
set ruler
set number
set shellcmdflag=-ic
set list
set expandtab
set tabstop=4
set softtabstop=4
nmap <C-k> ddkP
nmap <C-j> ddp
vmap <C-k> xkP`[V`]
vmap <C-j> xp`[V`]

au! BufWritePost vimrc source %
colorscheme vividchalk
4

4 回答 4

2

来自:https ://stackoverflow.com/a/10993757/1701170

augroup vimrc_autocmds
  autocmd BufEnter * highlight OverLength ctermbg=darkgrey guibg=#111111
  autocmd BufEnter * match OverLength /\%75v.*/
augroup END

这对我有用,而我之前的解决方案却没有。我不确定为什么,但是页面上的另一位评论者在评论时提供了一个提示,关于没有打开和关闭augroup行的解决方案,“这仅适用于您在任何给定缓冲区中打开的第一个文件”。

现在,如果有人可以解释为什么额外的开头和结尾行解决了 first-file-in-any-given-buffer 问题,以及为什么首先存在该问题,那么我会感到开明。

于 2012-10-25T02:47:04.730 回答
1

以下似乎对我有用:

highlight OverLength ctermbg=darkred ctermfg=white guibg=#FFD9D9
match OverLength /\%79v.*/

它基本上与您刚刚\+更改为*不同颜色的东西相同。出于某种原因,虽然改变你的线路对我不起作用。也许其中一个角色有问题?

无论如何 - 从这篇文章复制:https ://stackoverflow.com/a/395326/680238

我认为这是我在处理 vimrc 时使用的那个,但作为旁注,我可能会补充一点,我已经放弃了突出显示那些超长线条的想法,并决定在第 81 列使用垂直线。你可能想试试这个,看看你更喜欢哪一个:

" Highlight first oversize line
set colorcolumn=81
于 2012-10-25T00:23:10.503 回答
0

在我看来,使用textwidthcolorcolumn. 在帮助中查找它们以了解其功能的详细信息。

set textwidth=80
set colorcolumn=+1

这仅突出显示超过 80 列的点,因此可能无法满足您的目标,但我认为,如果您经常从不遵守限制的来源加载文件,这会使事情更容易阅读。

突出显示由ColorColumn突出显示组处理。

您也可以只设置colorcolumn为 81 并且不需要设置textwidth,但我textwidth也用于其他一些事情,所以无论如何都要设置它,这让我可以更改textwidth并获得最大宽度的颜色。

于 2012-10-25T03:18:26.583 回答
0

我知道这是一篇超级旧的帖子,但我最近发现我的 OverLength 突出显示停止工作(Vim 8.1)。我的高亮代码最初是:

augroup vimrc_autocmds
    autocmd BufEnter * highlight OverLength ctermbg=darkred ctermfg=white guibg=#FFD9D9
    autocmd filetype BufEnter * match OverLength /\%>79v.\+/
augroup END

filetype从第 3 行删除,它又开始工作了。我不知道哪个版本改变了这种行为,但filetype之前肯定对我有用。

这几乎是 Jonomono 的答案,只是澄清一下,以防其他人遇到类似问题:)

于 2019-12-29T10:43:45.810 回答