vim 编辑器
vi 与 vim 的关系:
- 可以将 vim 视为 vi 的进阶版本;
- 所有的 Unix Like 系统都会内置 vi 文书编辑器,其他的文书编辑器则不一定会存在;
- 很多个别软件的编辑接口都会主动调用 vi;
- vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。
vi 的使用
vi 共有三种模式:
- 一般指令模式 (command mode):以vi打开文件时直接进入一般指令模式。
- 编辑模式 (insert mode):按下“i, I, o, O, a, A, r, R”等任一字母会从一般指令模式进入编辑模式,按“Esc”键退出编辑模式。
- 命令行命令模式 (command-line mode):输入“ : / ? ”三个中的任一字符会从一般模式进入命令行模式。
一般指令模式可用的按键说明:
移动光标的方法 | 作用 |
---|---|
h 或 向左方向键(←) | 光标向左移动一个字符 |
j 或 向下方向键(↓) | 光标向下移动一个字符 |
k 或 向上方向键(↑) | 光标向上移动一个字符 |
l 或 向右方向键(→) | 光标向右移动一个字符 |
使用 "30j" 或 "30↓" 的数字组合按键 | 移动固定数字个字符 |
[Ctrl] + [f] | 屏幕“向下”移动一页,相当于 [Page Down]按键 |
[Ctrl] + [b] | 屏幕“向上”移动一页,相当于 [Page Up] 按键 |
0 或功能键[Home] | 这是数字“ 0 ”:移动到这一列的最前面字符处 |
$ 或功能键[End] | 移动到这一列的最后面字符处 |
G | 移动到这个文件的最后一列 |
nG | n 为数字。移动到这个文件的第 n 列 |
gg | 移动到这个文件的第一列,相当于 1G |
n |
n 为数字。光标向下移动 n 列 |
/word | 向光标之下寻找一个名称为 word 的字串 |
?word | 向光标之上寻找一个字串名称为 word 的字串 |
n | 这个 n 是英文按键。 重复前一个搜寻的动作 |
N | 这个 N 是英文按键。与 n 刚好相反,为“反向”进行前一个搜寻动作。 |
:n1,n2s/word1/word2/g | n1 与 n2 为数字。在第 n1 与 n2 列之间寻找word1 这个字串,并将该字串取代为 word2 |
:1,$s/word1/word2/g | 从第一列到最后一列寻找 word1 字串,并将该字串取代为 word2 |
:1,$s/word1/word2/gc | 从第一列到最后一列寻找 word1 字串,并将该字串取代为 word2 !且在取代前显示提示字符给使用者确认 (confirm) 是否需要取代! |
x, X | 在一列字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 亦即是倒退键) |
dd | 删除光标所在的那一整列 |
ndd | n 为数字。删除光标所在的向下 n 列。如20dd |
yy | 复制光标所在的那一列 |
nyy | n 为数字。复制光标所在的向下 n 列 |
p, P | p 为将已复制的数据在光标下一列贴上,P 则为贴在光标上一列 |
u | 复原前一个动作 |
[Ctrl]+r | 重做上一个动作。(撤销) |
. | 这就是小数点!意思是重复前一个动作的意思。 |
一般指令模式切换到编辑模式的可用的按键说明:
进入插入或取代的编辑模式 | 作用 |
---|---|
i, I | 进入插入模式(Insert mode):i为“从目前光标所在处插入”, I为“在目前所在列的第一个非空白字符处开始插入” |
a, A | 进入插入模式(Insert mode):a为“从目前光标所在的下一个字符处开始插入”, A 为“从光标所在列的最后一个字符处开始插入”。 |
o, O | 进入插入模式(Insert mode):这是英文字母 o 的大小写。o为“在目前光标所在的下一列处插入新的一列”; O 为在目前光标所在处的上一列插入新的一列! |
r, R | 进入取代模式(Replacemode):r 只会取代光标所在的那一个字符一次;R会一直取代光标所在的文字,直到按下 ESC 为止; |
[Esc] | 退出编辑模式,回到一般指令模式中 |
一般指令模式切换到命令行界面的可用按键说明:
命令行界面的储存、离开等指令 | 作用 |
---|---|
:w | 将编辑的数据写入硬盘文件中 |
:q | 离开 vi |
:q! | 若曾修改过文件,又不想储存,使用 ! 为强制离开不储存内容。 |
:wq | 储存后离开,若为 :wq! 则为强制储存后离开 |
ZZ | 这是大写的 Z 喔!若文件没有更动,则不储存离开,若文件已经被更动过,则储存后离开! |
:set nu | 显示行号 |
:set nonu | 与 set nu 相反,为取消行号 |
vim 额外功能
区块选择:方便选择特定范围的字符
区块选择的按键意义 | |
---|---|
v | 字符选择,会将光标经过的地方反白选择! |
V | 列选择,会将光标经过的列反白选择! |
[Ctrl]+v | 区块选择,可以用长方形的方式选择数据 |
y | 将反白的地方复制起来 |
d | 将反白的地方删除掉 |
p | 将刚刚复制的区块,在光标所在处贴上! |
多文件编辑:vim 后接多个文件,可以同时打开。此时可以同时编辑多个文件,方便文件间内容复制或查看。
多文件编辑的按键 | |
---|---|
:n | 编辑下一个文件 |
:N | 编辑上一个文件 |
:files | 列出目前这个 vim 的打开的所有文件 |
多窗口:在一个屏幕里打开多个vim窗口,方便相互对照查阅。
多窗口情况下的按键功能 | |
---|---|
:sp [filename] | 打开一个新窗口,如果有加 filename, 表示在新窗口打开一个新文件,否则表示两个窗口为同一个文件内容(同步显示)。 |
[ctrl]+w+ j 或 [ctrl]+w+↓ | 光标移动到下方的窗口 |
[ctrl]+w+ k 或 [ctrl]+w+↑ | 光标移动到上面的窗口 |
[ctrl]+w+q | 结束窗口 |
vim 暂存救援
在使用vim编辑文件时,系统会自动创建 .swp 暂存文件,实时保存修改内容。若编辑未及时保存出现意外中断,下次打开文件会有警告信息,此时可利用.swp文件恢复未及时保存的内容。
文件暂存盘警告信息界面中,会有6种选项:
- [O]pen Read-Only:打开此文件成为只读文件。有时查看的文件恰好有其他人在编辑,此时可以使用此选项仅查看内容。
- (E)dit anyway:用正常的方式打开你要编辑的那个文件, 并不会载入暂存盘的内容。此选项会造成多人同时修改一个文件,慎用。
- (R)ecover:载入暂存盘的内容,用在救回之前未储存的内容。但编辑保存后,仍需要手动删除.swp文件。
- (D)elete it:删除暂存盘并打开文件。若确定暂存盘无用,可以使用此选项。
- (Q)uit:按下 q 就离开 vim。
- (A)bort:忽略这个编辑行为,类似Quit。
vim 环境设置
~/.vimrc 文件里会有vim相关的环境设置,可以个性化设置。
nano 编辑器
nano 是简单的文书编辑器,有时会在Linux中使用到。nano 后接文件名,直接进入编辑模式。
文件底部一些常用操作,^ 表示Ctrl键,M 表示Alt键。
- [ctrl]-X :离开naon软件,若有修改过文件会提示是否需要储存
- [ctrl]-O :存储更改的内容
- [ctrl]-W :搜寻字串
- [ctrl]-C :说明目前光标所在处的行数与列数等信息
注意:保存文件时,切勿修改 Format
如 Mac Format等,会导致文件报错。