vim-复习 -4
# 替换命令
公式::[range]s[ubstitute]/{pattern}/{string}/[flags]
公式中 []
内是可选的,{}
内是必填的
range
: 表示范围;%
表示替换全文;number1,number2
表示替换 number1
行到 number2
行;$
表示替换到文件尾部,可以和 number
配合,比如 number,$
或 $,number
;也可以使用可视化模式选择范围
s[ubstitute]
: 表示替换命令,可以简写为 s
,全称为 substitute
pattern
: 表示被替换的字符,可以输入正则表达式
string
: 表示替换的字符
flags
: 取值有两个:g
表示全局替换,如果不加 g
,默认只替换每行第一个匹配到的字符;c
会弹出对话框,询问是否替换,输入 y
表示替换当前字符,n
表示不替换当前字符,a
表示替换所有,q
表示退出,l
表示替换当前字符并退出。可以多个 flag
一起使用,比如 gc
# 多选操作:gb
# 悬浮显示:gh
# 切换大小写
normal 模式
- gu + 动作(范围): 变为小写字母
- gU + 动作(范围): 变为大写字母
visual 模式
u: 变为小写字母
U: 变为大写字母
~: 可以实现大小写互换
# 注释
- gc: 单行注释
- gC: 多行注释
n + 1 个单行注释:gc + n + j
快速依次单行注释:gc + l,再下一行 + .
visual 模式下,先多选,再 gc
# 窗口管理
# vim
- C-w v: 新建左右窗口(向右拆分窗口)
- C-w s: 新建上下窗口(向下拆分窗口)
- C-w hjkl: 切换窗口(适用于多窗口,也可以切换到左侧边栏,但不能再切换回来)
- C-w w: 循环切换窗口(适用于两个窗口来回切换)
- C-w c: 关闭窗口,只关闭当前文件的窗口
- C-w o: 只保留当前窗口,关闭其他所有窗口,包括左侧边栏
- Shift-方向键:切换窗口(需改键)
# vscode
- cmd-: 新建左右窗口
- ctrl-cmd-: 新建上下窗口(需绑定快捷键,搜索 split editor up,然后绑定)
- cmd-1,2,3...: 切换第几个窗口
- cmd-w: 关闭窗口
- cmd-k w: 关闭一组窗口
- option-cmd-t: 只保留当前窗口,关闭其他所有窗口,不包括左侧边栏
# 删除函数
# 转到括号
%
: 转到括号
# vim-indent-object (opens new window):
将当前缩进级别的代码块视为文本对象,原理就是根据缩进来操作的,只要缩进范围大于等于光标当前行,都会被当成一个文本对象
<operator>ii
: 操作当前缩进级别的代码块<operator>ai
: 操作当前缩进级别的代码块和上面一行<operator>aI
: 操作当前缩进级别的代码块和上下两行
# 删除函数
dap
: 基于段落 text-object; 如果这个函数体内没有空行,函数整体上下都有空行,可以删除,否则不行daI
: 基于 vim-indent-object; 代码缩进正常(经过格式化),需要在函数体内执行,不能在函数头执行;可以改键:ai -> aI; 这个其实不止可以删除函数,if 判断,多行对象/数组...,只要是开头和结尾的缩进小于中间的缩进都可以用这个V$%d
: 基于 %; 必须在函数头执行;V 先选中当前行,$
移动到行尾,光标在 {,% 匹配结束的 },d 删除;当函数的参数太多导致换行后,$
移动到行尾时,光标是在 (,% 匹配到是 ),我们还需要执行$%
来匹配结束的 }; 可以改键:<leader> d f
->V$%d
编辑 (opens new window)
上次更新: 5/27/2023, 1:02:05 PM