Hacking Vim 中文翻译 by Alec alec.ming@gmail.com
[Vim]6+ [GVim]6+ 个性化高亮显示
在Vim中, 高亮显示的高亮叫作匹配.
通过匹配, 你可以让Vim标识很多的字母组合, 单词, 数字, 句子和行. 你甚至可以Vim应该如地去标注(错误去红色, 重要的字用绿色等等).
用下面的命令可以做匹配操作:
:match Group /pattern/
这条命令有两个参数. 第一个是你要在高亮显示方案中的颜色组合.
和配色方案相比, 配色方案是全局的颜色设置, 而颜色组合只是前景色或背景色的小的组合用来为匹配操作使用的. 当Vim启动时, 它会根据你的本色方案, 将一大堆的颜色组合设置成默认的颜色.
想看完整的颜色组合, 使用这个命令:
:so $VIMRUNTIME/syntax/hitest.vim
第二个参数是你想要匹配的模式字符串(pattern). 这个模式是一个正则表达式, 并且根据你想要匹配的内容, 从非常简单要相当得复杂. 一个比较简单的匹配命令就像下面这样:
:match ErrorMsg /^Error/
这个命令就会去查找以Error开始的所有行(通过一个^来表示行开始). 如果找到了一个匹配, 就会被标识成ErrorMsg颜色组的颜色(红底白字).
如果你不喜欢任何一个已有的颜色组合, 你也可以定义你自己的. 使用这个命令:
:highlight MyGroup ctermbg=red guibg=red gctermfg=yellow guifg=yellow term=bold
这个命令创建了一个叫做MyGroup的颜色组合, 红色的背景, 黄色的文本, 终端模式和图形模式的都可以. 你可以根据你的喜好改变下面的选项:
• ctermbg : Background color in console
• guibg : Background color in Gvim
• ctermfg : Text color in console
• guifg : Text color in Gvim
• gui : Font formatting in Gvim
• term : Font formatting in console (for example, bold)
如果你使用已经存在的颜色组合的名字, 你就会在后来的使用中改变那个颜色组.
当你使用匹配功能时, 给定的模式字符串一直都会被标识, 直到有一个新的匹配操作或者执行下面这个命令:
:match NONE
这个匹配命令只能是一次匹配一个模式; 所以Vim已经为你提供了两个命令来同时匹配多达三个匹配. 这个命令非常简单地记住, 因为它们的名字和命令的内容很相似:
:2match
:3match
你可以考虑一下这个匹配命令是不是合适你, 因为它可能没什么用. 这里有几个例子, 来显示了匹配的功能.
例1:
在邮件中, 有一个通常的规则, 你不能一行中写超过74个字符(这是一个老的编程语言的规则, 如Fortran-77). 在这种情况下, 如果当你一行中写到最多个字符时, Vim能帮助提醒你, 是非常好的.
这个功能可以通过下面的命令来实现:
:match ErrorMsg /\%>73.\+/
这条命令中, 第73个字符后的字符都会被标识成一个错误的颜色. 这个匹配中的正则表达式, 我们把分解开:
\%> :在它后面有个数字, 匹配这个数字的所在列后面的字符
73 :列的序号
v :和刚刚的的命令组合, 这个意味着下部分非常神奇(magic). 参照 :help magic 可得到更多的信息
.\+ :匹配一个或多个字符
例2
当你在编码时, 有一个非常普通的规则, 就是制表符(tab)只被用作缩进代码, 不能用在别的地方. 然而, 因为某些原因, 可以很难去遵守这个规则. 现在, 通过一个非常简单的匹配命令, 就可以避免这个发生.
:match errorMsg /[^\t]\zs\t\+/
现在你就可以检查是否已经将这个规则给忘掉了, 在代码中使用了制表(符. 上面的模式字符串分解, 就是:
[^ :后面的字符将不被包含
\t :制表符(tab)
] :一组字符的结束
\zs :将要匹配的字符(即[^\t]不含制表符的字符串)放在一行中第一个非空格的位置, 即一 行中, 从第一个不是空白的字符开始就不能有制表符了
\t\+ :一行中一个或多个制表符
这个命令是说: 不要去匹配所有的制表符, 只是去匹配不在行首出现的制表符(行首为忽略行前空白第一个字符)
如果你只想用空格符来缩进代码, 而不是制表符, 那你可以把命令改成:
:match errorMsg /[\t]/
这个命令是说: 匹配所有的制表符
例3:
如果你要在你的文本里写有很多的IP地址,有时候是很可能打在一个地址中打错一个值(如123.123.123.256). 为了帮你避免这种错误, 你可以把下面的这个命令语句加到你的vimrc文件中:
match errorMsg /\(2[5][6-9]\|2[6-9][0-9]\|[3-9][0-9][0-9]\)[.]
\[0-9]\{1,3\}[.][0-9]\{1,3\}[.][0-9]\{1,3\}\|
\[0-9]\{1,3\}[.]\(2[5][6-9]\|2[6-9][0-9]\|\
\\ \[3-9][0-9][0-9]\)[.][0-9]\{1,3\}[.][0-9]
\\{1,3\}\|\[0-9]\{1,3\}[.][0-9]\{1,3\}[.]\(2[5]
\\ \[6-9]\|\2[6-9][0-9]|[3-9][0-9][0-9]\)[.]
[0-9]\{1,3\}
\\|[0-9]\{1,3\}[.][0-9]\{1,3\}[.][0-9]\{1,3\}[.]
\\(2[5][6-9]\|2[6-9][0-9]\|\[3-9][0-9][0-9]\)/
尽管这好像是为了解决一个小的错误而大费周折, 你应该知道就算它就帮了你一次, 那它也已经完善了它的价值.
如果你想只想配置一个IP地址, 你可以使用下面这个更简单的命令:
match todo /\(\(25[0-5]\|2[0-4][0-9]\|[01]\?[0-9]
[0-9]\?\)\.\)
\\ \{3\}\(25[0-5]\|2[0-4][0-9]\|[01]\?
[0-9][0-9]\?\)/
分享到:
相关推荐
脚本还可能包含其他如自动缩进、代码折叠、代码跳转等功能的设置,以及个性化快捷键和映射,以提高开发效率。 在安装过程中,脚本会自动处理依赖关系,安装必要的库和工具,如Python支持、系统包管理器(如apt-get...
在软件开发领域,高效且个性化的开发工具对于程序员来说至关重要。开源项目 Fatih Vim-Go 正是这样一款专为 Go 语言开发者量身定制的 Vim 插件,它将古老的、强大的文本编辑器 Vim 与现代的编程语言 Go 结合起来,为...
Vim(Vi IMproved)是一款强大的文本编辑器,深受程序员和系统管理员的喜爱。"vim-configure.tar.gz_vim_vim_configure" 是一个包含了 ...记住,理解和个性化你的 Vim 配置是提升工作效率的关键,不要害怕尝试和调整。
VIM-IDE(集成开发环境)是将强大的文本编辑器VIM转变为功能丰富的代码编写工具的一种方式。...VIM-IDE的配置不仅可以提升开发效率,还能带来个性化的开发体验。对于喜欢VIM的开发者来说,这是一个非常有价值的实践。
通过深入学习Vim的配置,你可以根据自己的需求调整行号的显示方式,使其更加个性化。 总的来说,"vim-showline-src"插件为Vim带来了便利的行号显示功能,让代码编辑体验更上一层楼。在Ubuntu系统上,只需简单的几步...
作为开源项目,它允许用户根据自己的需求进行个性化配置,打造专属的开发环境。 **1. Vim的基础与进阶** 在深入理解vim-web之前,我们需要了解Vim的基础操作。Vim有三种模式:正常模式、插入模式和命令行模式。...
在“vim-master”目录中,你可能会找到示例配置文件和文档,帮助你了解如何个性化你的Vim环境。同时,Vim支持大量的编程语言和文件格式,拥有丰富的语法高亮和代码补全功能。 开源项目的标签意味着Vim的源代码是...
它与`space-vim-theme`和`Spacemacs-theme`相联系,展示了Vim社区对个性化和自定义界面的追求。通过理解和使用这个主题,开发者不仅可以提升Vim的视觉体验,也能进一步了解Vim的配置和自定义机制。
了解如何使用这些工具,可以使Vim的个性化过程更加便捷。 总的来说,"vim-material-monokai-master.rar" 是一个为Vim提供美观编程环境的主题包,通过适当的配置,用户可以提升编程时的视觉享受,同时保持Monokai这...
解压`vim-config.tar.gz`后,需要将里面的`.vimrc`复制到个人主目录下,并根据需要进行个性化调整。同时,确保已安装压缩包内的所有插件,这通常需要运行插件管理器的相关命令。通过这个配置,Vim将变得更符合个人...
在`~/.vimrc`中添加相应的配置选项可以实现个性化设置。 ### 4. 结合Python开发 对于Python开发者来说,`vim-slash`在处理大型代码库时尤为有用。你可以快速查找特定的函数、类或变量定义,甚至可以在多个相关的...
Vim是一款功能强大的文本编辑器,它以其高效、可...通过合理选择和配置插件,程序员可以打造个性化的Vim工作流,提高开发效率。无论你是初学者还是经验丰富的开发者,都可以通过探索Vim插件找到适合自己的工作方式。