当前位置: 首页 > news >正文

Vim 常用快捷键及插件

Vim 常用快捷键及插件

常用快捷键

insert 模式

快捷键说明
C-h删除一个字符
C-w删除一个单词
C-u删除一行
C-a移动到行首
C-e移动到行尾
C-b向后移动
C-f向前移动

normal 模式

光标移动
快捷键说明
hjkl光标上下左右移动
^跳到行首
$跳到行尾
b/wB/W以单词为单位移动
f/t + 文本对象行内移动到指定文本对象处
()句间移动
{}段间移动
%跳转匹配的括号或标签
*搜索并跳转到下一个单词
C-B/C-F上下翻页
C-u/C-d上下翻半页
C-y/C-e屏幕滚动
数字 + G跳转到指定行
gg跳转到首行
G跳转到尾行
数字 + |跳转到指定列
M移动到屏幕中间
H移动到屏幕上方
L移动到屏幕下方
zz将内容移动到屏幕中间
zt将内容移动到屏幕顶部
zb将内容移动到屏幕下方
文本修改
快捷键说明
d + 文本对象删除(dd)
c + 文本对象修改(C 表示修改到行尾)
s/S修改单个字符/修改整行
x删除字符
a/A在当前字符后进入插入模式/在当前行尾进入插入模式
i/I在当前字符前进入插入模式/在当前行首进入插入模式
o/O在当前行下方插入新行并进入插入模式/在当前行上方插入新行并进入插入模式
r/R替换单个字符/替换多个字符
u/U撤销/撤销当前行所有修改
补全
快捷键说明
C-n/C-p补全单词
C-x C-f补全文件名
C-x C-o补全代码(需安装插件)
快捷键说明
q + 寄存器名录制宏
q结束录制
@ + 寄存器播放宏

命令行模式

快捷键说明
normal + 命令在命令行执行 normal 模式的命令
[range] s [ubstitute]/{pattern}/[flags]搜索替换(flag 可选 g/c/n,表示全部替换/替换前确认/报告匹配到的次数)

窗口操作

快捷键说明
:vs [文件名]竖分屏
:sp [文件名]横分屏
C-w + 方向键窗口跳转
C-w w跳至下一个窗口
C-w n打开新窗口
C-w c关闭当前窗口
C-w q退出当前窗口
C-w o仅保留当前窗口
C-w =所有窗口等大
数字 + C-w _设置窗口高度
`数字 + C-w`
数字 + C-w +增加窗口高度
数字 + C-w -减少窗口高度
数字 + C-w >增加窗口宽度
数字 + C-w >减少窗口宽度
vimdiff/gvimdiff + 文件1 + 文件2双窗口内容对比
:vert diffsplit + 文件在 vim 内启动对比
C-w T将当前窗口转为一个新标签页

标签页

快捷键说明
:tab 命令行命令在新标签页中展示命令结果
:tabs显示所有标签页列表
:tabedit打开新空白标签页
:tabclose关闭当前标签页
:gt切换到下一个标签页
:gT切换到上一个标签页
:tabfirst切换到第一个标签页
:tablast切换到最后一个标签页

缓冲区

快捷键说明
:ls显示缓冲区列表
:b 编号跳转到对应缓冲区
:bdelete/bd删除编号对应的缓冲区
:bnext/bn跳至下一个缓冲区
:bNext/bN跳至上一个缓冲区
:bfirst跳至第一个缓冲区
:blast跳至最后一个缓冲区

寄存器

通过 " 寄存器名 来使用寄存器。

快捷键说明
无名寄存器当操作没有加 " 时,默认使用的是无名寄存器。
a-z有名寄存器。手动指定时才会使用。
0-9数字寄存器。0 号寄存器存放最近一次复制的内容。1-9 号寄存器存放上次、倒数第二次……倒数第九次删除的文本(整行)
+存放复制到系统剪贴板的内容。
%当前文件名
.上次插入的文本

快捷键映射

  • map:递归映射。
  • noremap:非递归映射。

插件

vim 插件是使用 vimscript 或其他语言编写的 vim 扩展。一般使用 vim 插件管理器来安装和管理,如 vim-plug。

插件网站

寻找插件可在 vimawesome 内查找,也可直接浏览器搜索。

常用插件

NERDTree:文件目录树。

tagbar:代码大纲。

vim-interestingwords:高亮感兴趣单词。

easyemotion:快速查找并移动光标。

vim-surround:快速增删修改引号、括号等。

vim-commentary:快速注释。

gc

indentline:显示代码缩进辅助线。

vim-startify:修改 vim 的启动界面,并可浏览最近打开的文件。

vim-airline:修改状态栏。

fzf.vim:模糊搜索。

  • Ag 要搜索的内容
  • Files 文件名

ctrlp:模糊查找文件。

far.vim:批量替换一个项目中的所有字符串。

  • Far 要被替换的内容 要替换的内容 匹配模式
  • :Fardo:替换。

python-mode:适配 python 的插件,提供补全、格式化、跳转、重构、折叠等功能。

deoplete.nvim:代码补全。

coc.vim:代码补全。

neoformat:代码格式化。

Fugitive:在 vim 中使用 git。

vim-gitgutter:在 git 管理的项目中显示文件变动。

gv.vim:在 vim 中查看代码提交变更。

开源配置

SpaceVim


参考

  1. 《Vim 实用技巧必知必会》
  2. 《玩转 Vim 从放弃到爱不释手》
http://www.dtcms.com/a/332726.html

相关文章:

  • 关于simplifyweibo_4_moods数据集的分类问题
  • 大白话解析“入口点合约”
  • Linux系统--库制作与原理
  • Java—注解
  • mysql-条件查询案例
  • zabbix部署问题后常见问题
  • Codeforces 无路可走
  • 分布式系统设计的容错机制
  • AI优质信息源汇总:含X账号,Newsletter,播客,App
  • 如何在 FastAPI 中玩转 APScheduler,让任务定时自动执行?
  • 上下文块嵌入(contextualized-chunk-embeddings)
  • collections:容器数据类型
  • C语言——深入理解指针(四)
  • 完整技术栈分享:基于Hadoop+Spark的在线教育投融资大数据可视化分析系统
  • 使用XXL-SSO实现登录认证以及权限管控
  • 解决 MySQL 查询速度缓慢的问题
  • Filebeat 轻量级日志采集实践:安装、配置、多行合并、JSON 解析与字段处理
  • Java集合Map与Stream流:Map实现类特点、遍历方式、Stream流操作及Collections工具类方法
  • 【软件设计模式】前置知识类图、七大原则(精简笔记版)
  • C++ 调试报错 常量中有换行符
  • 基于桥梁三维模型的无人机检测路径规划系统设计与实现
  • Cursor 分析 bug 记录
  • 3D视觉与空间智能
  • imx6ull-驱动开发篇25——Linux 中断上半部/下半部
  • 智谱开源了最新多模态模型,GLM-4.5V
  • 关系型数据库从入门到精通:MySQL 核心知识全解析
  • 高并发系统性能优化实战:实现5万并发与毫秒级响应
  • Kafka生产者——提高生产者吞吐量
  • LeetCode 面试经典 150_数组/字符串_最长公共前缀(20_14_C++_简单)(暴力破解)(求交集)
  • 简单使用 TypeScript 或 JavaScript 创建并发布 npm 插件