首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用 Vi/Vim 编辑器:基础篇

翻译:Linux中国/Fan Li

linux.cn/article-9323-1.html

原文:http://linuxtechlab.com/working-vi-editor-basics/

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

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

支持更多 Linux 发行版,

支持多种编程语言,包括 python、c++、perl 等语言的代码块折叠,语法高亮,

支持通过多种网络协议,包括 http、ssh 等编辑文件,

支持编辑压缩归档中的文件,

支持分屏同时编辑多个文件。

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

命令模式

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

插入模式

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

创建文件

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

$vifilename

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

退出 Vi

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

不保存退出 – 在命令模式中输入 :q!

保存并退出 – 在命令模式中输入 :wq

移动光标

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

k 将光标上移一行

j 将光标下移一行

h 将光标左移一个字母

i 将光标右移一个字母注意:如果你想通过一个命令上移或下移多行,或者左移、右移多个字母,你可以使用 4k 或者 5j,这两条命令会分别上移 4 行或者右移 5 个字母。

0 将光标移动到该行行首

$ 将光标移动到该行行尾

nG 将光标移动到第 n 行

G 将光标移动到文件的最后一行

{ 将光标移动到上一段

} 将光标移动到下一段

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

编辑文本

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

i 在光标所在行的行首插入内容

I 在光标所在行的行尾插入内容

a 在当前光标之前插入内容

A 在当前光标之后插入内容

o 在当前光标所在行之前添加一行

O 在当前光标所在行之后添加一行

删除文本

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

dd 删除光标所在的整行内容,可以在 dd 前增加数字,比如 2dd 可以删除从光标所在行开始的两行

d$ 删除从光标所在行开始的所有行

d^ 删除从文件开始直到光标所在行的所有行

dw 删除从光标所在位置直到下一个词开始的所有内容

复制与黏贴

yy 复制当前行,在 yy 前添加数字可以复制多行

p 在光标之后粘贴复制行

P 在光标之前粘贴复制行

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

●本文编号435,以后想阅读这篇文章直接输入435即可

●输入m获取到文章目录

推荐↓↓↓

C/C++编程

更多推荐《18个技术类公众微信》

涵盖:程序人生、算法与数据结构、黑客技术与网络安全、大数据技术、前端开发、Java、Python、Web开发、安卓开发、iOS开发、C/C++、.NET、Linux、数据库、运维等。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180209B0AMK300?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券