1.保存\退出
:w | 保存 |
:q | 退出 |
:wq或者ZZ | 保存退出 |
:q! | 强制退出 |
2.插入、退出命令
a | 在光标所在位置之后插入文本 |
A | 在光标所在行的行末之后插入文本 |
i | 在光标所在位置插入文本 |
I | 在光标所在行的行末之前插入文本 |
o | 在光标下方打开新的一行并将光标置于新开的行首,进入插入模式 |
O | 在光标上方打开新的一行并将光标置于新开的行首,进入插入模式 |
R | 进入替换模式 |
ESC | 退出编辑模式 |
3.光标移动
常用:
任何模式下使用方向键移动
gg | 跳到最初一行 |
G | 跳到最后一行 |
ngg | 跳到n行 |
ctrl+f | 往后翻一页 |
ctrl+b | 往前翻一页 |
小技巧: | 将数字键盘锁了 |
---|---|
1 | 光标移动本行尾部 |
7 | 光标移动本行开头 |
3 | 往后翻一页 |
9 | 往前翻一页 |
2、4、6、8 | 上下左右 |
0 | 切换替换模式 |
/***
本人不常用:
w — 下一个单词首字母
b — 前一个单词首字母
e — 后一个单词尾字母
nG — n行
:n — n行
ctrl+d ------ 往后半页
ctrl+u ------ 往前半页
^ — 移动到本行第一个非空字符
$ — 移动到本行最后一个字符
***/
4.文本操作
nyy | 复制光标开始之下n行 |
ndd | 剪切光标开始之下n行 |
p | 粘贴(复制粘贴之后都可以用p) |
u | 撤销上一次操作 |
ctrl+r | 取消撤销 |
复制使用y相关命令:
ynw ------------- 复制光标开始到第n个单词末尾
yG -------------- 复制光标所在行开始到文件末尾
ygg ------------- 复制光标所在行开始到文件开头
y$ -------------- 复制光标开始到本行末尾
y^ -------------- 复制光标之前到本行开头
剪切使用d相关命令
dnw ------------- 剪切光标开始到第n个单词末尾
dG -------------- 剪切光标所在行开始到文件末尾
dgg ------------- 剪切光标所在行开始到文件开头
d$ -------------- 剪切光标开始到本行末尾
d^ -------------- 剪切光标之前到本行开头
x --------------- 剪切光标所在字符
r --------------- 替换光标所在字符
5.底行命令
:r | 读取其他文件内容到本文件 |
:e | 打开其他文件 |
:vs | 左右分屏 |
:sp | 上下分频 |
:ns/old/new | 在n行内替换头一个字符串 old 为新的字符串 new |
:set xxx | 设置xxx选项 |
?或者/ | ?是向前搜索,/是向后搜索 |
ctrl+~ | 大小写切换 |
>>或者<< | 向左或者右缩进一个tab |
:set 设置
设置显示行号 ----------- set nu
设置自动缩进 ----------- set autoindent
设置C语言风格缩进 ----- set cindent
设置tab键的长度 ------- set tabstop=4
设置缩进长度 ----------- set shiftwidth=4
(以上set命令可以把他们写到主目录下的.vimrc文件中,让每次打开vi后自动生效)
分屏的命令
(使用ctrl + ww可以在多个窗口之间切换)
打开多个文件 --------- vi 文件路径1 路径2 …
:prev --------- 上一个文件
:next --------- 下一个文件(:n)
:first -------- 第一个文件
:last --------- 最后一个文件
搜索替换类底行命令
n ----------- 光标定位到下一个找到的位置
N ----------- 光标定位到上一个找到的位置
/<xxx ------- 在文件中查找以xxx开头的单词
/xxx> ------- 在文件中查找以xxx结尾的单词
/<xxx> ----- 在文件中查找内容为xxx的单词
常用组合:
①替换单词
:%s/旧单词/新单词/g
%代表全文,可以用数字代替区间例如:12,34s/旧单词/新单词/
/g代表一行全部,不加等于首次出现的词
②将文件某些几行写到另一文件中
:123,456 w 目标文件名
③将文件以追加的形式读取到本文件
:r 目标文件