Linux 专栏 015 常用命令之 vim

vim 教程 Linux 命令 文本编辑技巧
Vim 是 Vi 的高级版本,是一款功能强大的文本编辑器,具有命令行模式、输入模式和末行模式三种操作模式,熟练掌握可显著提升文本编辑效率。在命令行模式下,用户可通过快捷键进行光标移动、删除、替换、复制、粘贴等操作,并支持搜索和多行注释功能。输入模式允许用户进行文本编辑,通过按 `Esc` 键可返回命令行模式。末行模式则提供保存退出、显示行号、字符串替换、文件导入等高级操作。Vim 不支持鼠标操作,光标移动依赖键盘快捷键。通过灵活切换模式和使用快捷键,用户可以高效完成文本编辑任务。
文章内容
思维导图
常见问题
社交分享

vim 是 vi 的高级版本,它是一款非常强大的文本编辑器,它有三种模式,命令行模式,输入模式和末行模式,熟练使用 vim 可以大幅度提升文本编辑效率。语法格式:vim 文件名

值得我们注意的是:在 vim 中,鼠标不能像在 windows 那样,我们可以把光标移动到任意位置,只能通过四个方向键,和其他字母键移动光标。

1、新建文件

我们新建 test.txt 文件,并打开它

vim test.txt

vim 文本编辑器三种模式切换图如下

2、命令行模式

我们如何进入命令行模式

vim 文件名,不管文件是否存在,它都会进入命令行模式,在这个模式下,按 i,a,o,都可以进入输入模式,然后我们就可以输入内容啦。

命令行模式常用的操作如下

1)基本移动记住四个快捷首字母 hjkl(左下上右),对应左方向键,下方向键,上方向键,右方向键,分别向左,向下,向上,向右移动;数字 0 移动到行首,美元符号(shift + 4) $ 移动到行尾;字母 w 往后移动到下个单词首,字母 b 往前移动到上个单词首;gg 直接跳到文件第一行,G 跳到最后一行。2)删除和替换字母 x 删除光标覆盖的字符,字母 s 删除光标覆盖的字符,并进入输入模式;dd 删除光标所在行,ndd 删除 n 行,dw 删除光标所在处到单词尾的内容;替换某个字母,把光标定位到要替换的字母处,按 r 后,输入替换后的字母。3)复制和粘贴yy 复制当前行,nyy 从当前行开始,复制 n 行,yw 复制光标所在处到单词尾的内容;字母 p 将复制的内容粘贴到光标下方,字母 P 将复制的内容粘贴到光标上方。4)搜索键入 /abc 查找字符串 abc ,按下回车,往下查找按 n ,往上查找按 N;相反,输入 ?abc ,按下回车,往下查找按 N ,往上查找按 n 。5)其他字母 u 撤销,撤销前一个编辑命令的操作结果,返回至上一步编辑状态,多次按 u 返回到最原始状态。

命令行模式,我们输入 /root ,可以查找文中所有的 root 字符

批量注释实现方式

1)在命令行模式下,光标移到行首,按 ctrl+v 进入可视化模块;2)此时按上下键移动选择需要注释的行,然后按 shift+i 进入输入模式;3)接着按 shift+# 注释开始行,最后按下键盘左上方的 esc 键,完成多行注释。

我们按 ctrl+v ,底下出现 VISUAL BLOCK 代表进入可视化模块,左边的白色块说明已经选中多行行首

3、输入模式

命令行模式切换到输入模式,有三种方式

1)按 i 从光标处,进入输入模式;2)按 a 追加进入输入模式,会移动到光标的后一个位置;3)按 o 在光标的下一行创建新的一行。

输入模式退出到命令行模式

在输入模式下,按 esc,退出到命令行模式。

无论我们使用哪种方式进入输入模式,底下都会出现 INSERT 字眼,此时代表现在是输入模式

4、末行模式

命令行模式和末行模式间的切换

在命令行模式,按下 shift +冒号,进入末行模式;在末行模式下,按 esc ,切换到命令行模式;在末行模式下,输入 wq (或 x)保存退出,输入 q! 不保存退出,输入 q 退出。

如果底下出现 :代表现在状态是末行模式

末行模式常用操作

1)set nu 显示行号,set nonu 去掉行号;2)输入数字 n ,定位到文件的第 n 行;3)输入 %s/旧字符串/新字符串/,把文件中每一行的第一个旧字符串,替换成新的字符串,如果要全部替换,在最后的斜杠 / 加 g ;4)导入文件 /root/test.txt 内容,输入 r /root/test.txt,按回车,就完成了内容导入;5)调用 linux 命令, 键入 !命令 ,比如 !which ls ,查找 ls 命令的位置 。

显示文件行号

以上是常用的用法,下面我使用 GPT 帮我回答该命令的用途:

学了就行动起来吧,更多命令,后续更新。

更多命令请前往 :Linux 专栏内容合集

思维导图生成中,请稍候...

问题 1: vim 是什么?
回答: vim 是 vi 的高级版本,是一款功能强大的文本编辑器,支持命令行模式、输入模式和末行模式,能够显著提升文本编辑效率。

问题 2: 如何在 vim 中新建文件?
回答: 使用命令 vim 文件名,例如 vim test.txt,即可新建并打开文件。

问题 3: vim 有哪三种模式?如何切换?
回答: vim 有三种模式:命令行模式、输入模式和末行模式。通过按 iao 从命令行模式进入输入模式,按 Esc 返回命令行模式;按 Shift + : 进入末行模式,再按 Esc 返回命令行模式。

问题 4: 如何在 vim 中移动光标?
回答: 在命令行模式下,使用 h(左)、j(下)、k(上)、l(右)移动光标,0 移动到行首,$ 移动到行尾,gg 跳到文件第一行,G 跳到最后一行。

问题 5: 如何在 vim 中删除和复制内容?
回答: 在命令行模式下,使用 x 删除光标覆盖的字符,dd 删除当前行,yy 复制当前行,p 粘贴到光标下方,P 粘贴到光标上方。

问题 6: 如何在 vim 中查找和替换文本?
回答: 在命令行模式下,输入 /字符串 查找内容,按 n 查找下一个;在末行模式下,输入 %s/旧字符串/新字符串/ 替换内容,加 g 替换所有匹配项。

问题 7: 如何在 vim 中批量注释多行?
回答: 在命令行模式下,按 Ctrl+v 进入可视化模块,选择行后按 Shift+i 进入输入模式,输入 # 注释,最后按 Esc 完成。

问题 8: 如何在 vim 中保存和退出?
回答: 在末行模式下,输入 wqx 保存并退出,输入 q! 不保存退出,输入 q 退出(未修改时)。

问题 9: 如何在 vim 中显示行号?
回答: 在末行模式下,输入 set nu 显示行号,输入 set nonu 取消显示。

问题 10: 如何在 vim 中调用 Linux 命令?
回答: 在末行模式下,输入 !命令,例如 !which ls,即可调用 Linux 命令。