使用 Vi/Vim 编辑器:基础篇
创始人
2024-03-01 21:45:31
0

VI 编辑器是一个基于命令行的、功能强大的文本编辑器,最早为 Unix 系统开发,后来也被移植到许多的 Unix 和 Linux 发行版上。

在 Linux 上还存在着另一个 VI 编辑器的高阶版本 —— VIM(也被称作 VI IMproved)。VIM 只是在 VI 已经很强的功能上添加了更多的功能,这些功能有:

  • 支持更多 Linux 发行版,
  • 支持多种编程语言,包括 python、c++、perl 等语言的代码块折叠,语法高亮,
  • 支持通过多种网络协议,包括 http、ssh 等编辑文件,
  • 支持编辑压缩归档中的文件,
  • 支持分屏同时编辑多个文件。

接下来我们会讨论 VI/VIM 的命令以及选项。本文出于教学的目的,我们使用 VI 来举例,但所有的命令都可以被用于 VIM。首先我们先介绍 VI 编辑器的两种模式。

命令模式

命令模式下,我们可以执行保存文件、在 VI 内运行命令、复制/剪切/粘贴操作,以及查找/替换等任务。当我们处于插入模式时,我们可以按下 EscapeEsc)键返回命令模式

插入模式

在插入模式下,我们可以键入文件内容。在命令模式下按下 i 进入插入模式。

创建文件

我们可以通过下述命令建立一个文件(LCTT 译注:如果该文件存在,则编辑已有文件):

$ vi filename

一旦该文件被创建或者打开,我们首先进入命令模式,我们需要进入输入模式以在文件中输入内容。我们通过前文已经大致上了解这两种模式。

退出 Vi

如果是想从插入模式中退出,我们首先需要按下 Esc 键进入命令模式。接下来我们可以根据不同的需要分别使用两种命令退出 Vi。

  1. 不保存退出 - 在命令模式中输入 :q!
  2. 保存并退出 - 在命令模式中输入 :wq

移动光标

下面我们来讨论下那些在命令模式中移动光标的命令和选项:

  1. k 将光标上移一行
  2. j 将光标下移一行
  3. h 将光标左移一个字母
  4. l 将光标右移一个字母 注意:如果你想通过一个命令上移或下移多行,或者左移、右移多个字母,你可以使用 4k 或者 5l,这两条命令会分别上移 4 行或者右移 5 个字母。
  5. 0 将光标移动到该行行首
  6. $ 将光标移动到该行行尾
  7. nG 将光标移动到第 n 行
  8. G 将光标移动到文件的最后一行
  9. { 将光标移动到上一段
  10. } 将光标移动到下一段

除此之外还有一些命令可以用于控制光标的移动,但上述列出的这些命令应该就能应付日常工作所需。

编辑文本

这部分会列出一些用于命令模式的命令,可以进入插入模式来编辑当前文件

  1. i 在当前光标位置之前插入内容
  2. I 在光标所在行的行首插入内容
  3. a 在当前光标位置之后插入内容
  4. A 在光标所在行的行尾插入内容
  5. o 在当前光标所在行之后添加一行
  6. O 在当前光标所在行之前添加一行

删除文本

以下的这些命令都只能在命令模式下使用,所以首先需要按下 Esc 进入命令模式,如果你正处于插入模式:

  1. dd 删除光标所在的整行内容,可以在 dd 前增加数字,比如 2dd 可以删除从光标所在行开始的两行
  2. d$ 删除从光标所在位置直到行尾
  3. d^ 删除从光标所在位置直到行首
  4. dw 删除从光标所在位置直到下一个词开始的所有内容

复制与黏贴

  1. yy 复制当前行,在 yy 前添加数字可以复制多行
  2. p 在光标之后粘贴复制行
  3. P 在光标之前粘贴复制行

上述就是可以在 VI/VIM 编辑器上使用的一些基本命令。在未来的教程中还会继续教授一些更高级的命令。如果有任何疑问和建议,请在下方评论区留言。


via: http://linuxtechlab.com/working-vi-editor-basics/

作者:Shusain 译者:ljgibbslf 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

摩尔线程开源MuJoCo ...
3月30日,摩尔线程正式开源MuJoCo Warp MUSA。这是...
2026-04-08 11:18:42
AI编程:“全民狂欢” v...
AI让人人都能写代码,但没人告诉你,代码写出来之后怎么办。 4月6...
2026-04-07 16:47:29
教练,我想上AI培训班!
最近一段时间,我总是能在各个地方看到AI职业培训的广告。其中有些说...
2026-04-01 20:38:03
微软开源前沿语音AI家族V...
3月31日早盘,A股传媒赛道高开后迅速冲高,随后有所回调,维持窄幅...
2026-03-31 13:38:02
美团开源原生多模态大模型L...
观点网讯:3月27日,美团正式发布并全面开源原生多模态大模型Lon...
2026-03-28 12:53:28
这些AI工作站看似PC,实...
生成式AI的兴起推动了对能在本地硬件上运行或训练模型的AI工作站的...
2026-03-26 01:40:28

热门资讯

PHP最佳实践(译) 简介PHP是一门复杂的语言,经过多年折腾,使其不同版本之间高度不一致,有时还有些bug。 每个版本都...
值得收藏的 27 个机器学习的... 机器学习 ( Machine Learning ) 有很多方面,当我开始研究学习它时,我发现了各种各...
为什么计量 IT 的生产力如此... 在某些行业里,人们可以根据一些测量标准判定一个人的生产力。比如,如果你是一个零件制造商,可以通过一个...
8个有趣的Linux提示与技巧... 我们时不时给你带来关于Linux的提示与技巧。和这个系列保持一致,这里有8个我们从读者收到最有趣的提...
硬核观察 #885 苹果 AR... 苹果 AR 眼镜被无限期推迟据报道,由于技术上的挑战,苹果公司已经无限期推迟了其轻型增强现实(AR)...
8 个提升你的隐私防护的开源密... 使用一些顶级开源密码管理器,确保你的登录凭证安全无虞。密码管理器是一项非常有用的实用程序。在你想寻找...
Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
2020 年的 GitHub ... 距离 2020 年结束只剩下区区 24 天,我们即将结束魔幻的 2020 ,迎来新的一年,新的一年或...
开源新闻速递:openSUSE... 今日关注openSUSE 项目组的 Dominique Leuenberger 在他的周报中说:“这...
KDE4.11 Beta1 正...   KDE 项目工作组刚刚发布了 KDE Software Compilation 4.11 Bet...