vim知识汇总

Posted by     "zengchengjie" on Monday, December 2, 2024

vim知识汇总

vim命令使用

Vim 是一款高度可配置的文本编辑器,它源自于 vi 编辑器,广泛应用于 Unix-like 操作系统以及 Windows 系统中。以下是 Vim 中一些常用的命令和操作:

基本模式

  • 普通模式:启动 Vim 后默认进入的模式,可以使用命令进行文本编辑。
  • 插入模式:在普通模式下输入 i 进入插入模式,此时可以在光标位置开始输入文本。
  • 可视模式:在普通模式下输入 v 进入可视模式,可以选择文本。

常用命令

在普通模式下

  • i:进入插入模式,在当前光标位置前开始输入。
  • a:进入插入模式,在当前光标位置后开始输入。
  • o:在当前行下方新开一行并进入插入模式。
  • O:在当前行上方新开一行并进入插入模式。
  • u:撤销上一次操作。
  • Ctrl + r:重做上一次撤销的操作。
  • xdel:删除光标下的字符。
  • 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 命令能够显著提升文本编辑和代码编写效率,主要好处包括:

  1. 速度提升Vim 的键盘快捷键设计使得编辑操作快速而流畅,无需频繁使用鼠标,这在处理大量文本或代码时尤其明显。
  2. 减少错误:通过模式切换和命令行操作,Vim 可以减少因图形界面操作不当导致的错误。
  3. 定制性Vim 高度可配置,用户可以通过 .vimrc 文件自定义编辑环境,满足个人偏好和工作需求。
  4. 跨平台兼容Vim 在几乎所有操作系统上都有良好的支持,这意味着无论你使用的是 Linux、macOS 还是 Windows,都可以保持一致的工作流程。
  5. 远程编辑能力:通过 SSH,可以直接在远程服务器上使用 Vim 编辑文件,这对于系统管理员和开发者来说非常方便。
  6. 插件生态系统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 高效地进行文本编辑了 。