所有的 Unix Like 系统都会内置 vi 文书编辑器,vim 可以看作 vi 的进阶版本。
vi编辑器的基本使用
基本上 vi 共分为三种模式 这三种模式分别是:
一般指令模式 (command mode):以 vi 打开一个文件就直接进入一般指令模式了。
编辑模式 (insert mode):在一般指令模式中可以进行删除、复制、粘贴等等的动作,但是却无法编辑文件内容的! 要等到你按下“i, I, o, O, a, A, r, R”等任何一个字母之后才会进入编辑模式。
命令行命令模式 (command-line mode):在一般模式当中,输入“ : / ? ”三个中的任何一个按钮,就可以将光标移动到最下面那一列,这就是命令行模式。
三者的关系如下图:
当你使用vi来打开一个文件时,如果文件不存在,则文件会被创建。
命令:/bin/vi test.txt
vi的常用按键如下:
一般模式
常用一般模式下按钮说明:
按键 | 作用 |
---|---|
h 或 向左方向键(←) | 光标向左移动一个字符 |
j 或 向左方向键(↓) | 光标向下移动一个字符 |
k 或 向上方向键(↑) | 光标向上移动一个字符 |
l 或 向右方向键(→) | 光标向右移动一个字符 |
x, X | 在一列字当中,x 为向后删除一个字符 (相当于 [del] 按键),X 为向前删除一个字符 |
dd | 删除光标所在的那一整列 |
yy | 复制光标所在的那一列 |
p, P | p 为将已复制的数据在光标下一列贴上,P 则为贴在光标上一列 |
u | 复原前一个动作 |
[Ctrl]+r | 重做上一个动作 |
. | 小数点!意思是重复前一个动作的意思 |
H | 光标移动到这个屏幕的最上方那一行的第一个字符 |
M | 光标移动到这个屏幕的中央那一行的第一个字符 |
L | 光标移动到这个屏幕的最下方那一行的第一个字符 |
G | 移动到这个文件的最后一行 |
编辑模式
一般指令模式切换到编辑模式
按键 | 作用 |
---|---|
i, I | i 为“从目前光标所在处插入”, I 为“在目前所在行的第一个非空白字符处开始插入”。 |
a, A | a 为“从目前光标所在的下一个字符处开始插入”, A 为“从光标所在行的最后一个字符处开始插入” |
o, O | o 为“在目前光标所在的下一行处插入新的一行”; O为在目前光标所在处的上一行插入新的一行 |
r, R | r 只会取代光标所在的那一个字符一次;R会一直取代光标所在的文字,直到按下 ESC 为止 |
[Esc] | 退出编辑模式,回到一般指令模式中 |
上面这些按键中,在 vi 画面的左下角处会出现“–INSERT–”或“–REPLACE–”的字样。
命令行命令模式
一般指令模式切换到命令行界面的可用按钮说明:
其中w,q指令后可加!进行强制操作,但能否执行得看用户对文件的执行权限。
按键 | 作用 |
---|---|
:w | 将编辑的数据写入硬盘文件中 |
:q | 离开vi |
ZZ | |
:w [filename] | 将编辑的数据储存成另一个文件 |
:r [filename] | 在编辑的数据中,读入另一个文件的数据。亦即将 “filename” 这个文件内容加到光标所在列后面 |
:! command | 暂时离开 vi 到命令行界面下执行 command 的显示结果!例:“:! ls /home” |
:set nu | 显示行号,设置之后,会在每一列的字首显示该列的行号 |
:set nonu | 与 set nu 相反,为取消行号 |
vim编辑器的使用
目前大部分的 distributions 都以 vim 取代 vi 的功能了!如果你使用 vi 后,却看到画面的右下角有显示目前光标所在的行列号码,那么你的 vi 已经被 vim 所取代。
1.多文件编辑功能
我们可以使用 vim 后面同时接好几个文件来同时打开喔!相关的按键有:
多文件编辑的按键 | |
---|---|
:n | 编辑下一个文件 |
:N | 编辑上一个文件 |
:files | 列出目前这个 vim 的打开的所有文件 |
2.多窗口功能
当我有一个文件非常的大,我查阅到后面的数据时,想要“对照”前面的数据。或者我有两个需要对照着看的文件,不想使用前一小节提到的多文件编辑功能,这就可以使用多窗口功能了。
按键 | 作用 |
---|---|
:sp [filename] | 打开一个新窗口,如果有加 filename, 表示在新窗口打开一个新文件,否则表示两个窗口为同一个文件内容(同步显示) |
[ctrl]+w+j [ctrl]+w+↓ | 先按下 [ctrl] 不放, 再按下 w 后放开所有的按键,然后再按下 j (或向下方向键),则光标可移动到下方的窗口 |
[ctrl]+w+k [ctrl]+w+↑ | 同上,不过光标移动到上面的窗口 |
[ctrl]+w+q | :q 结束离开啦!结束下方窗口可以[ctrl]+w+↓ 移动到下方窗口后,按下 :q 即可离开, 也可以按下[ctrl]+w+q |