vim编辑器
文章目录
- 一、vim的基本概念
- 1.vim的理念
- 2.vim的三种模式
- 3.文本对象 (text object)
- 4.动作 (action)
- 5.组合
- 6.视图模式
- 7.最小前缀原则
- 二、vim基本操作
- 1.保存、切换编辑模式
- (1)退出编辑模式 Esc
- (2)保存文件 :w、退出文件 :q
- 2.复制、粘贴、删除、撤销
- (1)复制:yy
- (2)粘贴 p
- (3)删除该行 dd
- (4)撤销与恢复
- 3.删除 (详细版)
- 4.查找、替换
- (1)查找
- (2)替换
- (3)查找与替换 (详细版)
- 5.行号相关
- (1)显示行号
- (2)取消显示行号
- (3)默认显示行号
- (4)切换到第170行:`:170`
- 6.光标移动(motion)
- 7.缩进
- 8.批量注释
- 9.常用命令
- 四、其他
- 1.僵尸模式
- 2.窗口与分屏
- 3.其他
一、vim的基本概念
1.vim的理念
①组合
②简单、快捷
vim被称为“编辑器之神”,双手不需要离开键盘
2.vim的三种模式
vim是多模式编辑器
①普通模式/命令模式 (NORMAL):查看代码,最常待的模式
②编辑模式/插入模式 (INSERT):编辑文本
③视图模式 (VISUAL / V-BLOCK):v 行选,crtl + v 列选
NORMAL模式命令
①短命令:a,i,A,I,o,O,v, crtl+v
②底部命令:以:开头,以[Enter]结尾, :wq
③其他模式按[Esc]返回NORMAL模式
3.文本对象 (text object)
删除双引号内:ci"“,ca”"
ap (paragraph):整段,以空行为分割
①复制整段:yap
②删除整段:dap
、cip
a (all):包括边界
i (inside):不包括边界
4.动作 (action)
d(delete):删除、剪切
y(yank) 复制
c(change) 删除并进入编辑模式
gcc:注释/取消注释
vim中,删除就是剪切。删除内容会被保存到寄存器,可以通过p粘贴回来。
5.组合
(1)action + motion
dw、d$、d0
cgg
:光标删除到文首,并进入插入模式
cw
:删除后面的单词,并进入插入模式
(2)n命令:某个命令做n次
(3)action + text object
6.视图模式
选择范围,为了后面复制或删除
①批量注释:ctrl + v ,选择范围,按gc
②全段注释(注意上下有空行):gcap
7.最小前缀原则
最小前缀原则:唯一识别,只写部分前缀即可。或者别名。
:w 就是 :write的缩写,保存(内存写回磁盘)。也可写:wri
:q 就是 :q的缩写,:q!是强制退出
:wq 是 保存并退出
二、vim基本操作
1.保存、切换编辑模式
(1)退出编辑模式 Esc
返回normal模式:Esc
(2)保存文件 :w、退出文件 :q
:w
:保存文件
:q
:正常退出vim编辑器。如果修改,会询问是否要保存文件,yes/no
:wq
:保存并退出
:q!
:强制退出,不保存
vim编辑器里
:q 是退出 (quit)
:w 是保存 (write)
:wq 是保存退出
:q! 是不保存,强制退出
2.复制、粘贴、删除、撤销
(1)复制:yy
复制:yy
复制n行 nyy
复制从光标位置到第n行 ynG
(2)粘贴 p
p:向后粘贴
P:向前粘贴
(3)删除该行 dd
(4)撤销与恢复
u (undo):撤销
[crtl] + r (recovery):恢复
多个历史版本,两个栈实现前进后退
3.删除 (详细版)
删除就是剪切
命令 | 功能 |
---|---|
dd | 删除一行 |
dw | 删除光标后面一个单词 |
di( | 删除()内的内容 |
di{ | 删除{}里的内容,如整个函数的内容 |
d$ | 删除到行尾 |
d^ | 从光标删除到本行的第一个非空白字符 |
d0 | 删除到行首 |
dnG | 从光标所在行删除到第n行 |
:m,nd | 删除m到n行 |
dap | 删除全段 (剪切) |
cip | 删除全段,并进入编辑模式 |
4.查找、替换
(1)查找
/关键词
回车
n
查找下一个,N
查找上一个
(2)替换
替换全文 :%s/原内容/替换内容/g
(3)查找与替换 (详细版)
1.查找
2.替换
全文替换:
:%s/旧文本/新文本/g
5.行号相关
(1)显示行号
:set nu
(2)取消显示行号
:set nonu
(3)默认显示行号
vim ~/.vimrc #如果文件不存在,可以直接创建
内容输入:
set number
如此,就不用每次都 :set nu 了
(4)切换到第170行::170
6.光标移动(motion)
命令 | 含义 |
---|---|
0 | 跳到行首 |
$ | 行尾 |
^ | 本行第一个非空白字符 |
gg | 文首 |
G | 文末 |
j | 下 |
k | 上 |
h | 左 |
l | 右 |
i | 在光标前面插入 |
I | 在行首插入 |
a | 在光标后面插入 |
A | 在行尾插入 |
o | 下面另起一行,在行首插入 |
O | 上面另起一行,在行首插入 |
[n]- | 上移n行 |
[n]+ | 下移n行 |
[n]G | 移动到第n行 |
:n | 移动到第n行 |
w | 下一个单词的词首 |
W | 下一个词的词首,以空白字符分割 |
b | 上一个单词的词首 |
B | 上一个词的词首,以空白字符分割 |
t | 往后查找,光标置于该字符的前一个字符 |
T | 往上查找,光标置于该字符的后一个字符 |
f | 向后查找,光标置于该字符 |
F | 向前查找,光标置于该字符 |
x | 删除光标所处的字符 |
X | 删除光标前一个字符 |
r | 替换一个字符 |
7.缩进
向左缩进:shift + < 或 shift + < <
向右缩进:shift + > 或 shift + > >
8.批量注释
1.在10-20行添加 // 注释
:10,20s#^#//#g
2.在10-20行删除 // 注释
:10,20s#^//##g
3.在10-20行添加 # 注释
:10,20s/^/#/g
4.在10-20行删除 # 注释
:10,20s/#//g
9.常用命令
命令 | 功能 |
---|---|
shift + % | 文本对象内跳转,{ 跳到 } |
shift + k 2 + shift + k 3 + shift + k | 查看光标对应的man手册 查看系统调用 查看库函数 |
光标所在单词shift * 效果等同 /单词 | 查找单词 |
:noh | 取消高亮 |
y目标行号G | 从当前行复制到目标行 |
d目标行号G | 从当前行删除到目标行 |
gg = G | 全文对齐 |
gcap | 注释全段 |
zf | 创建折叠 (先v选中) |
:m,n fold | 创建折叠 |
zo | 展开折叠 |
zc | 关闭折叠的代码块 |
四、其他
1.僵尸模式
crtl + s :进入僵尸模式
crtl + q :退出僵尸模式
2.窗口与分屏
1.XShell切换窗口
①shift + Tab:下一个窗口
②crtl + Tab:上一个窗口
2.vim多窗口操作技巧
①:e 文件名(带路径) 若文件存在就打开,不存在就创建
②:bd 关闭当前窗口
③:bp 打开上一个窗口 (crtl p)
④:bn 打开下一个窗口 (crtl n)
一个会话里,多个vim标签
①启用多标签::e 文件名
②切换标签:crtl + n\p
③关闭标签::bd
3.多窗口 / 分屏
:sp:水平分屏
:vsp:垂直分屏
:q 退出当前窗口
:only 除了当前窗口,退出其他窗口
:w 保存
3.其他
1.书写函数时,写括号之前,crtl + n
,crtl + p
,可选提示的参数
2.配置vim
①配置文件:.vimrc
(是一个脚本,rc是running command)
②安装vimplus
③再单独装ycm (you complete me)
rm -rf ~/.vim/plugged/YouCompleteMe
sudo apt install vim-youcompleteme
vim-addons install youcompleteme