Vim 操作备忘

2022/08/15 posted in  快捷键
Tags:  #Vim

跳转

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 %