|
[m[1m【 以下文字转载自 [32mcnTest [m[1m讨论区 】
[m[1m【 原文由[32m alabaster.[m[1m 于 [0mWed Feb 15 19:15:04 2006[1m 发表 】[m
[1;37m【 以下文字转载自 [32mGNULinux [37m讨论区 】
【 原文由[32m [email protected][37m 所发表 】[m
转信站: SJTU!bbsnews.sdu.edu.cn!news.neu.edu.cn!news2.happynet.org!TJUBBS
[1;36m本文由[1;32m [email protected] [1;36m 转寄到本站! [0m
发信人: October (十 月~收获的季节), 信区: LinuxDev
标 题: VIM语法加亮zz
发信站: 我爱南开站 (2005年05月08日21:16:26 星期天), 站内信件
Vim 用户手册 - Bram Moolenaar
(译者:Nek_in http://vimcdoc.sf.net)
使用语法加亮
黑白的文字让人厌倦了,增加一些色彩能为你的文件带来生气。这不但看起来漂亮,
还能够提高你的工作效率。本章介绍如何使用不同颜色显示不同文本并把它打印出来。
|06.1| 功能激活
|06.2| 颜色显示不出来或者显示出错误的颜色怎么办?
|06.3| 使用不同的颜色
|06.4| 是否使用色彩
|06.5| 带颜色打印
|06.6| 深入阅读
下一章:|usr_07.txt| 编辑多个文件
前一章:|usr_05.txt| 选项设置
目录:|usr_toc.txt|
-----------------------------------------------------------------------------
---
*06.1* 功能激活
一切从一个简单的命令开始:
:syntax enable
大多数情况下,这会让你的文件带上颜色。Vim 会自动检测文件的类型,并调用合适的
语法加亮。一下子注释变成蓝色,关键字变成褐色,而字符串变成红色了。这使你可以
很容易浏览整个文档。很快你就会发现,黑白的文本真的会降低你的效率!
如果你希望总能看到语法加亮,把 "syntax enable" 命令加入到 |vimrc| 文件中。
如果你想语法加亮只在支持色彩的终端中生效,你可以在 |vimrc| 文件中这样写:
if &t_Co > 1
syntax enable
endif
如果你只想在 GUI 版本中有效,可以把 ":syntax enable" 放到你的 |gvimrc| 文件中
。
-----------------------------------------------------------------------------
---
*06.2* 颜色显示不出来或者显示出错误的颜色怎么办?
有很多因素会让你看不到颜色:
- 你的终端不支持彩色。
这种情况下,Vim 会用粗体,斜体和下划线区分不同文字,但这不好看。你可
能
会希望找一个支持彩色的终端。对于 Unix,我推荐 XFree86 项目的 xterm:
|xfree-xterm|。
- 你的终端其实支持颜色,可是 Vim 不知道
确保你的 $TERM 设置正确。例如,当你使用一个支持彩色的 xterm 终端:
setenv TERM xterm-color
或者(基于你用的控制台终端)
TERM=xterm-color; export TREM
终端名必须与你使用的终端一致。如果这还是不行,参考一下 |xterm-color|
,
那里介绍了一些使 Vim 显示彩色的方法(不仅是 xterm )。
- 文件类型无法识别
Vim 不可能识别所有文件,而且有时很难说一个文件是什么类型的。试一下这
个
命令:
:set filetype
如果结果是 "filetype=",那么问题就是出在文件类型上了。你可以手工指定
文件类型:
:set filetype=fortran
要知道那些类型是有效的,查看一下 $VIMRUNTIME/syntax 目录。对于 GUI 版
本,
你还可以使用 Syntax 菜单。设置文件类型也可以通过 |modeline|,这样,
在你每次编辑它的时候都执行语法加亮。例如,下面这一行可以用
于 Makefile(把它放在接近文首和文末的地方)
你可能知道怎么检测自己的文件类型,通常是文件的扩展名(就是点后面的
内容)参见 |new-filetype| 可以知道如何告诉 Vim 如何检查一种文件类型。
- 你的文件类型没有语法高亮定义
你可以找一个相似的文件类型并人工设置为那种类型。如果你觉得不好,你可
以
自己写一个,参见 |mysyntaxfile|。
或者颜色是错的:
- 彩色的文字难以辨认
Vim 自动猜测你使用的背景色。如果是黑的(或者其它深色的色彩),它会
用浅色作为前景色。如果是白的(或者其它浅色),它会使用深色作为前景
色。如果 Vim 猜错了,文字就很难认了。要解决这个问题,设置一下
'background' 选项。对于深色:
:set background=dark
而对于浅色:
:set background=light
这两个命令必须在 ":syntax enable" 命令前调用,否则不起作用。如果要在
这之后设置背景,可以再调用一下 ":syntax reset"。
- 在自下往上滚屏的过程中颜色显示不对。
Vim 在分析文本的时候不对整个文件进行处理,它只分析你要显示的部分。这
样能省不少时间,但也会因此带来错误。一个简单的修正方法是敲 CTRL-L。
或者往回滚动一下再回来。要彻底解决这个问题,请参见 |:syn-sync|。有些
语法定义文件有办法自己找到前面的内容,这可以参见相应的语法定义文件。
例如,|tex.vim| 中可以查到 Tex 语法定义。
-----------------------------------------------------------------------------
---
*06.3* 使用不同颜色 *:syn-default-override*
如果你不喜欢默认的颜色方案,你可以选另一个配色方案。在 GUI 版本中可以使用
Edit/Color 菜单。你也可以使用这个命令:
:colorscheme evening
"evening" 是配色方案的名称。还有几种备选方案可以试一下。在 $VIMRUNTIME/colors
中可以找到这些方案。
等你确定了一种喜欢配色方案,可以把 ":colorscheme" 命令加到你的 |vimrc| 文件中
。
你可以自己编写配色方案,下方如下法面:
1. 选择一种接近你的理想的配色方案。把这个文件拷贝到你自己的 Vim 目录中。在
Unix
下,可以这样:
!mkdir ~/.vim/colors
!cp $VIMRUNTIME/colors/morning.vim ~/.vim/colors/mine.vim
在 Vim 中完成的好处是可以利用 $VIMRUNTIME 变量。
2. 编辑这个配色方案,常用的有下面的这些条目:
term 黑白终端的属性
cterm 彩色终端的属性
ctermfg 彩色终端的前景色
ctermbg 彩色终端的背景色
gui GUI 版本属性
guifg GUI 版本的前景色
guibg GUI 版本的背景色
例如,要用绿色显示注释:
:highlight Comment ctermfg=green guifg=green
属性是 "bold"(粗体)和 "underline" (下划线)可以用于 "cterm" 和 "gui"。
如果你两个都想用,可以用"bond,underline"。要获得详细信息, 请参考
|:highlight| 命令。
3. 告诉 Vim 总使用你这个配色方案。把如下语句加入你的 |vimrc| 中:
colorscheme mine
如果你要测试一下常用的配色组合,用如下命令:
:edit $VIMRUNTIME/syntax/colortest.vim
:source %
这样你会看到不同的颜色组合。你可以很容易的看到哪一种可读性好而且漂亮。
-----------------------------------------------------------------------------
---
*06.4* 是否使用色彩
使用色彩显示文本会影响效率。如果你觉得显示得很慢,可以临时关掉这个功能:
:syntax clear
当你开始编辑另一个文件(或者同一个文件),色彩会重新生效。
*:syn-off*
如果你要完全关闭这个功能:
:syntax off
这个命令会停止对所有缓冲的所有语法加亮。
*:syn-manual*
如果你想只对特定的文件采使用语法加亮,可以使用这个命令:
:syntax manual
这个命令激活语法加亮功能,但不会在你开始编辑一个缓冲时自动生效(译者注:Vim
中,每个被打开的文件对应一个缓冲,后面的章节中你会接触到这方面的内容)。要在
当
前缓冲中使用加亮,需要设置'syntax'选项:
:set syntax=ON
-----------------------------------------------------------------------------
---
*06.5* 带颜色打印 *syntax-printing*
在 MS-Windows 版本中,你可以用如下命令打印当前文件:
:hardcopy
这个命令会启动一个常见的打印对话框,你可以通过它选择打印机并作一些必要的设置
。
如果你使用的是彩色打印机,那么打印出来的色彩将与你在 Vim 中看到的一样。但如果
你使用的是深色的背景,它的颜色会被适当调整,以便在白色地打印纸上看起来比较舒
服。
下面几个选项可以改变 Vim 的打印行为:
'printdevice'
'printheader'
'printfont'
'printoptions'
要仅打印一定范围内的行,可以用可视模式选择需要打印的行在执行打印命令,例如:
v100j:hardcopy
"v" 启动可视模式,"100j" 向下选中100行,然后执行 ":hardcopy" 打印这些行。当
然,你可以用其它命令选中这100行。
如果你有一台 PostScript 打印机,上面的方法也适合 Unix 系统。否则,你必须做一
些额
外的处理:你需要先把文件转换成 HTML 类型,然后用 Netscape 之类的浏览器打印。
如下命令把当前文件转换成 HTML 格式:
:source $VIMRUNTIME/syntax/2html.vim
你发现它会嘎吱嘎吱执行一阵子,(如果文件很大,这可能要花点时间)。之后,
Vim 会打开一个新的窗口并显示 HTML 代码。现在把这个文件存下来(存在哪都不要紧
,
反正最后你要删掉它的):
:write main.c.html
用你喜欢的浏览器打开这个文件,并通过它打印这个文件。如果一切顺利,这个输出应
该与 Vim 中显示的一样。要了解更详细的信息,请参见 |2html.vim|。处理完后别忘
了删掉那个 HTML 文件。
除了打印,你还可以把这个 HTML 文件,放到 WEB 服务器上,让其他人可以通过彩色
文本阅读。
-----------------------------------------------------------------------------
---
*06.6* 深入阅读
|usr_44.txt| 自定义语法加亮
|syntax| 关于本话题的全部细节
/etc/vimrc, ~/.vimrc
LFS文档将vim作为自己的文本编辑器。这里,我们需要说明还有很多不同的编辑器
例如:emacs, nano, joe 等等。每个互联网的用户都会很容易发现网上有很多vim
和emacs的狂热拥护者。
LFS文档提供了一个基本的vimrc 文件。这里,我们要增强这个文件的功能。在启
动的时候vim会读取 /etc/vimrc 和 ~/.vimrc (也就是说, 全局设置的vimrc 和
用户设置)。 这里需要使用LFS3.1或者更新的版本来编译vim。在这个之前全局的
vimrc是在/usr/share/vim/vimrc里面的。
这里是一个稍作增强的vimrc文件。
" .vimrc开始
set nocompatible
set bs=2
set columns=80
set background=dark
set tabstop=8
set wrapmargin=8
set nobk
syntax on
set ruler
set noexpandtab
" .vimrc 结束
//也是正确的。 vimrc的语法有一些地方和通常使用的语法不太一样。
我们下面简单解释一下上面例子中涉及到的设置:
set nocompatible : 这个设置将避免vim以和vi高度兼容的方式工作。
这个设置需要在每个vimrc文件的开始。从而影响接下来的很多设置。
set bs=2 : 这个将影响退格键的工作,具体情况非常复杂,可以参照
:help 'bs'。
set columns=80 : 设置屏幕的行数。
set background=dark : 叫vim使用在深色背景上看起来比较舒服的颜色显示。
set tabstop=8 : tab键跳过的空格数
set wrapmargin=8 : 设置了在窗口右侧何处开始换行。
set nobk : 关闭文件备份的功能。
syntax on : 开启语法结构强调
set ruler : 使得vim在右下角显示当前行列数。
set noexpandtab : 使vim在tab处,插入tab符而不是一串空格。
阅读vim内部的帮助信息可以获得,很多vim参数的信息。
在vim中敲入 :help 可以获取帮助,或者:help usr_toc.txt可以读取用户手册的目录。
--
Just do it!(十 月)
天行健,君子以自强不息;
地势坤,君子以厚德载物。
http://nkbbs.org/upload/qmd/O/October.jpg
※ 修改:·October 于 05月08日22:02:03 修改本文·[FROM: 202.113.229.144]
※ 来源:·我爱南开站 nkbbs.org·[FROM: 202.113.229.144]
--
--
[1;36m☆ 来源:.[1;32m天大求实 BBS bbs.tju.edu.cn.[1;36m[FROM: bbspost][0m
[m[1m※ 来源:.天大求实 BBS bbs.tju.edu.cn.[bbs.tju.edu.cn][m
--
[m[1;32m※ 转载:·饮水思源 bbs.sjtu.edu.cn·[FROM: 202.38.68.148][m
--
[m[1;32m※ 转载:.笔山书院 BBS bbs.qxntc.edu.cn.[FROM: 220.172.247.0][m |
|