📄 0310vi.htm
字号:
</div>
<!-- 本文的正式部分 -->
<hr><a NAME="vi_vim"></a><img src="images/penguin-m.gif" alt="大标题的图示" height="34" width="25" align="middle" /><span class="text_h1">vi 与 vim</span><br>
<div class=block1>
由前面一路走来,我们一直建议使用文字模式来处理 Linux 的系统设定问题,因为不但可以让您比较容易了解到
Linux 的运作状况,也比较容易了解整个设定的基本精神,更能『保证』您的修改可以顺利的被运作。
所以,<span class=text_import2>在 Linux 的系统中使用文字编辑器来编辑您的 Linux
参数设定档,嗯!可是一件很重要的事情呦</span>!所以说嘛!系统管理员至少应该要熟悉一种文书处理器的!<br>
<div style="padding: 10 0 10 0 ;" align="right"><table width="90%"><tr><td><b>Tips:</b><br /><span style="font-style: italic; color : darkgreen"> 这里要再次的强调,不同的 Linux distribution 各有其不同的附加软体,例如
Red Hat 与 Fedora 的 userconf, Linuxconf, ntsysv 与 setup 等等,而 SuSE 则有 YOU 管理工具等等,
因此,如果您只会使用此种类型的软体来控制您的 Linux 系统时,当接管不同的
Linux distributions 时,呵呵!那可就苦恼了!
</span></td><td><img src="../images/vbird_face.gif" /></td></tr></table></div>
由 <a href="0110whatislinux.php">Linux是什么</a> 介绍中,我们知道 <span class=text_import2>Linux
与 Unix 系统中的参数档几乎都是 ASCII 码的『纯文字』档</span>!因此,利用简单的文字编辑软体就可以马上修改
Linux 的参数档棉!然而,与 Windows 不同的是,如果您用惯了 Microsoft Word
或 Corel Wordperfect 的话,那么除了 X window 里面的编辑程式(如 xemacs )用起来尚可应付外,于
Linux 的文字模式下,会觉得档案编辑程式都没有 Windows 程式那么方便。<br>
<div style="padding: 10 0 10 0 ;" align="right"><table width="90%"><tr><td><b>Tips:</b><br /><span style="font-style: italic; color : darkgreen"> 还记得什么是纯文字档吗?忘记的话,回到 <a href="0210filepermission.php#filepermission_type">Linux
的档案属性与目录配置</a> 里头去瞧一瞧先~该档案格式以 ASCII 格式码为主。
说穿了,就是您『不论使用什么编辑器』来开启那个档案时,都可以将内容给您看到,而不是呈现乱码的档案,
那就是纯文字档了!当您以 Windows 的 word 存一个档案时,在 DOS 的情况下使用 type
这个指令来查阅资料,嗯!完全不知到内容是什么?因为会出现很多的乱码,那并非是纯文字档,而如果以
word 在存档时,选择『纯文字类型』,嗯!那就可以使用 type 看到该档案的内容了!
由于纯文字档在任何作业系统底下都可以被取用,是相当方便的一种设定格式啊!
</span></td><td><img src="../images/vbird_face.gif" /></td></tr></table></div>
无论如何,要管理好 Linux 系统时,纯文字的手工设定仍是需要的!那么在 Linux 底下有哪些文书编辑器呢?
可多了~例如 vi, emacs, xemacs, joe, e3, xedit, kedit, pico .... 多的很~
各家处理器各有其优缺点,您当然可以选择任何一个您觉得适用的文书处理器来使用。不过,鸟哥还是比较建议使用 vi
啦!这是因为 vi 是 Unix Like 的机器上面预设都有安装的软体,也就是说,您一定可以接触到这个软体就是了。
另外,在较新的 distributions 上,您也可以使用较新较先进的 vim 这个文书处理器!
vim 可以看做是 vi 的进阶软体,他可以具有颜色显示,很方便程式开发人员在进行程式的撰写呢!<br><br>
简单的来说, vi 是老式的文书处理器,不过功能已经很齐全了,但是还是有可以进步的地方。
vim 则可以说是程式开发者的一项很好用的工具,就连 vim 的官方网站 (<a href="http://www.vim.org"
target="_blank">http://www.vim.org</a>) 自己也说 vim 是一个『程式开发工具』而不是文书处理软体~^_^。
因为 vim 里面加入了很多额外的功能,例如支援正规表示法的搜寻架构、多档案编辑、区块复制等等。
这对于我们在 Linux 上面进行一些设定档的修订工作时,是很棒的一项功能呢!<br><br>
底下鸟哥会先就简单的 vi 做个介绍,然后再跟大家报告一下 vim 的额外功能与用法呢!<br><br>
</div>
<hr><a NAME="vi"></a><img src="images/penguin-m.gif" alt="大标题的图示" height="34" width="25" align="middle" /><span class="text_h1">vi 的使用</span><br>
<div class=block1>
基本上 vi 共分为三种模式,分别是『<span class=text_import2>一般模式</span>』、
『<span class=text_import2>编辑模式</span>』与『<span class=text_import2>指令列命令模式</span>』三种!
这三种模式的作用是∶<ul>
<li><span class=text_import1>一般模式</span>∶<br>
以 vi 处理一个档案的时后,一进入该档案就是一般模式了。在这个模式中,
你可以使用『上下左右』按键来移动游标,您可以使用『删除字元』或『删除整行』来处理档案内容,
也可以使用『复制、贴上』来处理您的文件资料。<br><br>
<li><span class=text_import1>编辑模式</span>∶<br>
在一般模式中可以处理删除、复制、贴上等等的动作,但是却无法编辑的!
要等到您按下『<span class=text_import2><font face="细明体">i,
I, o, O, a, A, r, R</font></SPAN>』等字母之后才会进入编辑模式。注意了!通常在
Linux 中,按下上述的字母时,在画面的左下方会出现『 <span class=text_import2>INSERT
或 REPLACE </span>』的字样,才可以输入任何字来输入到您的档案中!而如果要回到一般模式时,
则必须要按下『<span class=text_import1>Esc</span>』这个按键即可退出编辑模式。</li><br>
<li><span class=text_import1>指令列命令模式</span>∶<br>
在一般模式当中,输入『<span class=text_import2>
: 或 / 或 ? </span>』就可以将游标移动到最底下那一行,在这个模式当中,
可以提供您『搜寻资料』的动作,而读取、存档、大量取代字元、离开
vi 、显示行号 等等的动作则是在此模式中达成的!</li>
</ul>
简单的说,我们可以将这三个模式想成底下的图示来表示之∶<br><br>
<center><img SRC="0310vi/0310vi_1.jpg"
title="vi 三种模式的相互关系"
alt="vi 三种模式的相互关系"><br>
图一、 vi 三种模式的相互关系</center><br>
闲话不多说,我们底下以一个简单的例子来进行说明吧!<br><br>
<hr><a name="vi_ex"></a><img src="../images/penguin-s.gif" alt="小标题的图示" height="23" width="16" align="middle" /><span class=text_h2>简易执行范例</span><br>
<div class=block2>
我们怎么使用 vi 建立一个档名为 test.txt 的资料呢?也是很简单的啦,
整个步骤可以是这样∶<ol>
<li><span class=text_import1>使用 vi 进入一般模式;</span><br>
<table class="term"><tr><td class="term"><pre>
[root@linux ~]# <span class=term_command>vi test.txt</span>
</pre></td></tr></table>
直接输入『 vi 档名』即可进入 vi 了!如下图所示,左下角还会显示这个档案目前的状态!如果是新建档案会显示
[New File],如果是已存在的档案,则会显示目前的档名、行数与字元数,例如∶『"/etc/man.config"
145L, 4614C』<br><br>
<center><img SRC="0310vi/0310vi_2.jpg"
title="利用 vi 开启一个档案"
alt="利用 vi 开启一个档案"><br>
图二、 利用 vi 开启一个档案</center><br>
<li><span class=text_import1>按下 i 进入编辑模式,开始编辑文字;</span><br><br>
在一般模式之中,只要按下 I, o, a 等字元,就可以进入编辑模式了!在编辑模式当中,您可以发现在左下角会出现
ˉINSERT- 的画面,那就是可以输入任意字元的提示棉!这个时候,键盘上除了
[Esc] 这个按键之外,其他的按键都可以视作为一般的输入按钮了,所以您可以进行任何的编辑棉!
( <span class=text_vbird>注∶在 vi 里面, [tab]
这个按钮所得到的结果与空白字元所得到的结果是不一样的,特别强调一下!</span> )<br><br>
<center><img SRC="0310vi/0310vi_3.jpg"
title="进入 vi 的编辑模式"
alt="进入 vi 的编辑模式"><br>
图三、 进入 vi 的编辑模式</center><br>
<li><span class=text_import1>按下 [ESC] 按钮回到一般模式;</span><br><br>
好了,假设我已经按照上面的样式给他编辑完毕了,那么应该要如何退出呢?是的!没错!就是给他按下
[Esc] 这个按钮即可!马上你就会发现画面左下角的 ˉ INSERT ˉ 不见了!<br><br>
<li><span class=text_import1>在一般模式中按下 :wq 储存后离开 vi !</span><br><br>
OK,我们要存档了,存档并离开的指令很简单,输入『:wq』即可存档离开!(注意了,按下
: 该游标就会移动到最底下一行去!)这时你在提示字元后面输入『 ls -l 』即可看到我们刚刚建立的
test.txt 档案啦!整个图示有点像底下这样∶<br><br>
<center><img SRC="0310vi/0310vi_4.jpg"
title="利用 vi 储存档案"
alt="利用 vi 储存档案"><br>
图四、利用 vi 储存档案</center><br></ol>
如此一来,您的档案 test.txt 就已经建立起来棉!很简单吧!需要注意的是,如果您的档案权限不对,例如为
-r--r--r-- 时,那么可能会无法写入,那么可以使用『强制写入』的方式吗?可以!使用『:wq!』
多加一个惊叹号即可!不过,需要特别注意呦!那个是在『您的权限可以改变』的情况下才能成立的!
关于权限的概念,请参考一下 <a href="0210filepermission.php">Linux 的档案权限概念</a> 棉!
</div>
<hr><a name="vi_command"></a><img src="../images/penguin-s.gif" alt="小标题的图示" height="23" width="16" align="middle" /><span class=text_h2>命令列内容说明</span><br>
<div class=block2>
如前所述,所谓的命令列或命令模式,就是在最下面一行没有显示
『<span class=text_import2>--INSERT--</span>』或者『<span class=text_import2>--REPLACE--</span>』
字样的时候。通常在命令列中的指令有下面几种∶(注意,当按下
『:』 时,游标会自动移动到萤幕的最下面一行!)<br><br>
<table width=95% border=1 cellspacing=0 cellpadding=3 bgcolor=lightyellow style="font-family:'细明体'">
<tr bgcolor=lightblue><td colspan=2><font face="标楷体" size=+1 color=darkblue>一般模式∶
移动游标的方法</font></td></tr>
<tr><td width=180><center><font face="细明体">h 或 向左方向键(←)</font></center></td>
<td><font face="细明体">游标向左移动一个字元</font></td></tr>
<tr><td><center><font face="细明体">j 或 向下方向键(↓)</font></center></td>
<td><font face="细明体">游标向下移动一个字元</font></td></tr>
<tr><td><center><font face="细明体">k 或 向上方向键(↑)</font></center></td>
<td><font face="细明体">游标向上移动一个字元</font></td></tr>
<tr><td><center><font face="细明体">l 或 向右方向键(→)</font></center></td>
<td><font face="细明体">游标向右移动一个字元</font></td></tr>
<tr><td colspan=2>如果想要进行多次移动的话,例如向下移动 30 行,可以使用 "30j" 或 "30↓" 的组合按键,
亦即加上想要进行的次数(数字)后,按下动作即可!</td></tr>
<tr><td><center><font face="细明体">[Ctrl] + [f]</font></center></td>
<td><font face="细明体">萤幕『向下』移动一页,相当于 [Page Down]按键</font>
(<span class=text_import2>常用</span>)</td></tr>
<tr><td><center><font face="细明体">[Ctrl] + [b]</font></center></td>
<td><font face="细明体">萤幕『向上』移动一页,相当于 [Page Up] 按键</font>
(<span class=text_import2>常用</span>)</td></tr>
<tr><td><center><font face="细明体">[Ctrl] + [d]</font></center></td>
<td><font face="细明体">萤幕『向下』移动半页</font></td></tr>
<tr><td><center><font face="细明体">[Ctrl] + [u]</font></center></td>
<td><font face="细明体">萤幕『向上』移动半页</font></td></tr>
<tr><td><center><font face="细明体">+</font></center></td>
<td><font face="细明体">游标移动到非空白字元的下一列</font></td></tr>
<tr><td><center><font face="细明体">-</font></center></td>
<td><font face="细明体">游标移动到非空白字元的上一列</font></td></tr>
<tr><td><center><font face="细明体">n<space></font></center></td>
<td><font face="细明体">那个 n 表示『数字』,例如 20 。按下数字后再按空白键,游标会向右移动这一行的 n
个字元。例如 20<space> 则游标会向后面移动 20 个字元距离。</font></td></tr>
<tr><td><center><font face="细明体">0</font></center></td>
<td><font face="细明体">这是数字『 0 』∶移动到这一行的最前面字元处</font>
(<span class=text_import2>常用</span>)</td></tr>
<tr><td><center><font face="细明体">$</font></center></td>
<td><font face="细明体">移动到这一行的最后面字元处</font>(<span class=text_import2>常用</span>)</td></tr>
<tr><td><center><font face="细明体">H</font></center></td>
<td><font face="细明体">游标移动到这个萤幕的最上方那一行</font></td></tr>
<tr><td><center><font face="细明体">M</font></center></td>
<td><font face="细明体">游标移动到这个萤幕的中央那一行</font></td></tr>
<tr><td><center><font face="细明体">L</font></center></td>
<td><font face="细明体">游标移动到这个萤幕的最下方那一行</font></td></tr>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -