文章目录
- vim 高亮空格使用背景
- 如何配置vim 可以自动显示空格呢?
- vim highlight 命令使用介绍
- vim 空白行的处理
- vim match 命令详细介绍
vim 高亮空格使用背景
开发人员在编写代码之后,在review通过之后会将代码推到服务器然后merge,但是有些代码对格式要求很严格,比如 linux 代码就不允许代码中出现 空格 或者^M
,如下图所示,在使用 git diff .
之后可以看到代码中有一行空格。
如何配置vim 可以自动显示空格呢?
vim ~/.vimrc
添加下面一段内容即可
"""""""""""""""""""""""""""""""""""""""
" Used to show the spaces in code text
"""""""""""""""""""""""""""""""""""""""
highlight ExtraWhitespace ctermbg=red guibg=darkgreen
autocmd ColorScheme * highlight ExtraWhitespace ctermbg=red guibg=red
match ExtraWhitespace /\s\+$\| \+\ze\t/
vim highlight 命令使用介绍
在 Vim 编辑器中,highlight
(或简写为 :hi
)命令用于修改或显示语法高亮的颜色和样式。这个命令非常强大,可以让你自定义 Vim 的颜色方案和高亮显示的效果。
一般使用的格式是:
highlight {group} {keys}={values}
- {group} 是你要修改的语法组名,比如 Comment,String,Function 等等,这些都是预定义的语法组;
- {keys} 是你要修改的属性,比如 guifg,guibg,gui,ctermbg,ctermfg,cterm 等等;
- {values} 是你希望设置的值。
例如,你可以使用以下命令来改变注释的颜色:
highlight Comment guifg=blue
这会将 GUI(例如 gVim 或 MacVim)中的注释文本的前景色(guifg)设置为蓝色。
如果你想要查看当前的 Comment 高亮设置,你可以用下面的命令:
highlight Comment
这将会显示类似下面的输出:
Comment xxx term=bold ctermfg=14 guifg=#80a0ff
这表示在终端(term)中,注释文本会被显示为粗体(bold),在 color-terminal 中,注释文本的前景色(ctermfg)会被设置为颜色编号为14的颜色,在 GUI 中,注释文本的前景色(guifg)会被设置为 #80a0ff
。
你也可以使用 :highlight 命令来查看所有的语法高亮设置,只需不带参数地输入 :highlight 就可以了。
vim 空白行的处理
在Vim中,你可以使用各种方法来寻找和删除额外的空白。以下是一些例子:
寻找每行末尾的额外空白,你可以使用以下的搜索命令:
/\s\+$
这个命令会在当前文档中高亮显示每行末尾的一串空白。
删除每行末尾的额外空白,你可以使用以下的替换命令:
%s/\s\+$//e
这个命令会查找每行末尾的一串空白,并用空字符串替换它(也就是删除它)。
如果你想在保存文件时自动删除每行末尾的额外空白,你可以在你的 .vimrc 文件中添加以下的 autocommand:
autocmd BufWritePre *.py :%s/\s\+$//e
这个命令会在你保存任何.py
文件之前自动删除每行末尾的额外空白。你可以根据需要替换*.py
以匹配其他类型的文件。
vim match 命令详细介绍
Vim 的 match 命令是一个非常有用的工具,用来在文本中查找匹配的字符串。
该命令的基本格式如下:
match {group} /{pattern}/
这里的 {group}
是一个高亮组的名称,{pattern}
是你想要匹配的正则表达式。
例如,如果你想高亮所有的 TODO 注释,你可以使用以下命令:
match Todo /TODO/
在这个例子中,“Todo” 是一个高亮组的名称,“TODO” 是你想要匹配的字符串。
你也可以使用两个命令来设置多个匹配,例如:
match Todo /TODO/ :2match Error /FIXME/
这将会高亮所有的 “TODO” 和 “FIXME”。
如果你想要取消匹配,你可以使用 match 命令而不带任何参数:
match
这将会取消所有的匹配。