跳转
ctrl f/b | 上翻/下翻 |
ctrl e/y | 上滚/下滚 |
zt/zz/zb | 当前光标移到顶/中/底 |
' 回到行,` 回到行列
'[ 与 `[ | 上一次修改或复制的第一行或第一个字符 |
'] 与 `] | 上一次修改或复制的最后一行或最后一个字符 |
'< 与 `< | 上一次在可视模式下选取的第一行或第一个字符 |
'> 与 `> | 上一次在可视模式下选取的最后一行或最后一个字符 |
'' 与 `' | 上一次跳转之前的光标位置 |
'" 与 `" | 上一次关闭当前缓冲区时的光标位置 |
'^ 与 `^ | 上一次插入字符后的光标位置 |
'. 与 `. | 上一次修改文本后的光标位置 |
w | 正向移动到下一单词的开头 |
b | 反向移动到当前单词 / 上一单词的开头 |
e | 正向移动到当前单词 / 下一单词的结尾 |
ge | 反向移动到上一单词的结尾 |
替换
:%s/foo/bar/g | 全局 foo 替换为 bar |
:%s/foo/bar/gc | 全局 foo 替换为 bar,需确认 |
标记
m a-z | 当前文件添加标记 |
m A-Z | 全局添加标记 |
`mark | 恢复位置行列 |
'mark | 恢复位置行 |
窗口操作
新建窗口
:sp(lit) | 水平切分窗口 |
:vs(plit) | 垂直切分窗口 |
移动光标
Ctrl + W + h/j/k/l | 切换窗口,Ctrl + w 后可松开 |
移动窗口
Ctrl + w + r | 轮换 |
Ctrl + w + x | 交换 |
Ctrl + w + K | 移动窗口至屏幕顶端,并占用全部宽度 |
Ctrl + w + J | 移动窗口至屏幕底端,并占用全部宽度 |
Ctrl + w + H | 移动窗口至屏幕左端,并占用全部高度 |
Ctrl + w + L | 移动窗口至屏幕右端,并占用全部高度 |
Ctrl + w + T | 移动窗口至新的分页 |
调整窗口大小
Ctrl + W + = | 让所有窗口调整至相同尺寸 |
Ctrl + W + - | 将当前窗口的高度减少一行 |
Ctrl + W + + | 将当前窗口的高度增加一行 |
Ctrl + W + _ | 将当前窗口的高度最大化 |
Ctrl + W + < | 将当前窗口的宽度减少 |
Ctrl + W + > | 将当前窗口的宽度增加 |
Ctrl + W + \ | 将当前窗口的宽度最大化 |
buffer 操作
:e file | 再打开一个 buffer(文件) |
Ctrl + 6 | 两 buffer 间的切换 |
buffer id + Ctrl + 6 | 切换到对应 buffer |
:bn | 下一个 buffer |
:bp | 上一个 buffer |
:bd | 关闭 buffer |
:ls | 列出打开的 buffer,带 id |
:b1~n | 切换至对应 buffer |
bash 开启 vi 模式
set -o vi
保存文件时权限不足
:w !sudo tee %