vim

1.normal

移动光标

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
h(hang)# 左移一位
j(jump)# 下移一位
k(kick)# 上移一位
l(leap)# 右移一位
nh、nj、nk、nl # 左、下、上、右移动n位
0 # 移动到行头
^ # 移动到行头
$ # 移动到行尾
G # 移动光标到末尾
nG # 移动到第n行
gg # 快速移动光标到首行
w # 移动到下一个单词头
e # 移动到下一个单词尾
b # 移动到上一个单词头
f+字符 # 移动到当前行下一个匹配成功的单个字符

删除内容

1
2
3
4
5
6
7
8
9
10
x # 剪切当前光标字符
dd # 剪切当前行
ndd # 剪切下n行(n行包括当前行)
d0 # 剪切当前光标到行首部分
d^ # 剪切当前光标到行首部分
d$ # 剪切当前光标到行尾部分
D # 剪切当前光标到行尾
dw # 剪切到下一个单词头
de # 剪切到下一个单词尾
dG # 快速剪切光标到底部的所有内容

复制内容

1
2
yy # 复制当前行
nyy # 复制n行

粘贴内容

1
2
pp # 粘贴复制或者剪切内容
npp # 粘贴n次

撤销内容

1
2
u # 撤销到上一步操作
ctrl+r # 反撤销

:底行模式

1
2
3
4
5
6
7
8
9
10
11
12
wq # 保存并退出
q! # 强制退出不保存
x # 保存并退出
set nu # 显示行号,全称set number
set nonu # 取消行号
set cursorcolumn # 设置光标列,利于查看列对齐情况
set nocursorcolumn # 取消设置光标列
s/// # 只替换光标所在行的第一个单词
s///g # 替换光标所在行的单词
%s///g # 替换文件中所有的单词
%d # 清除全文
reg a # 查看录制的宏a内容

宏操作

1
2
3
4
5
6
7
8
9
# 宏录制
按q加a-z或0-9进行宏定义 # 例如 qa,定义宏为a
执行你要进行重复的一系列操作
q # 记录操作完毕
qa # 关闭所有分配文件

# 宏使用
@a # 执行宏a
n@a # 执行n次宏a

2.insert

进入插入模式的方法

1
2
3
4
5
6
7
8
9
10
o # 新建光标所在的下一行进入插入模式
O # 新建光标所在的上一行进入插入模式
C # 删除光标所在行进入插入模式
c # c+hjkl一般不用
s # 删除当前光标这一个字符,并进入输入模式
S # 删除当前一整行,并进入输入模式
a # 当前光标后追加进入插入模式
A # 当前光标行尾进入插入模式
i # 当前光标进入插入模式
I # 当前光标所在行行首插入

退出编辑模式

1
ESC

3.visual

进入可视化模式

1
2
3
v # 进入字符可视化模式
V # 进入字符可视行模式
Ctrl+v # 进入字符可视块模式

可视化移动

1
同normal移动

可视化基本操作

1
2
3
4
5
d # 删除可视化部分
y # 复制可视化部分
p # 把要粘贴的内容替换可视化部分
u # 把可视化部分字母全变成小写
U # 把可视化部分字母全变成大写

添加多行内容

1
2
3
4
5
Ctrl+v #进入可视块模式
可视化块移动到要进行多行操作的列,单列
shift+i进行插入
输入内容
ESC退出

添加多行内容到行尾

1
2
3
4
5
6
Ctrl+v #进入可视块模式
可视化块移动到要进行多行操作的列,单列
$移动光标到行尾
shift+a进行插入
输入内容
ESC退出

vim配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
vim .vimrc

set cursorcolumn
autocmd FileType yaml setlocal ai ts sw et
inoremap jk <ESC> # jk 作为esc退出
set relativenumber
set cursorline


# (vertical split) # 左右分屏
vs test.txt
split test.txt # 上下分屏

let mapleader=" " # 设置前缀键为空格,为快捷做准备
nnoremap <leader>h :wincmd h<CR> # <CR>是按enter键的意思,切屏到左
nnoremap <leader>j :wincmd j<CR>
nnoremap <leader>k :wincmd k<CR>
nnoremap <leader>l :wincmd l<CR>
nnoremap <leader>e :Ex<CR> # 打开文件列表
nnoremap <leader>He :Hex<CR> # 上边打开文件列表
nnoremap <leader>Ve :Vex<CR> # 左边打开文件列表
- 返回上一级
% 新建文件
d 新建文件夹
R 重命名
D 删除
j/k 上下移动