vim 命令(全) 05

 *05.5*  增加帮助                            *add-local-help*

如果幸运的话,你安装的插件还会包括帮助文件。我们这里解释如何安装这个帮助文件,
以便你能方便地获得新插件的帮助。

我们以 "matchit.vim" 插件为例(包括在 Vim 中)。这个插件使 "%" 命令可以在两个
对应的 HTML 标记间,Vim 脚本的 if/else/endif 间等匹配点间跳转。这非常有用,但
它不向前兼容(这也是为什么默认的情况下它不会被激活)。
    这个插件有一个文档:"matchit.txt"。我们先来把该插件拷贝到合适的位置。
这次,我们在 Vim 内完成这个工作,以便利用$VIMRUNTIME。(如果某些目录已经存在
你可以省略一些"mkdir" 命令)

        :!mkdir ~/.vim 
        :!mkdir ~/.vim/plugin 
        :!cp$VIMRUNTIME/macros/matchit.vim ~/.vim/plugin

现在在某个 &#39runtimepath' 目录中建立一个 doc 目录。

        :!mkdir ~/.vim/doc

再把帮助文件拷贝进去:

        :!cp$VIMRUNTIME/macros/matchit.txt ~/.vim/doc

现在开始玩技巧了,怎样使 Vim 允许你跳转到新的主题上?用 |:helptags| 命令产生
一个本地的tags文件即可:

        :helptags ~/.vim/doc

现在,你可以用这个命令

        :help g%

来获得 "g%" 的帮助了。在使用如下命令的时候,可以看见一个新的条目:

        :help local-additions

本地帮助的标题行被自动的加入到该节了。在那里你可以看到 Vim 添加了那些本地的
帮助文件。你还可以从这里跳转到新的帮助中。

要写一个本地帮助文件,请参考 |write-local-help|。

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

*05.6*  选项窗口

如果要找一个选项,你可以查找这个位置的帮助:|options|。另一个方法是用如下命
令:

        :options

这会打开一个新窗口,其中给出一个选项的列表,并对每个选项提供一行解释。这些选项
被根据种类分组。把光标移到一个主题上然后按回车就可以跳转到那里。再按一下回车或
者 CTRL-O 就可以跳回来。

你可以通过这个窗口改变一个选项的值。例如,移到"displaying text" 主题。然后把
光标下移到这一行:

        set wrap        nowrap

当你在上面键入回车,这行会改变为:

        set nowrap      wrap

现在,这个选项被关闭了。

这行的上面是对这个选项的简要描述。将光标向上移动一行,然后按<Enter>,你可以
跳转到 &#39wrap' 的完整帮助,再用 CTRL-O 可以跳回来。

对于那些值为数字或者字符串的选项,你可以编辑它的值,然后按<Enter> 来启用该
值。例如,把光标移动到下面这行:

        set so=0

用 $ 移到行尾,再用 "r5" 命令修改为五,然后按 <Enter> 使修改生效。现在如果你
移动一下光标,你会发现在你的光标移到窗口边界前,你的文字就开始滚动了。这就是
选项 &#39scrolloff'完成的功能:它指定在距离边界多远的地方开始滚动文字。

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

*05.7*  常用选项

Vim 中有很多选项。大部分你很少用得上。我们在这个介绍一些常用的。别忘了你可以
通过":help" 命令获得更多的帮助。方法是在选项命令前后加上单引号,例如:

        :help &#39wrap'

如果你搞乱了一个选项,你可以通过在选项后加上一个 & 号把它恢复到默认值。例如:

        :set iskeyword&

禁 止 折 行

Vim 通常会对长行自动换行,以便你可以看见所有的文字。但有时最好还是能让文字在一
行中显示完。这样,你需要左右移动才能看到一整行。以下命令可以切换换行方式:

        :set nowrap

当你移到到那些不能显示的文字上,Vim 会自动向右滚动让你看到后面的文字,要一次滚
动十个字符,这样就行了:

        :set sidescroll=10

这个命令不改变文件中的文字,只改变显示方式。


移 动命 令 换 行

很多命令只能在一行中移动。你可以通过 &#39whichwrap' 选项改变它。如下命令把这个选项
设为默认值:

        :set whichwrap=b,s

这样,当光标处于行首时用 <BS> 键可以回到前一行的结尾;当处于行尾时用 <Space> 
键可以移动到下一行的行首。

要允许 <Left> 和 <Right> 键也能这样,可以用这个命令:

        setwhichwrap=b,s,<,>

这只在普通模式中有效,要在插入模式中也有效,可以:

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

还有一些可以用的标志,参见 &#39whichwrap'。


显 示 TAB 键

文件中有 TAB 键的时候,你是看不见的。要把它显示出来:

        :set list

现在 TAB 键显示为 ^I,而 $显示在每行的结尾,以便你能找到可能会被你忽略的空白
字符在哪里。
    这样做的一个缺点是在有很多 TAB 的时候看起来很丑。如果你使用一个有颜色的
终端,或者使用 GUI 模式,Vim 可以用高亮显示空格和TAB。 使用 &#39listchars' 选项:

        :set listchars=tab:>-,trail:-

现在,TAB会被显示成 ">---" 而行尾多余的空白字符显示成 "-"。看起来好多了,是
吧?


关 键字

&#39iskeyword' 选项指定那些字母可以出现在一个单词中:

        :set iskeyword 
<        iskeyword=@,48-57,_,192-255

"@" 表示所有字母。"48-57" 表示 ASCII 字符 48-57 ,即数字 0 到 9。"192-255" 
是可打印的拉丁字符。
    有时你希望横线也是关键字,以便 "w" 命令会把 "upper-case" 看作是一个单词。
你可以这样做:

        :set iskeyword+=- 
        :set iskeyword 
        iskeyword=@,48-57,_,192-255,-

看一下新的值,你会发现 Vim 自动在 "-" 前面加了一个逗号。
    要从中去掉一个字符用 "-="。例如要排除下划线:

        :set iskeyword-=_ 
        :set iskeyword 
        iskeyword=@,48-57,192-255,-

这回,逗号自动被删除了。


显 示消 息 的 空 间

当 Vim 启动的时候,在屏幕底部有一行被用于显示消息。当消息很长的时候,多余的部分
会被截断。这样你只能看到一部分。或者文字自动滚动,你要按 <Enter> 来继续。你可以
给 &#39cmdheight' 选项赋一个值,用来设定显示消息所用的行数。例如:

        :set cmdheight=3

这样意味着你用于编辑文字的空间少了,所以这实际上是一种折衷。

使用语法加亮


黑白的文字让人厌倦了,增加一些色彩能为你的文件带来生气。这不但看起来漂亮,
还能够提高你的工作效率。本章介绍如何使用不同颜色显示不同文本并把它打印出来。

|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 会自动检测文件的类型,并调用合适的
语法加亮。一下子注释变成蓝色,关键字变成褐色,而字符串变成红色了。这使你可以
很容易浏览整个文档。很快你就会发现,黑白的文本真的会降低你的效率!

如果你希望总能看到语法加亮,把 "syntaxenable" 命令加入到 |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 TERMxterm-color

        或者(基于你用的控制台终端)

               TERM=xterm-color; export TREM

        终端名必须与你使用的终端一致。如果这还是不行,参考一下|xterm-color|,
        那里介绍了一些使 Vim 显示彩色的方法(不仅是xterm )。

- 文件类型无法识别
        Vim 不可能识别所有文件,而且有时很难说一个文件是什么类型的。试一下这个
        命令:

                :set filetype 

        如果结果是 "filetype=",那么问题就是出在文件类型上了。你可以手工指定
        文件类型:

                :setfiletype=fortran

        要知道那些类型是有效的,查看一下 $VIMRUNTIME/syntax 目录。对于 GUI 版本,
        你还可以使用 Syntax 菜单。设置文件类型也可以通过 |modeline|,这样,
        在你每次编辑它的时候都执行语法加亮。例如,下面这一行可以用
        于 Makefile(把它放在接近文首和文末的地方)

                # vim:syntax=make

        你可能知道怎么检测自己的文件类型,通常是文件的扩展名(就是点后面的
        内容)参见 |new-filetype| 可以知道如何告诉 Vim 如何检查一种文件类型。

- 你的文件类型没有语法高亮定义
        你可以找一个相似的文件类型并人工设置为那种类型。如果你觉得不好,你可以
        自己写一个,参见 |mysyntaxfile|。


或者颜色是错的:

- 彩色的文字难以辨认
        Vim 自动猜测你使用的背景色。如果是黑的(或者其它深色的色彩),它会
        用浅色作为前景色。如果是白的(或者其它浅色),它会使用深色作为前景
        色。如果 Vim 猜错了,文字就很难认了。要解决这个问题,设置一下
        &#39background' 选项。对于深色:

                :setbackground=dark

        而对于浅色:

                :set light< /p>

       这两个命令必须在 ":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 Commentctermfg=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
中,每个被打开的文件对应一个缓冲,后面的章节中你会接触到这方面的内容)。要在当
前缓冲中使用加亮,需要设置&#39syntax'选项:

        :set syntax=ON

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

*06.5*  带颜色打印                                       *syntax-printing*

在 MS-Windows 版本中,你可以用如下命令打印当前文件:

        :hardcopy

这个命令会启动一个常见的打印对话框,你可以通过它选择打印机并作一些必要的设置。
如果你使用的是彩色打印机,那么打印出来的色彩将与你在 Vim 中看到的一样。但如果
你使用的是深色的背景,它的颜色会被适当调整,以便在白色地打印纸上看起来比较舒
服。

下面几个选项可以改变 Vim 的打印行为:
        &#39printdevice' 
        &#39printheader' 
        &#39printfont' 
        &#39printoptions'

要仅打印一定范围内的行,可以用可视模式选择需要打印的行在执行打印命令,例如:

        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 服务器上,让其他人可以通过彩色
文本阅读。 

本文出自 “if i can i can do it” 博客,谢绝转载!

你可能感兴趣的:(linux)