其他命令
| <c-L> 重绘屏幕 |
| <c-z> 挂起vim回到shell,想继续vim只需要输入 fg |
| <c-x-f> 文件路径提示 |
| <c-N> 当前文件中的关键字提示 |
| <C-X><C-O> 语义上的补全 |
| |
| J 于下一行文本合并 |
| % 在括号间跳转,配合v可以选中代码块 |
| ~ 光标下的字符转化为大写 |
| |
| :66,70s/^/\/\/ 66-70行添加 //注释 |
| :66,70s/^\/\// 取消多行注释 |
| |
| :read index.html 读入文件的内容放在当前行的后面 |
| :! <bash 命令> 执行bash命令行 |
字符查找
| fa 查找当前行光标后的 a 字符, ";"分号重复查找命令,","与";"相反 |
| Fa 查找光标签前的a |
| 3fa 查找当前行光标后的第3个a文本 |
| 还有 ta ,2ta,移动到a的前面 |
| |
| /word + 回车 从当前的行向下查找 n向下切, N向上切 |
| |
| N * 向前查找光标下的标识符(完全匹配) |
| N |
| |
| g* 类似 *(模糊匹配) |
| g |
| |
| gd 转到本地声明 |
| gD 转到global声明 |
块级光标移动
| w 跳到下一个word开头 |
| e 跳到当前word结尾 |
| b 跳到上一个word开头 |
| ge 跳到上一个word结尾 ctrl+ < |
行级光标移动
| G 整个文档的最后一行 |
| gg 整个文档的第一行行 |
| 3G 跳转到3行, G意为Go |
| |
| N zh 屏幕右滚 N 个字符 |
| N zl 屏幕左滚 N 个字符 |
| N zH 屏幕右滚半个屏宽 |
| N zL 屏幕左滚半个屏宽 |
删除文本
| 被删除的文本都可以用p取回来, put |
| |
| x 删除当前光标下的字符("dl"的快捷命令) |
| X 删除当前光标之前的字符("dh"的快捷命令) |
| D 删除自当前光标至行尾的内容("d$"的快捷命令) |
| dw 删除自当前光标至下一个 word 的开头 |
| db 删除自当前光标至前一个 word 的开始 |
| diw 删除当前光标所在的 word(不包括空白字符) |
| daw 删除当前光标所在的 word(包括空白字符) |
| dG 删除当前行至文件尾的内容 |
| dgg 删除当前行至文件头的内容 |
| |
| 上面的d命令都可以用 c,y代替 |
| |
| 4x 删除4个文字 |
| cw 删除word并进入插入模式 |
| |
| dd 删除一行, |
| d$ 删除到行尾的内容, d^ |
| cc 改变整行 |
| |
| . 重复上一次的删除命令 |
替换
| R 输入的文字会替换光标下的文字 |
| <Insert>键可以再 i 和 R 模式之间切换 |
| <BS> 退格键可以撤销替换 |
| ra 把光标下的文字替换为a |
| 4ra 把四个替换为a |
| |
| r<Enter> 替换为一个换行符 |
| |
| :%s/name/ajanuw/g 默认执行全部name替换为ajanuw |
| :%s/name/ajanuw/gc 每执行一次都需要同意,还是跳过 |
| :1,5s/this/that/g 第 1 到第 5 行的文本执行替换操作,包括第 1 行和第 5行 |
复制粘贴
| yy 复制当前行 |
| yw 复制一个word |
| |
| p 粘贴到光标后 |
| P 粘贴到光标前 |
| |
| "*yy 复制 |
| "*p 粘贴 |
| |
| "ay复制 "ap 粘贴,寄存器的名字为[a-z] |
撤销
| N u 撤销最近的 N 此改动 |
| N CTRL-R 重做最近的 N 个被撤销的改动 |
| U 恢复最近被改动的行 |
缩进,对齐,折叠
| gg=G 是一个自动缩进的命令 |
| == 整理当行 |
| = 整理选中的行 |
| |
| :>> 设置缩进 http: |
| :<< |
| |
| zf} 折叠代码 Docs: https: |
| zc 开合折叠 https: |
| zo 打开光标下的折叠 |
| zO 打开光标下的所有折叠 |
| |
| zR 打开所有折叠 |
编辑另一个文件
| :f {name} 设置当前文件名为name |
| :e ! 重载当前文件 |
| :e foo.txt 关闭当前文件,打开指定文件,当前文件未保存会出现错误信息 |
| :e! foo.txt 强制打开指定文件 |
| |
| 错误有对应的 ID 号, :help E37 查看错误帮助 |
文件标记
| m m{a-zA-Z} 用标记 {a-zA-Z} 记录当前位置 |
| `a `{a-z} 至当前文件中的标记 {a-z} |
| |
| '' `` 到最近一次跳转之前的位置 |
| '" `" 最后退出当前缓冲区时到光标位置。默认为第一行的第一个字符 |
| '. `. 到最后一次更改的位置 |
保存一份原始文件
分页
| 简写 sp |
| :split 上下分页 |
| :split index.html |
| :vsplit 左右分页 |
| |
| <c-w> 点击w在分屏中移动 |
| |
| CTRL-W H 到左边的窗口 |
| CTRL-W J 到下面的窗口 |
| CTRL-W K 到上面的窗口 |
| CTRL-W L 到右边的窗口 |
| |
| <c-w 10 >> 增加当前屏幕的宽度 < 向右放大, > 向左放大,10代表次数 |
| CTRL-W + 增加当前窗口高度 |
| CTRL-W - 减小 |
| |
| :q 关闭当前文件 |
| :close 关闭当前窗口,阻止你关闭最后一个窗口 |
| :only 关闭除当前窗口以外的窗口 |
| :wa 保存所有窗口打开的文件 |
| :qa 退出所有文件,有未保存的文件无法退出 |
| :wqa 保存并退出所有窗口。 |
目录 和 Tab导航
| vim . 打开当前目录 |
| |
| :Ve 在左侧边栏打开当前文件的目录 |
| enter 在当前窗口打开文件 |
| o 打开一个水平分隔的窗口显示文件 |
| v 打开一个垂直分隔的窗口显示文件 |
| t 在一个新标签页中打开文件 |
| |
| :cd dirtory 切换到dirtory目录 |
| :pwd 显示当前工作目录 |
| |
| :tabnew file.txt 在新选项卡中打开 file.txt |
| :tabs 显示所有 tabs |
| {count}gt 转到标签页 {count}。 第一个标签页为数字 1 |
| :tabclose 关闭当前标签 |
| |
| gt |
| :tabn[ext] 转到下一个选项卡 |
| |
| gT |
| :tabp[revious] 转到上一个选项卡 |
屏幕移动
| <ctrl+y> 将屏幕上移一行 |
| <ctrl+e> 将屏幕下移一行 |
| |
| <ctrl+u> 将屏幕上移半页 |
| <ctrl+d> 将屏幕下移半页 |
| |
| <Page UP> 将屏幕上移一页 |
| <ctrl+b> 和上面一样 |
| |
| <Page Down> 将屏幕下移一页 |
| <ctrl+f> 和上面一样 |
| |
| zz 将当前行移到屏幕中间 |
| zt 将当前行移到屏幕顶部 |
| zb 将当前行移到屏幕底部 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决