Vim

2019-06-10-VIM

Vim

移动光标:

1
2
3
4
h 左  ✔      
j 下 ✔
k 上 ✔ #9k 向上移动9行
l 右 ✔

命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
w 跳至下一个单词词首           # 3w  ✔
b 跳至当前或前一个单词词首 # backword ✔
e 跳至当前或后一个单词词首 # end of word ✔
ge: 移动到前一个word的最后一个字符上
W 空白为分界的WORDs为单位进行移动
gg 移动到文件头 ✔
G 移动到文件尾 ✔

0 移动到当前行的第一个字符上 ✔
^ 移动到当前行的第一个非空白字符上
$ 移动到当前行行尾 # 2$ ✔
:start_pos,end_pos 指定到第n行 ✔

fx 单字符搜索命令 # 3fh ✔

删除

1
2
3
4
5
6
7
x	#3x 删除3个字符 ✔
dd
:n1,n2d
dw
y yy 复制
p 粘贴到光标后(小写)
P 粘贴到光标前(大写)

撤销和重做:

1
2
3
4
u 撤销最后一次删除  ✔   
U 一次撤消对一行的全部操
Ctrl+r 反转撤销
. 重复前一次编辑操作

命令模式

1
2
3
4
5
6
#当前页跳转
H #页首
M #页中
L #页底
ZZ #保存退出
ZQ #不保存退出

扩展命令模式

1
2
3
4
5
6
:q	:q!
:wq :x
r filename #读文件到当前文件
w filename #当前文件写入另一个文件
!command #执行命令
r!command #读入命令的输出

查找/替换:

1
2
3
4
5
6
7
8
9
10
:/string	#搜索一个字符串(向尾部)   
:?string #(向头部)
n #与命令同方向
N #与命令反方向
:1,10s/old/new/g
:%s@^[^#]@#&@ #注释
:%s/old/new/g #% 全文, g 全局
#查找替换中的分隔符/可替换为其他字符
:s/xyz/&er/g
r #替换光标所在处的字符

多窗口操作

1
2
3
4
5
6
7
8
9
10
11
12
多文件分割:
vim -o|-O FILE1 FILE2...
-o #水平分割
-O #垂直分割
:next :prev :last :first
Ctrl+w, Arrow #在窗口间切换
单文件窗口切换:
Ctrl+w,s split #水平分割
Ctrl+w,v vertical #垂直分割
Ctrl+w,q #取消相邻窗口
Ctrl+w,o #取消全部窗口
:wqall #退出

VIM配置文件.vimrc

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
	全局: /etc/vimrc
局部: ~/.vimrc
set nu #显示行号
set ic #忽略字符的大小写
set ai #自动缩进,autoindent
set si #智能缩进,smartindent
set hlsearch #高亮搜索显示
set syntax on #语法高亮
set list #显示Tab和换行符
set fileformat=dos #启用win文件格式
set fileformat=unix
set ff=dos|unix
set textwidth=65 #设置文本宽度
set wrapmargin=15
set cursorline #设置光标所在行的标识线
set paste #复制保留格式

:help command
vimtutor

Vim
https://anyu967.github.io/posts/104c461b.html
作者
anyu967
发布于
2019年6月10日
许可协议