收集云服务器优惠信息
记录云服务器使用心得

Linux系统安装和使用Vi/Vim命令作为全文编辑器的详细教程

Vi是第一个为Unix编写的全屏文本编辑器,尽管它的目的是小而简单,但对于专门使用GUI文本编辑器(例如NotePad++或gedit)的朋友来说,使用起来可能有点困难。

要使用Vi,必须首先了解这个强大的程序运行的3种模式,以便稍后开始学习其强大的文本编辑程序。

请注意,大多数现代Linux发行版都附带了Vi的变体,称为Vim(“ Vi 改进版”),它比原始Vi支持更多功能。因此,在本教程中,我们将互换使用Vi和Vim。

如果你的发行版没有安装Vim,可以按如下方式安装:

$ sudo apt install vim [Debian、Ubuntu和Mint]
$ sudo yum install vim [RHEL/CentOS/Fedora和Rocky/AlmaLinux]
$ sudo emerge -a sys-apps/vim [Gentoo Linux]
$ sudo apk add vim [Alpine Linux]
$ sudo pacman -S vim [Arch Linux]
$ sudo zypper install vim [OpenSUSE]    

为什么要学习Vi?

学习Vi编辑器至少有以下两个方面的原因:

  1. Vi始终可用(无论使用什么发行版),因为POSIX需要它。
  2. Vi不会消耗大量的系统资源,并且允许我们执行任何可以想象的任务,而无需将手指从键盘上移开。

另外,Vi有非常丰富的内置手册,可以在程序启动后立即使用:help命令启动。该内置手册比Vi/Vim的手册页包含更多信息。

Vim编辑器帮助

启动Vi编辑器

要启动Vi,请在命令提示符中键入Vi:

# vi

启动Vi编辑器

然后按i进入插入模式,就可以开始打字了。

启动Vi/Vim 的另一种方法是:

# vi filename

这将打开一个名为filename的新缓冲区(稍后将详细介绍缓冲区),你可以之后将其保存到磁盘。

了解Vi模式

Vi编辑器有多种模式,每种模式都有不同的用途并允许用户执行特定的操作。以下是你应该注意的主要模式:

Vi命令行模式

在命令模式下,Vi允许用户浏览文件并输入Vi命令,这些命令是一个或多个字母的简短且区分大小写的组合。几乎所有命令都可以以数字为前缀来重复该命令的次数。

例如,yy(或Y)复制整个当前行,而3yy(或3Y)复制整个当前行以及接下来的两行(总共3行)。

我们始终可以通过按Esc键进入命令模式(无论正在使用哪种模式)。事实上,在命令模式下,键盘按键被解释为命令而不是文本,这一事实往往会让初学者感到困惑。

Vi Ex模式

在Ex模式下,我们可以操作文件(包括保存当前文件和运行外部程序)。要进入此模式,必须在命令模式下键入冒号 ( :),后面紧跟需要使用的前模式命令的名称。之后,Vi自动返回到命令模式。

Vi插入模式

在插入模式下(通常使用字母i进入该模式),只需输入文本即可。大多数击键都会导致屏幕上出现文本(一个重要的例外是Esc键,它可以退出插入模式并返回到命令模式)。

Vi命令用法

下表显示了常用的Vi命令列表。文件编辑命令可以通过在命令后附加感叹号来强制执行(例如,:q!强制退出而不保存)。

按键命令 功能描述
h或向左箭头 向左移动一个字符
j或向下箭头 往下走一行
k或向上箭头 上升一行
l(小写L)或右箭头 向右移动一个字符
H 转到屏幕顶部
L 转到屏幕底部
G 转到文件末尾
 w 向右移动一个字
 b 向左移动一个单词
 0(零) 转到当前行的开头
^ 转到当前行的第一个非空白字符
$ 转到当前行的末尾
Ctrl-B 返回一屏幕
Ctrl-F 前进一屏幕
i 在当前光标位置插入
I(大写的i) 插入到当前行的行首
J(大写j)  将当前行与下一行连接(移动下一个队列)
A 追加到当前光标位置之后
o(小写O) 在当前行之后创建一个空行
O(大写o) 在当前行之前创建一个空行
r 替换当前光标位置的字符
R 在当前光标位置覆盖
x  删除当前光标位置的字符
X  删除当前光标位置之前(左侧)的字符
dd  剪切(以便稍后粘贴)整个当前行
D  从当前光标位置剪切到行尾(该命令相当于d$)
yX  发出移动命令X,从当前光标位置复制(复制)适当数量的字符、单词或行
yy或Y  复制(复制)整个当前行
p  粘贴到当前光标位置之后(下一行)
p  粘贴到当前光标位置之前(上一行)
.  重复上一个命令
u  撤消最后一个命令
U  撤消最后一行中的最后一个命令。只要光标仍在线上,此操作就会起作用。
n  查找搜索中的下一个匹配项
N  查找搜索中的上一个匹配项
:n  下一个文件,当指定多个文件进行编辑时,该命令加载下一个文件
:e文件  加载该文件来代替当前文件。
:r文件  将文件内容插入到当前光标位置之后(下一行)
:q  退出而不保存更改
:w文件  将当前缓冲区写入文件,要附加到现有文件,请使用:w>>file
:wq  写入当前文件的内容并退出,相当于x!和ZZ
:r!  执行命令并将输出插入到当前光标位置之后(下一行)

Vi选项

以下选项在运行Vim时会派上用场(需要将它们添加到~/.vimrc文件中)。

# echo set number >> ~/.vimrc
# echo syntax on >> ~/.vimrc
# echo set tabstop=4 >> ~/.vimrc
# echo set autoindent >> ~/.vimrc
  • 当Vi打开现有文件或新文件时,set number显示行号。
  • 语法打开打开语法突出显示(对于多个文件扩展名)以使代码和配置文件更具可读性。
  • set tabstop=4将制表符大小设置为4个空格(默认值为8)。
  • set autoindent将先前的缩进延续到下一行。

在Vi中搜索和替换文本

Vi能够根据搜索将光标移动到特定位置(在单行或整个文件上),它还可以在有或没有用户确认的情况下执行文本替换。

在一行内搜索

f命令搜索一行并将光标移动到当前行中下一个出现的指定字符。

例如,该命令会将光标移动到当前行中fh字母的下一个实例。请注意,你要搜索的字母fh字符都不会出现在屏幕上的任何位置,但按Enter后该字符将突出显示。

例如,这是我在命令模式下按f4后得到的结果。

在Vi中搜索字符串

搜索整个文件

使用/命令,后跟要搜索的单词或短语。可以使用带有n命令的前一个搜索字符串或后一个(使用N命令)来重复搜索。这是在命令模式下输入/Jane的结果。

Vi在文件中搜索字符串

搜索和替换文本

Vi使用命令(类似于sed)对一系列行或整个文件执行替换操作。要将整个文件的单词“ big”更改为“ small”,必须输入以下命令:

:%s/big/small/g

注意:命令开头的冒号。

冒号 ( :) 开始ex命令,s在本例中(用于替换),%是一个快捷方式,意思是从第一行到最后一行(范围也可以指定为nm表示“从第n行到第m行”),big是搜索模式,而small是替换的文本,g表示在文件中每次出现搜索字符串时执行替换操作。

或者,可以将c添加到命令末尾,以在执行任何替换之前要求确认。

:%s/big/small/gc

在用新文本替换原始文本之前,vi/m会向我们显示以下消息。

在Vi中替换字符串

  • y:执行替换(是)
  • n:跳过本次出现并转到下一个(否)
  • a:在此模式以及该模式的所有后续实例中执行替换
  • q或Esc:退出替换
  • l:执行此替换并退出(最后一次)
  • Ctrl-e、Ctrl-y:分别向下和向上滚动以查看建议替换的上下文。

在Vi中编辑多个文件

可以在命令提示符中输入vim file1 file2 file3:

# vim file1 file2 file3

首先,vim将打开file1。要切换到下一个文件(file2),需要使用:n命令。当我们想要返回到之前的文件时,:N就会完成这个任务。

为了从file1切换到file3,可以进行以下操作。

:buffers命令将显示当前正在编辑的文件的列表:

:buffers

编辑多个文件

命令:buffer 3(末尾不带s)将打开file3进行编辑。

在上图中,井号 ( #) 表示该文件当前已打开但在后台,而%a则表示当前正在编辑的文件。此外,文件编号后面的空格(上图中的3)表示该文件尚未打开。

临时Vi缓冲区

要将几行连续的行(例如4行)复制到名为a (不与文件关联)的临时缓冲区中,并将这些行稍后放置在当前Vi部分中的文件的另一部分中,需要进行以下操作:

  • ESC键以确保我们处于Vi命令模式。
  • 将光标放在我们要复制的文本的第一行上。
  • 键入“ a4yy ”将当前行以及后续3行复制到名为a的缓冲区中。我们可以继续编辑文件-不需要立即插入复制的行。
  • 当到达复制行的位置时,在p或P之前使用“ a”将复制的行插入名为a的缓冲区中:
    1. 键入“ ap”将复制到缓冲区中的行插入到光标所在的当前行之后。
    2. 键入“ aP”将复制到缓冲区 a 中的行插入到当前行之前。

如果愿意的话,可以重复上述步骤,将缓冲区的内容插入到文件中的多个位置。当当前窗口关闭时,临时缓冲区(例如本节中的缓冲区)将被释放。

总结

正如我们所看到的,Vi/Vim是一个强大且多功能的CLI文本编辑器,在Linux系统中被广泛的应用。另外,VI编辑器还有一些扩展技能,如果感兴趣的话,可以搜索相关资料进行了解。

赞(0)
网站声明:本文内容由趣云笔记原创,部分资源收集于网络,如有侵权请联系企鹅:2472781824删除。
文章名称:《Linux系统安装和使用Vi/Vim命令作为全文编辑器的详细教程》
文章链接:https://www.ecscoupon.com/1379.html
本站资源仅供个人学习交流,未经允许不得转载,更不允许用于商业用途。如需转载,请注明来源,感谢理解!