++++++++++++++++++++
更新于2019-11-14
vim官方手册, 很多小技巧
++++++++++++++++++++
以下编写于2017年
一般系统都会带有vim与vi的作用功能相同,不同之处是vim对于关键字和参数都会添加颜色标示。
vi有三种模式,命令模式、输入模式、末行模式
一、命令模式:实现控制功能,如:移动光标、复制、粘贴、剪切、删除等等。
二、输入模式:编辑内容。
三、末行模式:保持文本、退出、字符串替换、列出行号等功能。
vi一个不存在的文件之后可以直接编辑文件,但是必须保持。该文件才会保持下来,否则退出之后文件不存在。
一、命令模式
1、光标移到操作:
h、j、k、l | 分别将光标向左、下、上、右移到 |
| k |
|
h |
| l |
| j |
|
num+[h|j|k|l] | 表示向对应的方向移到num个字符/行数 |
num+enter | 表示到num行之后 |
:+num+enter | 表示到第num行 |
H | 将光标定位到当前页面的首行首个字符 |
L | 将光标定位到到期页面的末行首个字符 |
gg | 跳到文本首行首个字母 |
G | 跳到文本末行首个字母 |
0 | 将光标定位到行首 |
E/$ | 将光标定位到行末 |
e | 将光标移到下一个单词尾部 |
b | 将关标移到上一个单词首部 |
w | 将光标移到下一个单词首部 |
B | 将光标移到上一个空格之前 |
W | 将光标移到下一个空格之后 |
ctrl+f | 向下翻页 |
ctrl+b | 向上翻页 |
( | 移到上一个句子行首(句子区分方式:符号+空格|换行) |
) | 移到下一个句子行首(句子区分方式:符号+空格|换行) |
{ | 移到到上一个空白行 |
} | 移动到下一个空白行 |
2、复制选中操作
yy | 复制光标所在行 |
num+yy | 复制光标所在行起的num行 |
p | 在光标所在行后粘贴复制板内容 |
P | 在光标所在行前粘贴复制板内容 |
v | 开启横向选中模式,并以光标所在地为复制开始点。然后结合光标移到操作,选中跟多内容。(再次按将退出选中) |
V | 开启横向选中模式,并复制当前光标所在行。然后结合光标移到操作,选中跟多内容。(再次按将退出行选中,第三次按将退出选中模式) |
ctrl+v | 进入纵向选中,并以光标所在地为复制开始点。然后结合光标移到操作,选中跟多内容。(再次按将退出选中) |
3、删除操作
d+[num]+[h|l] | h代表向前删除num个字符,l代表向后删除num个字符 |
d+[num]+[j|k] | j代表向下删除num行,k代表向上删除num行 |
dd | 删除光标所在行 |
D | 删除光标所在行中光标后的所有字符 |
num+dd | 删除光标起num行 |
x | 删除光标所在字符 |
4、进入输入模式方法:
O | 在光标所在行的前一行输入 |
o | 在光标所在行的后一行输入 |
i | 在光标前位置输入 |
I | 在行首输入 |
a | 在光标后输入 |
A | 在行尾输入 |
s | 删除光标所在字符,然后进入输入 |
S | 删除光标所在行(行保留为空白行),然后输入 |
5、撤销操作:
u | 撤销上一步操作,可以撤销到最初始修改时 |
二、末行模式
:+command | 执行命令 |
/+字符 | 向下查找字符 |
?+字符 | 向上查找字符 |
:q | 退出不保存 |
:q! | 强制退出不保存 |
:wq | 写保存 |
:wq! | 强制写保存 |
:x | 写保存 |
:x! | 强制写保存 |
command举例
:cd dir | 到dir目录去(子shell) |
:sp | 纵向分屏显示 使用ctrl+w 然后加方向键控制移动到相应屏幕 |
:vsp | 横向分屏显示 使用ctrl+w 然后加方向键控制移动到相应屏幕 |
:vsp/sp +filename | 分屏打开filename |
:s/1/2/ | 只将第一个匹配到的1替换为2 |
:s/1/2/g | 把当前行中所有的1都换为2 |
:1,5s/1/2/g | 把1到5行的所有的1都换为2 |
:%s/1/2/g | 把文本中的所有1都换为2 |