vim编辑器
vim作为linux不可缺少的编辑器,是高效工作的利器,下面简单记录vim的使用。
一、三种模式
vim共有三种模式:一般指令模式、编辑模式和命令行命令模式。
编辑模式可以对文档进行编辑;命令行命令模式下,通过输入“: / ?”三个中的任何一个按钮,可以将光标移动到最下面一行,从而执行读取、存盘、查找、替换、离开vim和更改vim设置属性(是否显示行号、设置tab键的动作等属性)等的动作;除了这些模式外就是一般指令模式,在一般指令模式下,可以移动光标,并执行替换、删除、复制等工作。
vim的三种模式转换关系如下:
当进入vim时,默认为一般指令模式,在此模式下可以转换为编辑模式和命令行命令模式,但编辑模式和命令行命令模式不能直接相互转换,只能转换到一般指令模式,才可以向其他两个模式转换。
二、按键操作说明
一般指令模式操作说明如下表
按键动作 | 效果说明 |
h或向左方向键 | 光标向左移动一个字符 |
j或向右方向键 | 光标向右移动一个字符 |
k或向上方向键 | 光标向上移动一个字符 |
l或享下方向键 | 光标向下移动一个字符 |
ctrl + f | 屏幕向下移动一页 |
ctrl + b | 屏幕向上移动一页 |
ctrl + d | 屏幕向下移动半页 |
ctrl + u | 屏幕向上移动半页 |
+ | 光标移动到非空白字符的下一列 |
- | 光标移动到非空白字符的上一列 |
n+[space] | 光标向同行的后面移动n个字符 |
0(数字) | 移动到这一行最前面的字符处 |
$ | 移动到这一行最后面的字符处 |
H | 光标移动到这个屏幕最上方那一行的第一个字符 |
M | 光标移动到这个屏幕中间那一行的第一个字符 |
L | 光标移动到这个屏幕最下方那一列的第一个字符 |
G | 移动到此文件的最后一列 |
gg或1G | 移动到此文件的第一列 |
nG | 移动到此文件的第n列 |
n + [enter] | 向下移动n列 |
/word | 向下寻找为word的字符串 |
?word | 向上寻找word字符串 |
n | 重复前一个寻找动作,及执行next |
N | 反向执行前一个寻找动作 |
:n1,n2s/word/word2/g | 在n1和n2行之间寻找word字符串,并用word2替换word |
:1,$s/word/word2/g | 从第一行到最后一行寻找word字符串,并将该字串替换为word2 |
:1,$s/word/word2/gc | 从第一行到最后一行寻找word字符串,并将该字串替换为word2,且在 取代前显示提示使用者是否需要取代 |
x | 向后删除一个字符,相当于del按键 |
X | 向前删除一个字符,相当于backspace按键 |
nx | 连续向后删除n个字符 |
dd | 删除光标所在的那一行 |
ndd | 删除光标所在的向下n行 |
d1G | 删除光标所在行到第一行的所有数据 |
dG | 删除光标所在行到最后一行的所有数据 |
d$ | 删除光标所在处到该行的最后一个字符 |
d0 | 删除光标所在处到该行第一个字符 |
yy | 复制光标所在行 |
nyy | 复制光标所在的向下n行 |
y1G | 复制光标所在行到第一行的数据 |
yG | 复制光标所在行到最后一行的数据 |
y0 | 复制光标所在处到第一个字符的所有数据 |
y$ | 复制光标所在处到该行最后一个字符的所有数据 |
p | 粘贴数据在光标的下一列 |
P | 粘贴数据在光标的上一列 |
J | 将光标所在行与下一行数据合成同一行 |
c | 重复删除多个数据 |
u | 恢复前一个动作,及撤销 |
ctrl + r | 重复上一个动作 |
.(小数点) | 重复上一个动作 |
编辑模式按键动作说明如下表:
i | 在光标所在处插入 |
I | 在光标所在行的第一个非空白处插入 |
O | 在光标所在行的上一行插入 |
o | 在光标所在行的下一行插入 |
a | 在光标所在处的下一个字符处插入 |
A | 在光标所在行的最后一个字符处插入 |
r | 取代光标所在的那一个字符一次 |
R | 一直取代光标所在字符,知道按下ESC按键结束 |
ESC键 | 退出编辑模式,回到一般指令模式 |
命令行命令模式按键如下所示:
:w | 将编辑的数据写入硬盘文件 |
:w! | 若文件属性为只读,强制写入该文件 |
:q | 离开vim |
:q! | 修改过文件,又不想存储,则强行离开 |
:wq | 储存后离开vim |
ZZ | 若文件没有更改,不储存离开;若文件更改,储存后离开 |
:w [filename] | 将编辑数据储存为另一个文件 |
:r [filename] | 在编辑数据中,读入另一个文件的数据 |
:n1,n2 w [filename] | 将n1到n2的内容储存成filename文件 |
:! command | 暂时离开vim到命令行界面执行command的显示结果 |
三、vim中的区块选择
通过快捷键选择vim中的整块数据;按键说明如下:
v | 字符选择,会将光标经过的地方反白选择 |
V | 行选择,将光标经过的行反白选择 |
ctrl + v | 区块选择,用长方形的方式选择数据 |
y | 将反白的地方复制起来 |
d | 将反白的地方删除掉 |
p | 将刚刚复制的区块,在光标所在处贴上 |
四、多文件编辑
可通过vim file1 file2的命令格式打开file1和file2两个文件,此时多文件的编辑操作如下表所示:
:n | 编辑下一个文件 |
:N | 编辑上一个文件 |
:files | 列出目前vim打开的所有文件 |
五、多窗口功能
多窗口的操作按键如下表所示:
:sp [filename] | 打开一个新窗口,如果加filename,表示在新窗口打开一个新文件,否则表示两个窗口为同一个文件内容 |
ctrl+w+j | 光标可移动到下方窗口 |
ctrl+w+k | 光标移动到上方窗口 |
ctrl+w+q | 结束并离开此窗口 |