vim

Vim

(1) 帮助

1
:h x

(2) 删除字符

1
2
3
4
5
6
7
8
9
10
11
12
# 删除一个字符
x
# 删除一个字符,并进入 Insert 模式
s
# 删除整行
dd
# 向后删除,但是保留光标下的字符
db
# 向前删除,连同光标下的字符一块删除
dw
# 删除一个单词,即使你位于这个单词的中间,它也能删除掉这个单词
daw

(3) 缩进

1
2
# 将 [当前行 -> 文件末尾的所有行] 统一向右缩进
>G

(4) 移动

1
2
# 移动到这一行末尾
$

(5) 编辑

1
2
3
4
# 在当前光标右侧编辑
a
# 在当前行尾编辑
A

(6) 搜索

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 跳转到这一行中 a 字符出现的下一个地方
fa
# 跳转到这一行中 a 字符出现的上一个地方
Fa
# 跳转到所有搜索到的字符的下一个目标
;
# 跳转到所有搜索到的字符的上一个目标
,
# 全文正则搜索 content
/content
# 如果想要搜索 http://www.uzzf.com/apk/383198.html
/http:\/\/www\.uzzf\.com\/apk\/383198\.html
# 向下匹配
n
# 向上匹配
N

(7) Operator + Motion = Action

(8) 返回正常模式

1
2
Esc
Ctrl - [

(9) Visual Mode

1
2
3
4
5
6
# Enable character-wise Visual mode
v
# Enable line-wise Visual mode
V
# Enable block-wise Visual mode
Ctrl - v

(10) 删除空白行

1
:g/^$/d

:g will execute a command on lines which match a regex. The regex is ‘blank line’ and the command is :d (delete)

(11) 显示 tab 符号

Easiest method is to do :set list, which will show tabs as ^I and end of line as $.

使用 :set nolist 来取消显示

查找文件

1
:find SimpleExecutor.java

多窗口

1
2
3
4
5
6
7
8
9
10
# 关闭当前窗口
<C-w>c
# 仅保留当前窗口
<C-w>o
# 窗口分割为上下两个窗口
<C-w>s
# 窗口分割为左右两个窗口
<C-w>v
# 在所有打开的窗口中切换焦点>
<C-w>w

工作路径

1
2
3
4
5
6
7
8
# 查看当前工作路径
:pwd
# 查看当前文件所在的全路径
<C-g>
# 在工作区的子目录下递归搜索文件 (最好把这句话放在 vimrc 中)
set path=$PWD/**
# 打开当前文件所在的目录
:Ex

上下移动

1
2
3
4
5
6
7
8
# 向下移动半个屏幕
<C-d>
# 向上移动半个屏幕
<C-u>
# 向下一行一行移动
j
# 向上一行一行移动
k

不响应键盘的时候

1
Ctrl - Q

退出

vimrc 文件的注释行

1
"This is a comment in vimrc. It does not have a closing quote

查找并替换

1
2
3
4
5
6
7
8
9
10
11
# 替换整个文件的所有匹配的
:%s/foo/bar/g

# 只是替换当前行的所有匹配的
:s/foo/bar/g

# 询问是否替换,需要确认
:%s/foo/bar/gc

# 5(包括)-12(不包括) 行进行替换
:5,12s/foo/bar/g

借助 tmux 实现分屏

1
2
3
4
5
6
7
8
9
10
# 水平分屏
Ctrl - b "
# 垂直分屏
Ctrl - b %
# 显示窗口号
Ctrl - b q
# 在窗口间切换光标
Ctrl - b ←↑→↓
# 关闭当前窗口
Ctrl - b x

临时显示文件路径

1
Ctrl - G

推荐文章