发博文
达克

http://blog.chinaunix.net/space.php?uid=381586

量变促质变   
个人资料
  • 博客访问:113487
  • 博文数量:28
  • 博客积分:2510
  • 博客等级:少校
  • 注册时间:2005-02-02 12:43:10
订阅我的博客
  • 订阅
  • 订阅到鲜果
  • 订阅到抓虾
  • 订阅到Google
字体大小: 博文
vi入门 (2005-02-25 08:50)
分类: sco unix

本教程阐述了如何使用功能强大的可视化编辑器 vi。它使用一种快速“巧表单”方法,目的是使您不用花费大量时间,就可以精通 vi。您将会很快学会在 vi 中移动光标、编辑文本、使用插入模式、拷贝粘贴文本及使用重要 vim 扩展功能,如可视化模式和多窗口编辑。

一。教程提示

我应该学习这门教程吗?

此教程阐述了如何使用功能强大的可视化编辑器 vi。它使用一种加速“巧表单”方法,目的是使您不用花费大量时间,就可以精通 vi。您将会快速学会在 vi 中移动、编辑文本、使用插入模式、拷贝粘贴文本及使用重要 vim 扩展功能,如可视化模式和多窗口编辑。

如果您还不知道 vi 或不习惯用它,应认为您有这方面欠缺而接受本教程,加紧学习这种最流行功能强大的 Linux/UNIX 可视化编辑程序。

导航

在此教程中导航非常容易:

  • 使用“下一步”和“上一步”按钮可以在教程中向前或向后移动。
  • 使用“主菜单”按钮可返回教程菜单。
  • 如果您想告诉我们您的想法,请用“反馈意见”按钮。

获取帮助

有关本教程的技术问题,请与作者 Daniel Robbins 联系,他的邮件地址是 drobbins@gentoo.org

Daniel Robbins 生活在 New Mexico 的 Albuquerque,是 Gentoo Technologies, Inc. 的总裁/CEO,是 Gentoo Linux 的创始人,Gentoo Linux 是 PC 的高级 Linux,是 Portage 系统,Linux 的下一代 ports 系统。他还是 Macmillan books Caldera OpenLinux Unleashed, SuSE Linux UnleashedSamba Unleashed 撰稿作家。Daniel has been involved with computers in some fashion since the second grade, when he was first exposed to the Logo programming language as well as a potentially dangerous dose of Pac Man. This probably explains why he has since served as a Lead Graphic Artist at SONY Electronic Publishing/Psygnosis. Daniel enjoys spending time with his wife, Mary, and his new baby daughter, Hadassah.

二。第一步

学习 vi -- 快速

学习 vi 有一点很难 -- vi 有许多命令。 要高效地使用 vi,必须记住一些命令。这可能要花好长时间,而此教程的目标之一就是少花一点时间。因此,如何帮您在短时间内记住诸多命令是本教程的一个挑战。

要处理好这个挑战,随着教程的深入,我们将逐渐把这些命令一起放在一个“巧表单”中。此表将包含所有 vi 重要命令。学完教程后,如果忘记某一个命令,就可以参考巧表单。过一段时间后,当您记住这些命令,就不用过分依赖于巧表单。

学习过程

本教程将使用几种技术帮您学习。首先,就象您期望那样,让我们来讨论一下一个命令是如何工作的。然后,要求您在 vi 中尝试使用这些命令(练习),最后,让您将命令转录到巧表单(以备参考)。如果想要快速学会 vi,按照这个步逐进行是很重要的。试着在 vi 中使用一条命令,然后记在您的 巧表单 上便于记忆。

介绍 vim

vi 版本有多种,在此将介绍如何使用称为 vim 的版本。vim 非常流行,它有一些更好的扩展功能(因此无论何时我在演示 vi 特定命令时都要作记录),如果您需安装 vim,可以从 http://www.vim.org 上下载。除了是加强的命令行 vi,vim 还带有一个很不错的图形编辑器 gvim,您可以对其进行配置来使用 GTK+ GUI 库。下面是从我的系统抓下的一屏:

GVIM SCREENSHOT

如果您是 vi 新用户,应该在系统上运行 gvim。对于初学者,从 GUI 使用 vi 会容易许多。

三。开始

选一个文件

在使用 vi 编辑文件之前,需要知道如何使用 vi 在文件中移动。vi 有许多移动命令,让我们来介绍一下。作为这一部分练习,找一个不重要的文本文件,按照下列方式,将文件装入 vi 中:

 $ vi myfile.txt

如果您安装的是 vim,输入“vim myfile.txt”。如果您愿意使用 gvim,输入“gvim myfile.txt”。myfile.txt 应是系统上的一个文件名。

在 vi 中

在 vi 中装入文件后,将会在屏幕看到文本文件的一部分。 恭喜 -- 您已在使用 vi! 与其它许多编辑器有所不同,vi 启动后,处于一种特殊的“命令模式”。这意味着如果您按“l”,光标将向右移动一个字符,而不是在文件当前位置插入“l”。在命令模式下,键盘上的字符是用来向 vi 发送命令,而不是插入文字字符。最基本命令类型之一是移动命令;让我们来介绍一些。

在 vi 中移动,第一部分

在命令模式下,可以使用 h、j、k 和 l 键向左、向下、向上和向右移动光标。如果您使用的是当今 vi 流行的版本,还可以使用方向键来实现移动。然而,一旦您习惯了 h、j、k 和 l 键,就很方便,因为这样您的手指就不必从主键盘行移开。尝试一下,使用 h、j、k 和 l (及方向键)让光标在文本文件中移动。试着按住 h 键直到光标来到行首。注意,当光标已在行首时,vi 不允许用 h 键折到上一行。同样,当光标在行末时,也不允许使用 l 键折到下一行。

在 vi 中移动,第二部分

vi 提供一些特殊的快捷方式让光标跳到当前行的行首或行末。您可以按 0 (零) 或^跳到一行的第一个字符,按 $ 跳到一行的最后一个字符,试试看。既然 vi 有许多方便的移动命令,因此它可做成很大“pager”(就像更多或更少命令)。将 vi 用作 pager 还能帮您快速学会所有移动命令,移动到文件结尾G或着:$。

您还可以用 ^F (control-F) 和 ^B (control-B) 一次向前或向后翻页,还可以用 ^d (control-d) 和 ^u (control-u) 一次向前或向后翻半页。目前 vi 流行版本(像 vim)允许您使用 PGUP 和 PGDOWN 来翻页。

单词移动,第一部分

vi 还允许您以单词为单位向左或向右移动。要移到下一个单词的第一个字符,请按 w。要移到下一个单词的最后一个字符,请按 e。要移到前一个单词的第一个字符,请按 b。不妨试试看。

单词间移动,第二部分

练习完单词移动后,您可能意识到这种情况:vi 将某些单词(如 foo-bar-oni)认为是 5 个单独的单词!这是因为缺省情况下,vi 按空格标点符号分隔单词。因此 foo-bar-oni 被认为是 5 个单词:“foo”、“-”、“bar”、“-”和“oni”。

有时需要这样,但有时不需要这样。可喜的是,vi 还能识别“长单词”,即 vi 只按空格或新行来分隔长单词。这意味着尽管 foo-bar-oni 被 vi 认为是 5 个单词,但被认为是 1 个长单词。

单词间移动,第三部分

要跳到前一个或后一个长单词,可以使用大写单词间移动命令。使用 W 可跳到下一个长单词的第一个字符,使用 E 跳到下一个长单词的最后一个字符,使用 B 跳到上一个长单词的第一个字符。练习一下,并比较匹配单词间移动命令和匹配长单词间移动命令的不同。

快速移动

在开始把这些命令集中到 巧表单之前,让我们再来学习几条命令。您可以使用 ( 和 ) 字符将光标移到前一个句子或后一个句子的句首。此外,可以使用 { 或 } 跳到当前段或下一段段首。测测看!

退出

我们已经学习了基本移动命令,但还有几个命令您需要知道。输入 :q 退出 vi,如果不起作用,可能是您不小心修改了文件,要让 vi 不保存任何更改退出,请输入 :q!。这些操作应在命令提示模式下进行。

在 vi 中,以“:”开始的所有命令都是“ex-mode” 命令。这是因为 vi 有一个非可视化编辑器叫做“ex”。类似地,它可以用来执行基于行的编辑操作。此外,还可用来退出 vi,如上所述。如果您在命令模式下敲 Q 键,将转换到 ex 模式。如果处于 ex 模式,您将会看到 : 提示符,此时敲 Enter 键,整屏向上滚动。要回到 vi 的命令模式,敲入 vi 并回车。

开始巧表单

已经学习了许多命令,该是将他们转录到巧表单的时候了。为了做巧表单,需要一张 A4 大小的信纸(我们将要在上面放许多信息!)。 下面是我的巧表单,我已将所有到目前为止所学的命令转录到其上。如果可能,仿效我的布局,以便能在一张纸填下所有内容。

巧表单 1

四。各种vi命令

光标移动

让我们继续快速学习命令。在命令模式下,输入<行号>G 可以跳到特定行。要跳到文件第一行,输入 1G。注意,G 是大写。

如果要跳到特定文本样式下一次出现的地点,输入 /regexp 并回车,regexp 是指要查找的正则表达式。如果您不知道如何使用正则表达式,不用担心,输入 /foo 将会来到下一个 foo。需要注意的是, 在涉及到字符 ^、.、$ 或 时,在这些字符前加上反斜杠(),才能正常查找。例如,/foo.gif 将会匹配“foo.gif”。

要向前重复搜索,按 n 键。要向后搜索,按 N 键。同样,在您的 vi 编辑器测一测这些命令。

保存及另存为...

我们已经介绍如何使用 ex 命令 :q 从 vi 中退出。如果想保存更改,输入 :w。如果想将更改保存为另一个文件,输入 :w filename.txt 便可另存为 filename.txt。如果想保存并退出,输入 :x 或 :wq。

在 vim (及其它高级 vi 编辑器,像elvis) 的 :w 中,可以一次打开多个缓冲。要将一个文件在新窗口中打开,输入 :sp filename.txt。filename.txt 将出现在分开的新窗口中。要在窗口间切换,输入 ^w^w (control-w 两次)。如果输入 :q、:q!、:w 和 :x 命令,则只对当前激活窗口有效

简单编辑

现在,可以学习一些简单编辑命令了。之所以称之为简单,是因为这些命令仍是命令模式下使用。更复杂的编辑命令会自动地切换到插入模式,插入模式允许从键盘输入文字数据。稍后我们会学这类命令。

现在,尝试移动光标,并重复击 x 键。您将会看到 x 键可删除当前光标所在的字符。然后,将光标移到文本文件的某段中间并击 J 键(大写),您将会看到 J 命令将下一行接到当前行行末。现在,将光标移到一个字符并敲 r,然后输入新字符;您将看到原字符被替换掉,r单字符替换,R多字符替换,s多字符替换单字符,S整行替换。最后,将光标移到文件的任意行,键入 dd,您将会看到 dd 删除了当前行。u放弃上次操作。

重复及删除

敲 . 键可以重复任何编辑命令。 试验一下,您就会发现输入 dd.. 将删除 4 行,J...... 将连接 4 行。通常,vi 提供另一种便捷方式。

要删除文本,还可以联合使用 d 命令和移动命令。例如,dw 用来删除从当前位置到下一个单词词首的所有字符;d) 用来删除到下一个句首;d} 删除本段剩余部分。试验一下 d 命令和其它编辑命令直到熟练。

恢复!

已经练习了删除,下一步该学习如何撤消所作的更改。按 u 键,以前版本的 vi 只允许您撤消上一步更改。然而,新版本 vi 像 vim 允许您重复按 u 键一步步撤消对文件所作的更改。结合使用一下 d 命令和 u 命令,然后继续下一屏。

更新巧表单

该更新 巧表单了!添入所学的所有命令,您的巧表单看起来应类似于:

巧表单 2

五。插入模式

插入模式

到目前为止,我们已经学习了在 vi 中移动光标、执行文件输入输出和执行基本编辑操作。然而,还没有介绍如何真正以自由文本格式输入。这是故意安排的,因为如果一开始就讲 vi 插入模式,这过于复杂。但是在您熟练掌握插入模式后,其复杂性(和灵活性)就成为您的资本。

在插入模式下,您可以直接向屏幕输入文本,就像在许多其它可视化编辑器一样。输入或修改完后,按 Escape 键可返回命令模式。要进入插入模式,按 i 或 a 即可。如果按 i,输入的文本将插在光标处字符之前,如果按 a 输入文本将追加再光标处字符之后。请记住,输入文本后,按 escape 键返回命令模式。

插入模式的好处

我们继续学习使用 a 和 i 命令。按 a 或 i,输入一些文本,然后按 escape 回到命令模式。按 a 或 i 后,按一下回车键,看看出现什么情况。试着使用方向键和删除键,去感觉一下插入模式是如何工作的。如果使用方向键和删除键,可以执行功能更强的编辑步骤而无需不停地切换插入模式。

插入选项

有一些其它便捷方法进入插入模式。按 A (大写),输入文本将追加到当前行末,不管光标在当前行何处。同样,I (大写)将输入文本插到当前行的行首。按 o 可在当前行下面生成一空行并插入文本,按 O (大写)在当前行上面生成一空行。要以一新行替换当前整行,按 cc。要替换光标当前所在位置到行末,请输入 c$。要替换光标当前所在位置到行首,输入 c0。

这些命令除了执行特殊操作,还使 vi 处于插入模式。输入文本后,按 escape 返回命令模式。

更改文本

当我们键入 cc、c0、c$ 时,我们已在开始使用 c (更改)命令了。cc 是一种特殊形式的更改命令,类似于 dd。c0 和 c$ 命令就是更改命令和移动命令联合使用的例子。在这种形式下,c 类似于 d,但它使 vi 处于插入模式,以便可以在删除区输入要替换的文本。尝试将一些移动命令与 c 一起使用,并在您的文件中实验一下(提示: cW、ce、c(、.)。

复合命令

在您开始使用复合命令(像 d{ 和 cw)时,vi 确实已成为功能强大的编辑器了。除了这些命令外,您还可以将移动命令与数字一起使用,例如 3w,它让光标向右跳 3 个单词。还有更多的复合移动命令示例:12b、4j。

除了(数字)(移动命令)一起使用,vi 还允许 d 和 c 与数字或移动命令一起使用。应此,d3w 将删除光标后 3 个单词,d2j 将删除当前行和下两行。测测 c 和 d 与一些移动命令一起使用的例子,然后感受一下强大并简洁的 vi 编辑功能。一旦熟悉了这些命令,您就可以以惊人的速度进行文件编辑。

更新巧表单

又该更新巧表单了。到现在为止,它应类似于:

巧表单 3

六。高效特性

嗯,真不错...

到目前为止,我们已学习了如何移动、保存并退出、进行简单的编辑和删除、使用插入模式。按照 巧表单所列,您应该能够使用 vi 进行几乎所有的任务。

然而,vi 还有许多功能更强的命令。本章里,将要学习如何剪切、拷贝和粘贴、搜索和替换以及自动缩进功能。这些命令有助于使 vi 更有趣、更有效。

可视模式

剪切和粘贴的最佳方法是使用可视化模式,这是一种特殊模式,已经加入新版本的 vi,如 vim 和 elvis。您可以认为可视化模式是“高亮显示文本”模式。一旦文本被高亮显示,就可以进行拷贝或删除,并进行粘贴。如果您使用 gvim,可以通过按住鼠标左键,简单拖拉要选区域便可高亮显示:

SCREENSHOT OF VIM HIGHLIGHT

此外,您还可以按 v 进入可视化模式(如果您使用的是 vi,这可能是唯一选择)。然后,用移动命令移动光标(通常用方向键)来选中一段文本。选中后,就可以进行剪切或拷贝文本。

如果要拷贝文本,按 y (代表“yank”),如果要剪切文本,按 d,然后,vi 将回到命令模式。现在,将光标移到要插入剪切的或拷贝的文本处,按 P 插到光标之后,按 p 插到光标之前。好,剪切/拷贝和粘贴就完成了!多测几个拷贝/剪切和粘贴操作,然后继续下一屏。

替换文本

要替换文本式样,应使用 ex 模式。如果想替换当前行出现的第一个式样,输入 :s/regexp/replacement/ 并按回车键,其中 regexp 是要匹配的式样,replacement 是替换字符串。要替换当前行所有匹配,输入 :s/regexp/replacement/g 并按回车。要替换文件中所有匹配式样(这通常是需要的),输入 :%s/regexp/replacement/g。如果要进行全程替换时,希望 vi 每次给出确认提示,输入 :%s/regexp/replacement/gc (代表“confirm”) 并回车。

缩进

在编辑源代码时,vi 支持自动缩进。编辑源文件(如 .c 文件)时,大多数新版本 vi(像 vim)将自动启用自动缩进模式。如果自动缩进功能启用,可以使用 ^d (control-d) 来向左缩进一级,用 ^t (control-t) 向右缩进一级。如果未自动启用自动缩进,可通过在 ex 命令模式下输入 :set autoindent 来手动启用。还可以按喜好设置 tab 大小,设置命令为 :set tabstop 命令;目前 :set tabstop=4 很流行。

最后的巧表单

好,我们已学完了 vi! 把所有高级编辑命令加入巧表单,现在,看起来如下:

最后的巧表单

七。总结

卷起巧表单

把 巧表单卷起来放在旁边,开始使用 vi 编辑文件写电子邮件。必要时参考一下巧表单;您将会发现在一星期内会记住所有命令,到时您就知道 vi 的功能有多强大!

参考资料

下面是一些参考资料,可能对您进一步学习 vi 有所帮助:

您的反馈意见

请告诉我们:此教程是否对您受益匪浅?怎样才能做的更好?同时我们希望您能提出一些其他教程主题。谢谢!

对本教程的内容,如果您有问题,请联系我们的 Linux 编辑,developer@cn.ibm.com

我的更多文章
[发评论] 评论 重要提示:警惕虚假中奖信息!
  • 达克 2005-06-21 15:44
    VIM 简介 VIM 是 Unix 世界里极为普遍的全萤幕文书编辑器,几乎可以说任何一台 Unix 机器都会提供这套软体。熟悉 DOS 下的文书处理後,也许会感到 VIM 并不好用;Unix 上也已经发展出许多更新、更好用的文书编辑器,但是并不一定每一台 Unix 机器上都会安装这些额外的软体。所以,学习 VIM 的基本操作还是有好处,让你在各个不同的机器上得心应手。 VIM 基本观念 Unix 提供一系列的 ex 编辑器,包括 ex, edit 和 VIM 。相对於全萤幕编辑器,现在可能很难想像如何使用 ex, edit 这种行列编辑器(有人用过 DOS 3.3 版以前所附的 EDLIN 吗?)。 VIM 的原意是 "Vi IMproved",它是一个所见所得的编辑程式,也就是说可以立刻看到操作结果。 也由於 VIM 是全萤幕编辑器,所以它必须控制整个终端屏幕哪里该显示些什麽。而终端的种类有许多种,特性又不尽相同,所以 VIM 有必要知道现在所使用的是哪一种终端。这是由 TERM 这个环境变数来设定,设定环境变数方面请查看所使用 shell 的说明。(除非执行 VIM 的时候回应 unknow terminal type ,否则可以不用设定。) 只要简单的执行 VIM 就可以进入 VIM 的编辑环境。在实际操作之前先对它有个概略的了解会比较好。VIM 有两种模式,输入模式以及指令模式。输入模式即是用来输入文字资料,而指令模式则是用来下达一些编排文件、存档、以及离开 VIM 等等的操作指令。当执行 VIM 後,会先进入指令模式,此时输入的任何字元都视为指令。 进入与离开 要进入 VIM 可以直接在系统提示下键入 VIM <档案名称>,VIM 可以自动帮你载入所要编辑的文件或是开启一个新文件。进入 VIM 后屏幕左方会出现波浪符号,凡是行首有该符号就代表此列目前是空的。要离开 VIM 可以在指令模式下键入 :q, :wq 指令则是存档後再离开(注意冒号)。要切换到指令模式下则是用 [ESC] 键,如果不晓得现在是处於什麽模式, 可以多按几次 [ESC],系统会发出哔哔声以确定进入指令模式。 VIM 输入模式 要如何输入资料呢?有好几个指令可以进入输入模式: 新增 (append) a 从光标所在位置后面开始新增资料,光标后的资料随新增资料向后移动。 A 从光标所在列最后面的地方开始新增资料。 插入 (insert) i 从光标所在位置前面开始插入资料,光标后的资料随新增资料向后移动。 I 从光标所在列的第一个非空白字元前面开始插入资料。 开始 (open) o 在光标所在列下新增一列并进入输入模式。 O 在光标所在列上方新增一列并进入输入模式。 也许文字叙述看起来有点繁杂,但是只要实际操作一下马上可以了解这些操作方式。实务很重要,尤其是电脑方面的东西随时可以尝试及验证结果。极力建议实际去使用它而不要只是猛 K 文件,才有事半功倍的效用。(注:此段为废话。) VIM 基本编辑 配合一般键盘上的功能键,像是方向键、[Insert] 、[Delete] 等等,现在你应该已经可以利用 VIM 来处理文字资料了。当然 VIM 还提供其他许许多多功能让文字的处理更形方便,有兴趣的看倌请继续。 在继续下去之前先来点 BCC 吧。电脑有许多厂牌,不同的硬体及作业系统。PC 也不是仅仅只有 IBM PC 及其相容品而已。事实上,包括键盘,终端机等等往往都有不同的规格。这代表什麽? 在文书编辑软体上会遇这样的问题,某些电脑的键盘上没有特定的几个功能键!那麽不就有某些功能不能用了?这个问题在 Unix 系统上也一样,几乎各大电脑厂商都有自己的 Unix 系统,而 VIM 的操作方法也会随之有点出入。我们固然可以用 PC 的键盘来说明 VIM 的操作,但是还是得提一下这个问题。 删除与修改 何谓编辑?在这里我们认为是文字的新增修改以及删除,甚至包括文字区块的搬移、复制等等。这里先介绍 VIM 的如何做删除与修改。(注意:在 VIM 的原始观念里,输入跟编辑是两码子事。编辑是在指令模式下操作的,先利用指令移动光标来定位要进行编辑的地方,然后才下指令做编辑。) x 删除光标所在字元。 dd 删除光标所在的列。 r 修改光标所在字元,r 后接著要修正的字元。 R 进入取代状态,新增资料会覆盖原先资料,直到按 [ESC] 回到指令模式下为止。 s 删除光标所在字元,并进入输入模式。 S 删除光标所在的列,并进入输入模式。 其实呢,在 PC 上根本没有这麽麻烦!输入跟编辑都可以在输入模式下完成。例如要删除字元,直接按 [Delete] 不就得了。而插入状态与取代状态可以直接用 [Insert] 切换,犯不著用什麽指令模式的编辑指令。不过就如前面所提到的,这些指令几乎是每台终端机都能用,而不是仅仅在 PC 上。 在指令模式下移动光标的基本指令是 h, j, k, l 。想来各位现在也应该能猜到只要直接用 PC 的方向键就可以了,而且无论在指令模式或输入模式下都可以。多容易不是。 当然 PC 键盘也有不足之处。有个很好用的指令 u 可以恢复被删除的资料,而 U 指令则可以恢复光标所在列的所有改变。这与某些电脑上的 [Undo] 按键功能相同。 VIM 进阶应用 相信现在对於 VIM 应该已经有相当的认识。处理文字也不会有什麽麻烦才对。如果有兴趣善用 VIM 的其它功能进一步简化操作过程,不妨继续看下去。 移动光标 由於许多编辑工作是藉由光标来定位,所以 VIM 提供许多移动光标的方式,这个我们列几张简表来说明(这些当然是指令模式下的指令): 指令 说明 功能键 0 移动到光标所在列的最前面 HOME $ 移动到光标所在列的最后面 END ^d 向下半页 ^f 向下一页 PageDown ^u 向上半页 ^b 向上一页 PageUp 指令 说明 H 移动到视窗的第一列 M 移动到视窗的中间列 L 移动到视窗的最后列 b 移动到下个字的第一个字母 w 移动到上个字的第一个字母 e 移动到下个字的最后一个字母 ^ 移动到光标所在列的第一个非空白字元 指令 说明 n- 减号移动到上一列的第一个非空白字元 n+ 加号移动到下一列的第一个非空白字元 nG 直接用数字 n 加上大写 G 移动到第 n 列 指令 说明 fx 往右移动到 x 字元上 Fx 往左移动到 x 字元上 tx 往右移动到 x 字元前 Tx 往左移动到 x 字元前 ; 配合 f&t 使用,重复一次 , 配合 f&t 使用,反方向重复一次 /string 往右移动到有 string 的地方 ?string 往左移动到有 string 的地方 n 配合 /&? 使用,重复一次 N 配合 /&? 使用,反方向重复一次 指令 说明 备注 n( 左括号移动到句子的最前面,前面加上数字可以指定往前移动 n 个句子 句子是以 ! . ? 三种符号来界定 n) 右括号移动到下个句子的最前面,前面加上数字可以指定往后移动 n 个句子 n{ 左括弧移动到段落的最前面 ,前面加上数字可以指定往前移动 n 个段落 段落是以,段落间的空白列界定 n} 右括弧移动到下个段落的最前面,前面加上数字可以指定往后移动 n 个段落 不要尝试背诵这些指令,否则后果自行负责。它们看起来又多又杂乱,事实上这是文字叙述本身的障碍。再强调一次,实际去使用它只要几次就可以不经大脑直接下达这些奇奇怪怪的指令,远比死记活背搞得模模糊糊强多了。(注:若真的不经大脑而误删资料与我无关。另,此段为废话。) 进阶编辑指令 这些编辑指令非常有弹性,基本上可以说是由指令与范围所构成。例如 dw 是由删除指令 d 与范围 w 所组成,代表删除一个字 d(elete) w(ord) 。 指令列表如下: d 删除(delete) y 复制(yank) p 放置(put) c 修改(change) 范围可以是下列几个: e 光标所在位置到该字的最后一个字母 w 光标所在位置到下个字的第一个字母 b 光标所在位置到上个字的第一个字母 $ 光标所在位置到该列的最后一个字母 0 光标所在位置到该列的第一个字母 ) 光标所在位置到下个句子的第一个字母 ( 光标所在位置到该句子的第一个字母 } 光标所在位置到该段落的最后一个字母 { 光标所在位置到该段落的第一个字母 说实在的,组合这些指令来编辑文件有一点点艺术气息。不管怎麽样,它们提供更多编辑文字的能力。值得注意的一点是删除与复制都会将指定范围的内容放到暂存区里,然后就可以用指令 p 贴到其它地方去,这是 VIM 用来处理区段拷贝与搬移的办法。 某些 VIM 版本,例如 Linux 所用的 elVIMs 可以大幅简化这一坨指令。如果稍微观察一下这些编辑指令就会发现问题其实是定范围的方式有点杂,实际上只有四个指令罢了。指令 v 非常好用,只要按下 v 键,光标所在的位置就会反白,然后就可以移动光标来设定范围,接著再直接下指令进行编辑即可。 对於整列操作, VIM 另外提供了更方便的编辑指令。前面曾经提到过删除整列文字的指令 dd 就是其中一个;cc 可以修改整列文字;而 yy 则是复制整列文字;指令 D 则可以删除光标到该列结束为止所有的文字。 档案指令 档案指令多以 : 开头,跟编辑指令有点区别。例如前面提到结束编辑的指令就是 :q。现在就简单说明一下作为本篇故事的结尾: :q 结束编辑(quit) 如果不想存档而要放弃编辑过的档案则用 :q! 强制离开。 :w 存档(write) 其后可加所要存档的档名。 可以将档案指令合在一起,例如 :wq 即存档后离开。 zz 功能与 :wq 相同。 另外值得一提的是 VIM 的部份存档功能。可以用 :n,mw filename 将第 n 行到第 m 行的文字存放的所指定的 filename 里去哩。时代在变,世界在变, VIM 也在变,不过大致上就这样。好了,但愿从此以后王子跟公主过著幸福快乐的生活。 set nu 显示行号 set nonu 不显示行号 set ic 查找时不考虑大小写 set noic 查找时考虑大小写
亲,您还没有登录,请[登录][注册]后再进行评论