`
xugming
  • 浏览: 96027 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

个性化你的Vim -- 个性化高亮显示

阅读更多
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]\?\)/

分享到:
评论

相关推荐

    vim-deprecated.zip

    脚本还可能包含其他如自动缩进、代码折叠、代码跳转等功能的设置,以及个性化快捷键和映射,以提高开发效率。 在安装过程中,脚本会自动处理依赖关系,安装必要的库和工具,如Python支持、系统包管理器(如apt-get...

    开源项目-fatih-vim-go.zip

    在软件开发领域,高效且个性化的开发工具对于程序员来说至关重要。开源项目 Fatih Vim-Go 正是这样一款专为 Go 语言开发者量身定制的 Vim 插件,它将古老的、强大的文本编辑器 Vim 与现代的编程语言 Go 结合起来,为...

    vim-configure.tar.gz_vim_vim_configure

    Vim(Vi IMproved)是一款强大的文本编辑器,深受程序员和系统管理员的喜爱。"vim-configure.tar.gz_vim_vim_configure" 是一个包含了 ...记住,理解和个性化你的 Vim 配置是提升工作效率的关键,不要害怕尝试和调整。

    VIM-IDE 脚本自动配置

    VIM-IDE(集成开发环境)是将强大的文本编辑器VIM转变为功能丰富的代码编写工具的一种方式。...VIM-IDE的配置不仅可以提升开发效率,还能带来个性化的开发体验。对于喜欢VIM的开发者来说,这是一个非常有价值的实践。

    vim-showline-src.tgz

    通过深入学习Vim的配置,你可以根据自己的需求调整行号的显示方式,使其更加个性化。 总的来说,"vim-showline-src"插件为Vim带来了便利的行号显示功能,让代码编辑体验更上一层楼。在Ubuntu系统上,只需简单的几步...

    vim-web, ◈ 搞得像IDE一样的Vim,安装配置自己的Vim。.zip

    作为开源项目,它允许用户根据自己的需求进行个性化配置,打造专属的开发环境。 **1. Vim的基础与进阶** 在深入理解vim-web之前,我们需要了解Vim的基础操作。Vim有三种模式:正常模式、插入模式和命令行模式。...

    开源项目-vim-vim.zip

    在“vim-master”目录中,你可能会找到示例配置文件和文档,帮助你了解如何个性化你的Vim环境。同时,Vim支持大量的编程语言和文件格式,拥有丰富的语法高亮和代码补全功能。 开源项目的标签意味着Vim的源代码是...

    space-vim-dark:用于space-vim的深色设计,请参阅space-vim-theme以获取浅色背景支持!

    它与`space-vim-theme`和`Spacemacs-theme`相联系,展示了Vim社区对个性化和自定义界面的追求。通过理解和使用这个主题,开发者不仅可以提升Vim的视觉体验,也能进一步了解Vim的配置和自定义机制。

    vim-material-monokai-master.rar

    了解如何使用这些工具,可以使Vim的个性化过程更加便捷。 总的来说,"vim-material-monokai-master.rar" 是一个为Vim提供美观编程环境的主题包,通过适当的配置,用户可以提升编程时的视觉享受,同时保持Monokai这...

    vim-config.tar.gz

    解压`vim-config.tar.gz`后,需要将里面的`.vimrc`复制到个人主目录下,并根据需要进行个性化调整。同时,确保已安装压缩包内的所有插件,这通常需要运行插件管理器的相关命令。通过这个配置,Vim将变得更符合个人...

    Python-vimslash加强缓冲的搜索体验

    在`~/.vimrc`中添加相应的配置选项可以实现个性化设置。 ### 4. 结合Python开发 对于Python开发者来说,`vim-slash`在处理大型代码库时尤为有用。你可以快速查找特定的函数、类或变量定义,甚至可以在多个相关的...

    vim插件----代码补全,高亮,文件浏览等等

    Vim是一款功能强大的文本编辑器,它以其高效、可...通过合理选择和配置插件,程序员可以打造个性化的Vim工作流,提高开发效率。无论你是初学者还是经验丰富的开发者,都可以通过探索Vim插件找到适合自己的工作方式。

Global site tag (gtag.js) - Google Analytics