欢迎,来自IP地址为:3.135.216.174 的朋友



如果 是系统管理员或者 Linux 平台的开发人员,可能需要在 Linux 命令行终端编辑文件。

虽然 Linux 系统有众多的文本编辑器,但是最为常用的一定是 Vim。

有人可能会问为什么 Vim 会如此流行?

因为我们花在修改文本上的时间往往多于创建一个新文本,于是在文本编辑过程中 Vim 方便的快捷键就充分发挥了优势,可以大幅提升工作效率。

什么是 Vim

Vim 是一个功能强大的文本编辑器,在 Linux 系统管理员和开发人员中最为流行。

它是一款高度订制的文本编辑器,可高效的进行文本编辑,是之前 vi 编辑器的升级版本,已经被众多类 Unix 系统采用作为默认文本编辑器。

Vim 已经加入了众多功能,例如多级别重做、多窗口及缓存、语法高亮、命令行编辑、文件名补全等。可以在 Vim 编辑器中使用”:help”命令查看其联机帮助内容。

理解 Vim 的模式

Vim 具有两种工作模式,详细信息如下:

命令模式:这是打开 Vim 编辑器的默认工作模式,在此模式下,可以查看文件内容、使用命令对文本内容进行修改,包括剪切、拷贝以及粘贴等,可能在此模式下利用命令进行各种操作(按 ESC 键进入命令模式)。

插入模式:顾名思义,此模式是进行文本输入的工作模式(按 i 键进入输入模式)。

如果判断当前的工作模式

既然 Vim 有两种模式,那么如何区分当前是处于哪种工作模式呢?其实这很容易,如果在编辑器的底部看到”– INSERT –“字样,说明当前的工作模式是插入模式;而如果在编辑器底部显示的是文件名,那么工作模式是命令模式。

光标移动命令

以下的 Vim 键盘快捷键可以方便的在文本编辑器中控制光标如何移动:

  • G(或shift+g) 将光标移动至文件最后一行的开头
  • gg 将光标移动至文件第一行的开头
  • $ 将光标移动至光标所在行的末尾
  • 0(数字0) 将光标移动至光标所在行的开头
  • w 将光标移动至下一行的开头
  • W(或shift+w) 将光标移动至下一个单词的开头(空格或回车分隔)
  • b 将光标移动至上一个单词的开头
  • B(或shift+b) 将光标移动至上一个单词的开头(空格或回车分隔)
  • PgDn 键 向下翻页
  • PgUp 键 向上翻页
  • Ctrl+d 向下翻半页
  • Ctrl+u 向上翻半页

插入模式

这些进入插入模式的命令,可以根据需要方便的将光标移动至需要插入文本的位置:

  • i 在光标前插入文本
  • a 在光标后插入文本
  • I(或shift+i) 在光标所在行的开头插入,这在光标位于行中间时变得非常实用
  • A(或shift+a) 在光标所在行的末尾插入
  • o 在光标所在行的下一层插入
  • O(或shift+o) 在光标所在行的上一层插入
  • ea(先按e再按a) 在光标所在行的下一字单词开头插入

复制、粘贴以及删除行

  • yy 复制当前行
  • p/P 在光标前/光标后粘贴复制内容
  • dd(按两次d) 删除光标所在行
  • dw 删除一个单词

Vim 中的查找与替换

  • /查找内容 在文本中查找”查找内容”
  • ?查找内容 在文本中反向查找”查找内容”
  • n 继续查找之前的查找内容
  • N 继续反向查找之前的查找内容
  • o 在光标所在行的下一层插入
  • :%s/查找内容/替换内容/g 将文本中所有符合的”查找内容”替换为”替换内容”
  • :s/查找内容/替换内容/g 将光标所在行所有符合的”查找内容”替换为”替换内容”
  • :%s/查找内容/替换内容/gc 将文本中所有符合的”查找内容”替换为”替换内容”并确认

Vim 编辑器中跳转到特定行

作为出色的编辑器,Vim 当然是可以显示行号和进行行跳转的。根据个人的需求灵活选择。

如果想显示文本的行号则使用如下命令:

:set number

一旦设置了行号,就可以使用如下方式将光标快速移动至指定行

:n          //其中n为指定的行号

更为方便的是可以使用如下命令在打开文件时直接将光标跳转至指定行:

# vim +20 [File_Name]

还原、重做以及重复命令

  • u 还原所有的修改
  • Ctrl+r 重做修改
  • .  重复执行上一条命令

保存以及退出 Vim 命令

  • :w 保存修改而不退出编辑器
  • :wq 保存修改并退出编辑器
  • :wq! 强制保存修改并退出编辑器

以上就是一些 Vim 的基本操作命令使用教程,个人认为最好的方式就是打开编辑器将所有命令都尝试一遍,则更加有利于理解和记忆。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注