Appearance
Vim 使用记录
INFO
Vim/Vi/Neovim 有 3 中模式:
- Command mode
- Insert mode
- Last line mode
Vim 打开时,进入 Command mode ,此模式下敲击键盘,Vim 会认为输入的是命令,而非字符。
Command mode 下,输入 : ,会切换至 Last line mode 。
下移 1 行
jj下移 10 行
10j10j若某一行太长,在屏幕上显示为好几行时,可按照屏幕行下移
gjgj上移 1 行
kk上移 10 行
10k10k若某一行太长,在屏幕上显示为好几行时,可按照屏幕行上移
gkgk移到行首
00若某一行太长,在屏幕上显示为好几行时,可按照屏幕行移到行首
g0g0移到行尾
$$若某一行太长,在屏幕上显示为好几行时,可按照屏幕行移到行尾
g$g$左移 1 个字符
hh左移 10 个字符
10h10h右移 1 个字符
ll右移 10 个字符
10l10l在光标前插入字符
ii在光标后插入字符
aa在行首插入字符
II在行尾添加字符
AA移除光标所在处的字符
xx移除行尾的空格或 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/dTab 替换为空格
: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