vim知识汇总
vim命令使用
Vim 是一款高度可配置的文本编辑器,它源自于 vi 编辑器,广泛应用于 Unix-like 操作系统以及 Windows 系统中。以下是 Vim 中一些常用的命令和操作:
基本模式
- 普通模式:启动
Vim后默认进入的模式,可以使用命令进行文本编辑。 - 插入模式:在普通模式下输入
i进入插入模式,此时可以在光标位置开始输入文本。 - 可视模式:在普通模式下输入
v进入可视模式,可以选择文本。
常用命令
在普通模式下
i:进入插入模式,在当前光标位置前开始输入。a:进入插入模式,在当前光标位置后开始输入。o:在当前行下方新开一行并进入插入模式。O:在当前行上方新开一行并进入插入模式。u:撤销上一次操作。Ctrl + r:重做上一次撤销的操作。x或del:删除光标下的字符。dd:删除当前行。yy:复制当前行。p:粘贴剪贴板中的内容。P:粘贴剪贴板中的内容,但在当前行之前插入。/pattern:搜索文本中的pattern。n:重复上次搜索,向前查找。N:重复上次搜索,向后查找。gg:跳转到文件的第一行。G:跳转到文件的最后一行。^:跳转到当前行的开头。$:跳转到当前行的结尾。0:同^,跳转到当前行的开头。w:保存当前文件并退出Vim。q!:不保存当前文件并强制退出Vim。::进入命令行模式,可以执行更复杂的命令。
在命令行模式下
:w:保存当前文件。:q:退出当前文件。:wq或:x:保存并退出当前文件。:set nu:显示行号。:set nonu:取消显示行号。:set relativenumber:显示相对行号。:set numberwidth=2:设置行号宽度。:set tabstop=4:设置制表符宽度为 4 个空格。:set shiftwidth=4:设置缩进宽度为 4 个空格。:set expandtab:将制表符转换为空格。:set noexpandtab:不将制表符转换为空格。:set autoindent:开启自动缩进。:set noautoindent:关闭自动缩进。:set ruler:显示状态栏中的文件位置和大小信息。:set nocompatible:禁用与 vi 兼容的特性,启用 Vim 的全部功能。
以上只是 Vim 中一小部分的命令,要熟练掌握 Vim,还需要不断实践和学习更多的高级功能。
Vim 提供了非常丰富且强大的命令集,以下是一些更具体和高级的命令,可以帮助你在文本编辑时更加高效:
编辑和导航
h,j,k,l:分别对应左、下、上、右方向移动。H,M,L:分别跳至屏幕顶部、中间、底部。w,W:向前跳过单词(W跳过大写单词)。b,B:向后跳过单词(B跳过大写单词)。e:跳到单词的末尾。ge:反向跳到单词的末尾。0:跳到行首。$:跳到行尾。^:跳到行的第一个非空白字符。%:在括号、引号之间跳转。F{char},f{char}:向前或向后查找字符{char}。t{char},T{char}:向前或向后跳到字符{char}的前一个位置。;,,:重复或反向重复F,f,t,T命令。G:跳到文件最后一行。gg:跳到文件第一行。{count}G:跳到指定行数。/{pattern}:向下搜索文本中的{pattern}。?{pattern}:向上搜索文本中的{pattern}。n:重复最后一次搜索。N:反向重复最后一次搜索。*,#:搜索当前单词在文件中的下一个或上一个出现位置。
编辑文本
r{char}:替换当前字符为{char}。R:进入替换模式,直到按下Esc键停止。c{motion}:改变{motion}所覆盖的文本,然后进入插入模式。s:等同于cl,改变当前字符,然后进入插入模式。S:等同于cc,改变整行,然后进入插入模式。d{motion}:删除{motion}所覆盖的文本。D:删除从光标位置到行尾的所有文本。x:删除当前字符。X:删除前一个字符。u:撤销上一个更改。Ctrl+r:重做上一个撤销的动作。.:重复上一个更改命令。J:连接当前行和下一行。=:格式化当前行。
多行操作
V:选择整行。v:进入可视模式,选择字符。Ctrl+v:进入块选择模式。y:复制所选文本。Y:复制整行。d:删除所选文本。p:粘贴剪贴板中的内容。P:粘贴剪贴板中的内容,但在当前行之前插入。>:右移所选文本的缩进。<:左移所选文本的缩进。
缓冲区和窗口操作
:bn或:next:切换到下一个缓冲区。:bp或:prev:切换到上一个缓冲区。:bd:删除当前缓冲区。:sp:分割窗口。:vsp:垂直分割窗口。:close:关闭当前窗口。:only:只保留当前窗口,关闭其他窗口。Ctrl+w h,Ctrl+w j,Ctrl+w k,Ctrl+w l:在窗口间导航。
更多命令
:set paste:允许粘贴文本时不被Vim的自动特性干扰。:set nopaste:取消粘贴模式。:set number:显示行号。:set nonumber:不显示行号。:set relativenumber:显示相对行号。:set nohlsearch:关闭搜索高亮。:set hlsearch:开启搜索高亮。:set incsearch:开启增量搜索。:set noincsearch:关闭增量搜索。:set ignorecase:忽略大小写差异。:set noignorecase:考虑大小写差异。:set smartcase:当搜索字符串包含大写字母时,忽略大小写差异。
这些命令只是 Vim 功能的一部分,熟练掌握它们将极大地提高你的编辑效率。
如何掌握vim?掌握它有什么好处
熟练掌握 Vim 命令能够显著提升文本编辑和代码编写效率,主要好处包括:
- 速度提升:
Vim的键盘快捷键设计使得编辑操作快速而流畅,无需频繁使用鼠标,这在处理大量文本或代码时尤其明显。 - 减少错误:通过模式切换和命令行操作,
Vim可以减少因图形界面操作不当导致的错误。 - 定制性:
Vim高度可配置,用户可以通过.vimrc文件自定义编辑环境,满足个人偏好和工作需求。 - 跨平台兼容:
Vim在几乎所有操作系统上都有良好的支持,这意味着无论你使用的是 Linux、macOS 还是 Windows,都可以保持一致的工作流程。 - 远程编辑能力:通过 SSH,可以直接在远程服务器上使用
Vim编辑文件,这对于系统管理员和开发者来说非常方便。 - 插件生态系统:
Vim拥有庞大的插件库,可以扩展其功能,例如语法高亮、代码补全、版本控制集成等。
为了熟练掌握 Vim 命令,你可以采取以下步骤:
- 记忆常用命令:首先熟悉上述列出的基本和常用命令,通过反复练习加深记忆。
- 实践应用:在日常工作中尽可能多地使用
Vim,通过实际操作来巩固记忆和理解。 - 阅读文档:
Vim的官方文档非常详尽,定期查阅文档可以了解新命令和功能。 - 参加培训或观看教程:网络上有许多免费的
Vim教程和视频,可以帮助你系统地学习。 - 加入社区:参与
Vim用户论坛或社区,与其他用户交流心得,解决遇到的问题。 - 编写
.vimrc配置文件:尝试自己编写配置文件,根据个人习惯调整Vim的行为,这是一个深入理解Vim的好方法。 - 挑战复杂任务:尝试使用
Vim完成一些复杂的编辑任务,比如批量修改文件,这有助于提高你的技能水平。
通过持续的练习和探索,你会逐渐发现 Vim 的强大之处,从而在文本编辑方面达到更高的效率和精确度。
腾讯元宝回答
当然可以!学习 Vim 的快捷键能显著提升你的编辑效率,让你几乎不用鼠标也能高效操作。以下是一些 Vim 中常用的快捷键分类介绍:
模式基础
Vim 有多种模式,主要分为普通模式(Normal mode)、插入模式(Insert mode)、命令模式(Command-line mode)等。
- 普通模式:这是 Vim 启动后的默认模式,在此模式下可以执行各种命令来移动光标、编辑文本等。
- 插入模式:用于输入文本内容,可通过多种方式进入,如
i(在当前光标前插入)、a(在当前光标后插入)等。 - 命令模式:用于执行保存文件、退出 Vim 等命令,通常在普通模式下输入
:进入。
普通模式常用快捷键
光标移动
- 字符移动
h:向左移动一个字符l:向右移动一个字符j:向下移动一行k:向上移动一行
- 单词移动
w:移动到下一个单词的开头b:移动到上一个单词的开头e:移动到下一个单词的结尾
- 行移动
0:移动到行首$:移动到行尾
- 屏幕移动
Ctrl + f:向下翻一屏Ctrl + b:向上翻一屏Ctrl + d:向下翻半屏Ctrl + u:向上翻半屏
文本编辑
- 删除
x:删除当前光标所在字符nx(n 为数字):删除从当前光标开始向后的 n 个字符dd:删除当前行ndd(n 为数字):删除从当前行开始的 n 行
- 复制粘贴
yy:复制当前行nyy(n 为数字):复制从当前行开始的 n 行p:在当前光标位置粘贴已复制的内容(粘贴到下一行)P:在当前光标位置粘贴已复制的内容(粘贴到上一行)
- 替换
r后跟一个字符:替换当前光标所在字符为指定字符R:进入替换模式,可连续替换多个字符,按Esc结束
撤销与重做
u:撤销上一步操作Ctrl + r:重做被撤销的操作
多光标操作(需要 Vim 版本支持)
Ctrl + v:进入可视块模式,可选择矩形区域,结合移动命令可选中多行多列的内容,之后可进行批量删除、复制、粘贴等操作。
插入模式常用快捷键
- 在插入模式下,如果想快速回到普通模式,按
Esc键。 Ctrl + [:与Esc功能相同,用于从插入模式返回普通模式,在某些情况下比Esc更方便输入。
命令模式常用快捷键
- 文件操作
:w:保存文件:q:退出 Vim(如果文件有修改未保存,会提示无法退出):wq:保存并退出:q!:强制退出,不保存修改:e filename:打开指定文件
- 查找与替换
/pattern:向下查找指定字符串?pattern:向上查找指定字符串n:查找下一个匹配项N:查找上一个匹配项:s/old/new/:将当前行的第一个old替换为new:s/old/new/g:将当前行的所有old替换为new:%s/old/new/g:将整个文件的所有old替换为new
自定义快捷键
你还可以根据自己的习惯在 Vim 配置文件(通常是 ~/.vimrc)中自定义快捷键。例如,如果你想将 jk 映射为退出插入模式,可以在 ~/.vimrc 中添加:
inoremap jk <Esc>
保存配置文件后重新打开 Vim 就生效了。
学习 Vim 快捷键需要不断练习,在实际编辑文件过程中逐渐熟悉和掌握这些快捷键,相信不久后你就能熟练运用 Vim 高效地进行文本编辑了 。