Linux Vim 三种工作模式

在 Linux 系统中,Vim 是一款强大且广泛使用的文本编辑器,它具备三种主要的工作模式,分别是命令模式(Command mode)、插入模式(Insert mode)和底行模式(Last line mode)。了解并熟练运用这三种模式,能够极大地提高您在 Linux 环境下的文本编辑效率。本文将详细介绍这三种模式的特点、使用方法以及相关的最佳实践。

目录#

  1. 命令模式
    • 特点
    • 常见操作
    • 最佳实践
    • 示例用法
  2. 插入模式
    • 特点
    • 进入与退出方式
    • 常见操作
    • 示例用法
  3. 底行模式
    • 特点
    • 常见命令
    • 示例用法
  4. 模式之间的切换
    • 切换关系
    • 示例操作
  5. 总结
  6. 参考资料

1. 命令模式#

特点#

当您启动 Vim 编辑器时,默认进入的就是命令模式。在这个模式下,您不能直接输入文本,而是通过输入各种命令来执行不同的操作,如移动光标、复制粘贴、删除文本等。

常见操作#

  • 光标移动
    • h:左移一个字符
    • j:下移一行
    • k:上移一行
    • l:右移一个字符
    • w:向前移动一个单词
    • b:向后移动一个单词
    • 0:移动到行首
    • $:移动到行尾
    • G:移动到文件末尾
    • 1Ggg:移动到文件开头
  • 复制粘贴
    • yy:复制当前行
    • nyy:复制从当前行开始的 n 行(例如 3yy 复制 3 行)
    • p:在当前行下方粘贴复制的内容
    • P:在当前行上方粘贴复制的内容
  • 删除
    • x:删除当前字符
    • dd:删除当前行
    • ndd:删除从当前行开始的 n 行(例如 3dd 删除 3 行)

最佳实践#

在命令模式下,尽量使用快捷键来提高操作效率。通过多次使用相同的命令,可以一次性完成多个操作。例如,连续按 3j 可以快速向下移动 3 行。

示例用法#

假设您有一个文本文件 test.txt,使用 vim test.txt 打开它,进入命令模式。您可以使用 jk 键上下移动光标,查看文件内容。如果您想复制第 3 行到第 5 行的内容并粘贴到第 10 行下方,可以先将光标移动到第 3 行,输入 3yy 复制 3 行,然后将光标移动到第 10 行,输入 p 进行粘贴。

2. 插入模式#

特点#

在插入模式下,您可以像使用普通文本编辑器一样输入和编辑文本。

进入与退出方式#

  • 进入插入模式
    • i:在当前光标所在位置之前插入文本
    • a:在当前光标所在位置之后插入文本
    • o:在当前行的下一行插入新行并进入插入模式
    • O:在当前行的上一行插入新行并进入插入模式
  • 退出插入模式Esc 键可以从插入模式返回到命令模式。

常见操作#

在插入模式下,您可以像在普通文本编辑器中一样使用键盘输入和删除字符,使用方向键移动光标等。

示例用法#

在命令模式下,将光标移动到需要插入文本的位置,按下 i 进入插入模式,然后输入您需要的文本。完成输入后,按 Esc 键返回到命令模式。

3. 底行模式#

特点#

底行模式通常用于执行一些与文件相关的操作,如保存文件、退出编辑器、查找替换等。在命令模式下,输入 : 即可进入底行模式,此时光标会移动到屏幕底部的一行,等待您输入命令。

常见命令#

  • 保存与退出
    • :w:保存文件
    • :q:退出编辑器(如果文件未修改)
    • :wq:x:保存文件并退出编辑器
    • :q!:强制退出编辑器,不保存修改
  • 查找与替换
    • :/keyword:在文件中查找关键字 keyword
    • :s/old/new:将当前行中第一个 old 替换为 new
    • :s/old/new/g:将当前行中所有的 old 替换为 new
    • :%s/old/new/g:将文件中所有的 old 替换为 new
  • 显示行号
    • :set number:set nu:显示行号
    • :set nonumber:set nonu:隐藏行号

示例用法#

假设您在编辑一个文件时,需要将文件中所有的 hello 替换为 hi,可以在命令模式下输入 : 进入底行模式,然后输入 :%s/hello/hi/g 并回车,即可完成替换。如果您编辑完成后想保存文件并退出,输入 :wq 并回车即可。

4. 模式之间的切换#

切换关系#

  • 启动 Vim 后默认进入命令模式。
  • 从命令模式可以通过 iaoO 等键进入插入模式,按 Esc 键从插入模式返回到命令模式。
  • 从命令模式输入 : 可以进入底行模式,按 Esc 键从底行模式返回到命令模式。

示例操作#

以下是一个简单的示例操作流程:

  1. 使用 vim test.txt 打开文件,进入命令模式。
  2. i 进入插入模式,输入一些文本。
  3. Esc 返回到命令模式,使用 jk 键移动光标。
  4. 输入 : 进入底行模式,输入 :set nu 显示行号。
  5. Esc 返回到命令模式,再次按 i 进入插入模式继续输入文本。
  6. 完成编辑后,按 Esc 回到命令模式,输入 : 进入底行模式,输入 :wq 保存文件并退出。

总结#

Vim 的三种工作模式各有特点,相互配合可以实现高效的文本编辑。命令模式用于执行各种操作,插入模式用于输入和编辑文本,底行模式用于执行文件相关的操作。熟练掌握这三种模式之间的切换和使用方法,能够让您在 Linux 系统下更加轻松地进行文本编辑工作。

参考资料#