vim 笔记
VIM 操作
^/$:跳到行首/行尾
diw :删除光标所在的单词
替换
:[scope] s/[befor]/[after]/[flags]
befor: 被替换的文本
after: 要替换成的文本
flags: 标记位 g:替换全部 n:查询 c:确认
scope: 范围 %: 全部 1,10:1到10行
举例:
:1,6 s/self//n 查询1-6行中 self出现的次数
:% s/self/this/g 替换self为this
:% s/\<self\>/this/g 精准替换self为this to_self不会被替换
多文件操作
Buffer(文件缓冲区, 就是vim左下角显示的文件名那一块)
Buffer是指打开的一个文件缓冲区,
窗口是Buffer可视化的分割区域
Tab 可以组织窗口为一个工作区
:ls 列举当前缓冲区,然后使用:b n跳转到第n个缓冲区
快捷: :bpre :bnext :bfirst :blast
:b buffer_num 可以跳转对应id的buffer
:b buffer_name 加上tab补全来跳转
:e [file_name] 在vim命令中使用vim打开其他文件
Window窗口
:sp 水平分割
:vs 竖直分割
<Ctrl w> w:窗口间切换
<Ctrl w> h/j/k/l : 窗口 左下上右
Txet文本对象
i:inner
a:around
viw: 选中单词
vaw: 选中单词和周围的空格
举例: 删除3个单词 :3 daw ciw: 删除单词并且进入插入模式
选中双引号中的内容: vi" 选中双引号中的内容,包括双引号 va"
插入模式粘贴代码缩进混乱
:set paste
然后复制
:set nopaste
寄存器 normal模式下
"ayiw : 复制一个单词到寄存器a中。
"bdd. : 删除当前行到寄存器b中。
reg a : 查看a寄存器中的内容。
"ap : 粘贴a寄存器中的内容。
"bp :粘贴b寄存器中的内容。
"0 : 复制专用寄存器, 使用y复制的文本也会被拷贝到0寄存器。
"+. : 系统剪切板 复制的内容也可以区别的地方粘贴了。 比如V选择两行, 然后 "+ 就可以复制到系统剪切板。
"%. : 当前文件名
". : 上次插入的文本
宏
使用q来录制,同时也是q结束录制。
使用q[register]选择要保存的寄存器, 把录制的命令保存其中。
@[register] 回放寄存器中保存的一系列命令。
举例 给文本句子加上双引号
1. 先给一行加上双引号,然后再回放到其他所有行。
2. 先使用q开始录制, 给一行加上双引号, 之后使用q退出。
3. 在剩下的所有行中进行回访录制的宏。
补全 常用的
ctrl = C
Cn Cp: 普通关键字补全、单词
Cx Cf: 补全文件名
Cx Co: 全能补全, 需要开启文件类型检查 安装插件。
配色
:colorcheme 显示配色
:colorscheme <C-d> 显示所有配色
:colorscheme [配色名称] : 切换配色
折叠 python
set foldmethod=indent
打开单个折叠 zo
关闭单个折叠 zc
打开所有折叠 zr
关闭所有折叠 zm
格式化
Plug 'sbdchd/neoformat'
:Neoformat! python
注释
gc
跳转回退
文件内:
gd: 跳转到定义 Ctrl-o: 回退
ctags: ctrl-]:跳转到声明 Ctrl-t: 回退
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2019-08-23 vim 按键和快捷键