:hi Vertsplit 在 init.vim 的 autocmd 上没有 运行
:hi Vertsplit doesn't run on autocmd from init.vim
我一直在设置我的 init.vim 文件以在 Windows 10 上使用 NeoVim,运行 遇到了一个我难以理解的问题。
在我的文件开头,我设置了几个 :hi(ghlight) autocmd,但似乎只有 VertSplit 在启动时被忽略了。更糟糕的是,我可以 运行 vim cmd 栏中的命令,它会正常工作。
这是一个片段:
set wildmenu
set wildmode=longest:full,full " get bash-like tab completions
"set cc=120 " set an 80 column border for good coding style
filetype plugin indent on " allows auto-indenting depending on file type
set tabstop=4 " number of columns occupied by a tab character
set shiftwidth=4 " width for autoindents
set softtabstop=4 " see multiple spaces as tabstops so <BS> does the right thing
set number
set mouse=a
set undofile
set cursorline
set splitright
autocmd VimEnter :set laststatus 3<CR>
" THIS WORKS
autocmd VimEnter :hi CursorLine cterm=None guifg=#5c6773<CR>
" THIS DOESNT
autocmd VimEnter :hi VertSplit cterm=None guifg=#5c6773<CR>
关于这个的 help/advice 吗?我一直在谷歌搜索,但找不到有关 VertSplit 或类似内容的任何信息。如果需要,也可以 post 完整的 conf。
提前致谢!
这真的不是谷歌搜索的问题。重要的是研究你将要使用的东西的文档,然后然后,应用你学到的东西。
首先,自动命令应该由至少这些元素组成:
autocmd <event> <pattern> <command to execute when the pattern matches>
但是您没有为三个自动命令中的任何一个指定模式。这很容易修复:
autocmd VimEnter * :set laststatus 3<CR>
autocmd VimEnter * :hi CursorLine cterm=None guifg=#5c6773<CR>
autocmd VimEnter * :hi VertSplit cterm=None guifg=#5c6773<CR>
其次,<command>
部分始终是 Ex 命令,因此您可以删除无用的冒号:
autocmd VimEnter * set laststatus 3<CR>
autocmd VimEnter * hi CursorLine cterm=None guifg=#5c6773<CR>
autocmd VimEnter * hi VertSplit cterm=None guifg=#5c6773<CR>
和无用的——而且很可能会导致错误——<CR>
,这实际上只在正常模式映射中有用:
autocmd VimEnter * set laststatus 3
autocmd VimEnter * hi CursorLine cterm=None guifg=#5c6773
autocmd VimEnter * hi VertSplit cterm=None guifg=#5c6773
现在您的自动命令实际上看起来像自动命令,您应该解决最后一个遗留问题:set laststatus 3
,即:
- 打印
laststatus
、 的当前值
- 为
3
引发“未知选项”错误。
号码选项设置如下:
set optionname=999
所以set laststatus 3
应该是:
set laststatus=3
这给你留下了大部分正确的(并且有效,至少在我的 Vim 中)片段:
autocmd VimEnter * set laststatus=3
autocmd VimEnter * hi CursorLine cterm=None guifg=#5c6773
autocmd VimEnter * hi VertSplit cterm=None guifg=#5c6773
我一直在设置我的 init.vim 文件以在 Windows 10 上使用 NeoVim,运行 遇到了一个我难以理解的问题。
在我的文件开头,我设置了几个 :hi(ghlight) autocmd,但似乎只有 VertSplit 在启动时被忽略了。更糟糕的是,我可以 运行 vim cmd 栏中的命令,它会正常工作。
这是一个片段:
set wildmenu
set wildmode=longest:full,full " get bash-like tab completions
"set cc=120 " set an 80 column border for good coding style
filetype plugin indent on " allows auto-indenting depending on file type
set tabstop=4 " number of columns occupied by a tab character
set shiftwidth=4 " width for autoindents
set softtabstop=4 " see multiple spaces as tabstops so <BS> does the right thing
set number
set mouse=a
set undofile
set cursorline
set splitright
autocmd VimEnter :set laststatus 3<CR>
" THIS WORKS
autocmd VimEnter :hi CursorLine cterm=None guifg=#5c6773<CR>
" THIS DOESNT
autocmd VimEnter :hi VertSplit cterm=None guifg=#5c6773<CR>
关于这个的 help/advice 吗?我一直在谷歌搜索,但找不到有关 VertSplit 或类似内容的任何信息。如果需要,也可以 post 完整的 conf。
提前致谢!
这真的不是谷歌搜索的问题。重要的是研究你将要使用的东西的文档,然后然后,应用你学到的东西。
首先,自动命令应该由至少这些元素组成:
autocmd <event> <pattern> <command to execute when the pattern matches>
但是您没有为三个自动命令中的任何一个指定模式。这很容易修复:
autocmd VimEnter * :set laststatus 3<CR>
autocmd VimEnter * :hi CursorLine cterm=None guifg=#5c6773<CR>
autocmd VimEnter * :hi VertSplit cterm=None guifg=#5c6773<CR>
其次,<command>
部分始终是 Ex 命令,因此您可以删除无用的冒号:
autocmd VimEnter * set laststatus 3<CR>
autocmd VimEnter * hi CursorLine cterm=None guifg=#5c6773<CR>
autocmd VimEnter * hi VertSplit cterm=None guifg=#5c6773<CR>
和无用的——而且很可能会导致错误——<CR>
,这实际上只在正常模式映射中有用:
autocmd VimEnter * set laststatus 3
autocmd VimEnter * hi CursorLine cterm=None guifg=#5c6773
autocmd VimEnter * hi VertSplit cterm=None guifg=#5c6773
现在您的自动命令实际上看起来像自动命令,您应该解决最后一个遗留问题:set laststatus 3
,即:
- 打印
laststatus
、 的当前值
- 为
3
引发“未知选项”错误。
号码选项设置如下:
set optionname=999
所以set laststatus 3
应该是:
set laststatus=3
这给你留下了大部分正确的(并且有效,至少在我的 Vim 中)片段:
autocmd VimEnter * set laststatus=3
autocmd VimEnter * hi CursorLine cterm=None guifg=#5c6773
autocmd VimEnter * hi VertSplit cterm=None guifg=#5c6773