Appearance
Vim 使用记录
INFO
Vim/Vi/Neovim 有 3 中模式:
- Command mode
- Insert mode
- Last line mode
Vim 打开时,进入 Command mode ,此模式下敲击键盘,Vim 会认为输入的是命令,而非字符。
Command mode 下,输入 :
,会切换至 Last line mode 。
下移 1 行
j
j
下移 10 行
10j
10j
若某一行太长,在屏幕上显示为好几行时,可按照屏幕行下移
gj
gj
上移 1 行
k
k
上移 10 行
10k
10k
若某一行太长,在屏幕上显示为好几行时,可按照屏幕行上移
gk
gk
移到行首
0
0
若某一行太长,在屏幕上显示为好几行时,可按照屏幕行移到行首
g0
g0
移到行尾
$
$
若某一行太长,在屏幕上显示为好几行时,可按照屏幕行移到行尾
g$
g$
左移 1 个字符
h
h
左移 10 个字符
10h
10h
右移 1 个字符
l
l
右移 10 个字符
10l
10l
在光标前插入字符
i
i
在光标后插入字符
a
a
在行首插入字符
I
I
在行尾添加字符
A
A
移除光标所在处的字符
x
x
移除行尾的空格或 tab
:%s/\s\+$//g
:%s/\s\+$//g
移除空行
:g/^$/d
:g/^$/d
移除空行及只有空格的空行
:g/^\s*$/d
:g/^\s*$/d
移除行尾的空格
:%s/\s*$//g
:%s/\s*$//g
移除行尾的空格和 Tab
:%s/\s\+$//g
:%s/\s\+$//g
移除包含指定字符 pattern 的行
:g/pattern/d
:g/pattern/d
移除不包含指定字符 pattern 的行
:g!/pattern/d
:g!/pattern/d
Tab 替换为空格
:set ts=4
:set expandtab
:%retab!
:set ts=4
:set expandtab
:%retab!
空格替换为 Tab
:set ts=4
:set noexpandtab
:%retab!
:set ts=4
:set noexpandtab
:%retab!
单引号替换为双引号
:%s/'\([^']*\)'/"\1"/g
:%s/'\([^']*\)'/"\1"/g
空格替换为换行
:%s/ /\r/g
:%s/ /\r/g
删除空行
:g/^$/d
:g/^$/d
文本行倒序
:g/^/m0
:g/^/m0
设置文件格式为 Unix,我常用于 CRLF 到 LF 的转换
:set fileformat=unix
:set fileformat=unix