Cheet Sheet
一、命令模式
1.1 光标
G 文件最后一行 num+G 第n行 gg 文件第一行
L 本页最后一行 M 本页中部 H 本页第一行
num+$ end n行尾 零 home 行首
ctrl+b pageup ctrl+f pagedown
w 下词开头 e 下词结尾 b 上词结尾
1.2 插入
I - 从行首开始插入字符 A - 从行尾开始插入字符
o - 下一行开始插入字符 O - 上一行开始插入字符
1.3 分屏
Ctrl+w v ( : vs)+ 新文件名 垂直分割窗口。先同时按ctrl和w,再按v
Ctrl+w s ( : sv)+ 新文件名 水平分割窗口
Ctrl+w w (方向键) 在窗口间切换
Ctrl+w q (c) 关闭窗口
Ctrl+w H(JKL) 调整当前窗口的位置
Ctrl+w +( < >) 调整当前窗口的大小
1.4 复制粘贴
num+yy 复制n行
p 光标后粘贴
yw 复制单词
y$ 复制到行末
1.5 删除剪切
num+dd 剪切n行
dw 剪切单词
d$(D) 剪切到行末
x 剪切当前字符
s 删除当前字符
r 替换当前字符
cc(S) 清空当前行
dG 清除所有内容
1.6 可视化
v 进入可视化
V 行可视化
Ctrl+V 块可视化
进入可视化模式后
ab 光标所在 ( ) 的区域(含括号)
aB 光标所在 { } 包裹的区域(含花括号)
ib 光标所在 ( ) 包裹的区域(不含括号)
iB 光标所在 { } 包裹的区域(不含花括号)
> 选中区域向右缩进
< 选中区域向左缩进
y 选中区域复制
d 选中区域剪切
1.7 查找替换
/pattern 查找pattern
?pattern 向上查找pattern
\vpattern pattern 中的非字母数字字符被视为正则表达式特殊字符 (不需转义字符)
n 查找下一个
N 查找上一个
:%s/old/new/g 替换全部
:%s/old/new/gc (逐个)替换
1.8 标记
ma 设置当前位置为标记 a
`a 跳转到标记 a 的位置
1.9 退出
:w !sudo tee % 使用 sudo 保存当前文件
w: 表示保存文件 !: 表示执行外部命令 tee: linux命令,这个有点复杂,可以查看linux命令帮助
%: 在执行外部命令时,%会扩展成当前文件名;这个%区别于替换时的%,替换时%的意义是代表整个文件,而不是文件名
上述方式非常完美的解决了不能保存只读文件的问题,但毕竟命令还是有些长,为了避免每次输入一长串的命令,可以将它映射为一个简单的命令加到 .vimrc 中
cmap w!! w !sudo tee > /dev/null %
二、快捷使用
2.1 增加注释
Ctrl+v 块可视化
选择区域
大写I 行首开始插入
// 添加注释
esc esc 两次esc
2.2 取消注释
Ctrl + v 进入块选择模式
选中 //
d 删除注释
ESC 保存退出
2.3 缩进
Ctrl+v
选中区域
shift+>