问答题570/1053vim 命令有哪些常见用法?

难度:
2021-11-02 创建

参考答案:

vim 是一种功能强大的文本编辑器,广泛用于代码编写和文件编辑。它是 vi 编辑器的增强版,支持更多的功能和插件。vim 提供了多种模式、命令和操作方式,下面是一些常见的 vim 命令和用法。

vim 工作模式:

vim 有三种基本的工作模式:

  1. 普通模式 (Normal mode):默认模式,用于执行命令,如移动光标、删除文本等。
  2. 插入模式 (Insert mode):用来编辑文本,输入新内容。
  3. 命令模式 (Command mode):用于执行保存、退出、查找等操作。

可以通过按下不同的键在这三种模式之间切换:

  • i 进入 插入模式
  • Esc 进入 普通模式
  • : 进入 命令模式

基本命令:

1. 打开/退出文件

  • vim filename:打开文件 filename,如果文件不存在会创建一个新文件。
  • :w:保存文件(不退出)。
  • :wqZZ:保存文件并退出。
  • :q:退出 vim(如果文件没有修改)。
  • :q!:强制退出,不保存文件。
  • :x:与 :wq 等效,保存并退出。

2. 光标移动

  • h:向左移动一个字符。
  • j:向下移动一行。
  • k:向上移动一行。
  • l:向右移动一个字符。
  • 0:移动到当前行的开头。
  • $:移动到当前行的末尾。
  • gg:移动到文件的开头。
  • G:移动到文件的末尾。
  • nG:移动到第 n 行。
  • Ctrl + f:向前翻页。
  • Ctrl + b:向后翻页。

3. 编辑文本

  • i:进入 插入模式,在当前光标位置前插入。
  • I:进入 插入模式,在当前行的开头插入。
  • a:进入 插入模式,在当前光标位置后插入。
  • A:进入 插入模式,在当前行的末尾插入。
  • o:在当前行下方打开一个新行并进入 插入模式
  • O:在当前行上方打开一个新行并进入 插入模式
  • x:删除当前光标所在位置的字符。
  • dd:删除当前行。
  • D:删除从当前光标位置到行末的内容。
  • dw:删除当前光标所在位置到下一个单词的内容。
  • cw:修改当前光标所在位置到下一个单词的内容。
  • yy:复制当前行。
  • p:粘贴复制或剪切的内容到当前光标后。
  • P:粘贴复制或剪切的内容到当前光标前。

4. 查找与替换

  • /pattern:查找文本 pattern,光标会跳转到第一个匹配的位置。
  • ?pattern:向上查找文本 pattern
  • n:查找下一个匹配项。
  • N:查找上一个匹配项。
  • :%s/old/new/g:将文件中的所有 old 替换为 new
  • :s/old/new/g:将当前行中的所有 old 替换为 new
  • :s/old/new/:将当前行中第一个 old 替换为 new

5. 撤销与重做

  • u:撤销上一次操作。
  • Ctrl + r:重做上一次撤销的操作。

6. 复制、剪切和粘贴

  • y:复制(yank)选中的文本。
  • d:剪切(delete)选中的文本。
  • p:粘贴(paste)文本到光标后。
  • P:粘贴(paste)文本到光标前。

7. 选择文本

  • v:进入 可视模式,用来选择字符。
  • V:进入 可视行模式,用来选择整行。
  • Ctrl + v:进入 可视块模式,用于选择矩形区域。

8. 命令模式操作

  • :w:保存文件。
  • :w filename:将文件保存为指定的 filename
  • :q:退出 vim(如果文件没有修改)。
  • :q!:强制退出 vim,不保存文件。
  • :x:wq:保存并退出。
  • :set number:显示行号。
  • :set nonumber:隐藏行号。
  • :set autoindent:启用自动缩进。
  • :set tabstop=4:设置制表符宽度为 4。
  • :set expandtab:启用将 Tab 替换为空格。
  • :set list:显示空格、Tab 等不可见字符。
  • :set nowrap:禁用行自动换行。

9. 文件操作

  • :e filename:编辑指定的文件。
  • :w filename:保存文件为指定的 filename
  • :r filename:读取并插入文件 filename 内容到当前文件中。
  • :t filename:复制当前行到文件 filename
  • :!command:在 vim 内执行外部命令(如 :!ls)。

10. 多窗口与标签页

  • :split:sp:水平分割窗口。
  • :vsplit:vsp:垂直分割窗口。
  • Ctrl + w + w:切换窗口。
  • Ctrl + w + q:关闭当前窗口。
  • :tabnew:打开一个新的标签页。
  • :tabnextgt:切换到下一个标签页。
  • :tabprevgT:切换到上一个标签页。

11. 备份和恢复

  • :undolist:查看撤销历史。
  • :u:撤销操作。
  • :redo:重做操作。

最近更新时间:2024-12-24