vim 颜色设置

来源:互联网 发布:java this关键字详解 编辑:程序博客网 时间:2024/05/16 13:06

vim颜色设置  

2007-06-29 09:32:27|  分类:转贴好文|  标签:编程相关  |举报|字号 订阅

学习Vim的一点心得现在的工作是在unix平台,平时是用UE的ftp功能来写代码的,有时候文件大了,传输就很慢,而且经常不是很稳定。

下定决心要学学Vim(现在应该没有人用原始的vi了吧),在经过二周的使用后,发现Vim实在是非常不错的一个editor,现在我在Windows上也装了一个Vim,使用起来颇为顺手,基本上已经替代了UE。

下面介绍一些我在使用Vim的过程中得到的一些心得:

1. 在使用Vim之前一定要进行一些设置,否则你使用起来肯定会很不爽,下面是我的配置

1 " ==============================================

2 " General settings

3 " ==============================================

4

5 set nocp

6 set ru

7 " 使用cindent

8 set cin

9 set cino = :0g0t0(sus

10

11 set sm

12 set ai

13 " 缩近

14 set sw=4

15 set ts=4

16 " 不展开tab为空格,反之set et

17 set noet

18

19 set lbr

20 set hls

21 set backspace = indent , eol , start

22 set whichwrap = b , s , < , > , [ , ]

23 set fo+ = mB

24 set selectmode =

25 set mousemodel = popup

26 set keymodel =

27 set selection = inclusive

28 set matchpairs+ =

29

30 " ==============================================

31 " Cursor movement

32 " ==============================================

33 nnoremap gj

34 nnoremap gk

35 vnoremap gj

36 vnoremap gk

37 inoremap gj

38 inoremap gk

39

40 nnoremap g$

41 nnoremap g0

42 vnoremap g$

43 vnoremap g0

44 inoremap g$

45 inoremap g0

46

47 nmap :confirm bd

48 vmap :confirm bd

49 omap :confirm bd

50 map! :confirm bd

51

52 " 打开语法高亮

53 syntax on

54 " 使用语法进行折叠

55 set foldmethod=syntax

56

57 if (has( " gui_running " ))

58 set nowrap

59 set guioptions+=b

60 colo inkpot

61 else

62 set wrap

63 colo ron

64 endif

65

66 " 设置swap文件的目录

67 set dir = D:\vim\tmp

68 " 设置备份文件的目录

69 set backupdir=D:\vim\bak

70

71 " 设置leader的快捷键,原来的“\”太远了,而且位置还不固定

72 let mapleader = " , "

这里是一些基本设置

如果有什么不太清楚的,可以在Vim里normal模式下

:h 关键字

查看帮助

2. Vim教程

推荐先看看Vim自带的Tutor(这可是位好老师)

用vimtutor启动Vim

或者在Vim里面用:h tutor来启动

中文教程我推荐李果正的《大家来学Vim》

这里还有Vim的键位示意图,可以打出来随时查看哦

3. Vim的插件

有几个插件强烈推荐

(1) A:在同名的cpp和h文件之间切换 http://www.vim.org/scripts/script.php?script_id=31

(2) NERD_comments:超强的注释插件,支持很多语言的注释风格,按照上面的设置,只需要",cc"就可以添加注释了 http://www.vim.org/scripts/script.php?script_id=1218

(3) csupport:写C/C++代码必备 http://www.vim.org/scripts/script.php?script_id=213

(4) LargeFile:再也不用担心打开大文件会慢了 http://www.vim.org/scripts/script.php?script_id=1506

(5) TipOfTheDay:多读读vim的tips会有很多收获的,记得要经常更新tips文件啊 http://www.vim.org/scripts/script.php?script_id=88

(6) cppomnicomplete:提供C++中类/对象成员的补全(需要Vim7) http://www.vim.org/scripts/script.php?script_id=1520

(7) ColorSamplerPack:提供上百种颜色主题,必有一款适合你,不过大多数都是在GUI下才有相应的效果 http://www.vim.org/scripts/script.php?script_id=625

(8) vimcdoc:汉化的vim帮助 http://vimcdoc.sourceforge.net/

3. 在telnet中使用vim的颜色

如果是在linux中使用telnet,SecureCRT会自动使用合适的颜色来显示vim不同的颜色,但是如果在其他unix下就会无法显示正确的颜色,所有的东西都是同一种颜色。

在.vimrc中加入(^[的输入方式是Ctrl-v然后输入Esc):

if !has("gui_running")

set t_Co=8

set t_Sf=^[[3%p1%dm

set t_Sb=^[[4%p1%dm

endif

并在SecureCRT的模拟终端类型选择ANSI,并钩上ANSI Color,就可以显示不同的颜色了

4. vim的自动补全功能

一般使用Ctrl+n就可以自动补全了,从Vim7后,C/C++的函数、变量或者是类的成员,使用Ctrl+x,Ctrl+o也可以自动补全。在安装了cppomnicomplete后,对象的成员也可以用Ctrl+x,Ctrl+o来补全

5. 代码折叠

许多editor都支持代码折叠,Vim也不例外

常用的快捷键

zc 折叠代码

zo 打开折叠的代码

还有其他的快捷键可以查看帮助

:h fold

6. 自动格式化代码

在Visual模式下,选中代码按=就可以了

Normal模式下,按=会格式化光标所在行

7. 脚本支持

Vim不仅有内建的脚本功能,还支持Perl,Python,Tcl,Ruby和MzScheme这些流行的脚本语言编写Vim的扩展

Vim的功能是不是很强大?

经过1年多的测试Vim 7.0也release了,还不快下载来试试

http://www.vim.org

Happy Vimming!

对于已经习惯了使用Vim但是要在Windows下编程的用户

我还推荐

ViEmu,可以在VisualStudio下模拟Vi的编辑操作

不过只有30天的试用期

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

本文覆盖范围:

  • Vim 的着色方案
  • 设置高亮
  • 选择颜色
  • 语法高亮除错

每个程序员的文本编辑器缺少了语法高亮、特殊关键字和短语着色,都是不完整的。语法高亮突出了文档的结构,帮助发现排字错误,利于调试,整体上让文本编辑更轻松更有效率。本篇我们将探讨一下Vim的语法高亮范式以及如何建立和定制着色方案。

 

Vim着色方案

首先说明,本文谈论的不是哪种颜色最好,而是Vim如何处理语法高亮的问题。

 

在决定如何给一个文件着色时,Vim首先将文件分解成若干结构组。这些都是通过编写好的语法命令文件来实现,这些文件在Vim加载一个文件的时候就自动加载了,加载过程则是基于一系列复杂规则。如果Vim选择了一个错误的语法命令文件,你可以通过以下命令手工指定一个正确的文件:

:set syn=syntax-type

 

其中syntax-type是一个文件的类型。通常文件类型就是文件扩展名,例如选择PHP语法高亮,则将syntax-type设置为“php”。

 

Vim主要使用以下九种高亮分组:

复制代码
Comment    : 注释Constant   : 常量,例如数字、引号内字符串、布尔值。Identifier : 变量标识符名称。Statement  : 编程语言的声明,一般是像“if”或“while”这样的关键字。PreProc    : 预处理,例如C语言中的“#include”。Type       : 变量类型,例如“int”。Special    : 特殊符号,通常是类似字符串中的“\n”。Underlined : 文本下划线。Error      : 显示编程语言错误的文本。
复制代码

 

另外还有一个分组叫做Normal,表示普通文本。

 

也许你已经注意到,这些高亮分组主要针对编程语言,这是因为语法高亮对它们最有用。但是,Vim的高亮命令覆盖的文件类型远超过编程语言,包括从HTML到EMAIL的任何东西。

 

Vim还支持三种输出设备:black-and-white terminal(黑白终端),color terminal(彩色终端)和GUI(图形化的用户接口)。因为它们每一个都有自己独特的高亮能力,Vim为它们维护了三个独立的高亮方案。

 

建立高亮

 

实现高亮的最简便方式就是使用别人写好的.vimrc文件,就像这个(点击下载)。大多数时候这样做都挺好使。但是,如果它不好使或者你想从头开始,以下就是告诉你如何从头开始。

 

你必须在你的.vimrc文件的第一行写入:

syntax on

 

这行命令告诉Vim开始使用语法高亮。如果你暂时不想改动文件,你也可以在Vim窗口输入它作为一行命令。

 

如果你正在使用黑白终端或者GUI接口,一切都工作得刚刚好。如果你正在使用一个支持彩色的终端,你也许不得不将以下命令置于syntax on上一行:

set term=ansi

 

你也可以尝试一下color_xterm来代替ansi。

 

选择颜色

 

Vim有一套默认颜色方案,在我看来,有点过度明亮和混乱(注释和变量颜色是一样的)。但是每个人都有一套自己的颜色偏好,因此你可能会很想了解如何改变它的色彩来符合自己的口味。

 

Vim着色使用:highlight和:hi命令。:hi命令实际上是多用途命令,它负责许多例行着色,我们仅用它的颜色选择功用。它具有以下语法:

:hi Group key=value ...

 

Group就是前面所说的9个高亮分组名。

 

key-value键值对规定了不同输出终端的高亮值。这里有三个基本键名:term、cterm和gui,代表着黑白终端、彩色终端和图形界面。除了term以外,另外两个基本键还有两个扩展键名base-namefg和base-namebg,分别代表对应终端的前景和背景颜色。基本键只能拥有非色彩的高亮值,例如加粗和下划线。

 

以下是一些高亮键和它们可能的值:

term/cterm/gui: bold, underline, reverse, italic, nonectermfg/ctermbg: red, yellow, green , blue, magenta, cyan, white, blcak, grayguifg/guibg: 以上所有颜色,而且还可以使用#rrggbb格式色彩。

 

例如,我想高亮我的预处理声明为bright magenta,可以使用如下命令:

:hi PreProc ctermfg=magenta cterm=bold guifg=#FF00FF

 

注意,我可以在一行中使用多个键值对,他们都会应用于同一个高亮分组。

 

通常来说,只要你喜欢一个着色方案,你可以将它设置在你的~/.vimrc文件中,Vim会自动将其加载。

 

语法高亮除错

 

Vim的语法高亮偶尔也存在一些小问题,我就经常遭遇到其中的三个。 

 

没有彩色,只有黑白终端高亮。

导致这种情况的最常见的原因是Vim无法确定终端是否具备彩色能力。要修复它,首先确保在.vimrc文件第一行设置了term=ansi,一定要在syntax on所在行之前。另外还要在shell中将环境变量TERM设置为color_xterm和color-xterm。

 

颜色有了,但不是我想要的。

这常发生在你试图修改别人的.vimrc文件以为己用的时候。有时,你只需要将自己的色彩定义全部放到文件的底部去就可以修复。如果不奏效的话,检查所有可疑的代码,然后将它们注释。(注释方法为在行首添加双引号)

 

滚屏时颜色乱成一团

Vim在确定高亮法则的时候使用多种探索方法来节约时间,有时这会造成一些故障。查看:h syn-sync可以得到更多细节。要修复这个,你可使用以下命令:

syn sync minlines=1000

 

你也可以在.vimrc文件中设置更大的数值。在Vim 6.0及以上版本,你可以使用以下命令:

syn sync fromstart

 

该命令强制高亮引擎从文件第一行开始解析文件,这对大文件而言会很慢,但它可以确保色彩准确度。

 

此时此刻,如果你习惯了使用Vim,并且你已经鼓捣了一阵它的配置,发现一些你喜欢的特性,恭喜你,你现在是一个Vim User了。当然,在本教程中我还会教更多的关于Vim的东西,有人写了一整本关于编程的书,但我希望你从本教程可以掌握一些基础知识并且探索更多知识。享受学习,这是一项你永远不会后悔拥有的技能


0 0