在云服务器上安装和使用 Vim 文本编辑器
介绍
最强大的命令行文本编辑器之一是 vim 编辑器。vim 建立在 1976 年推出的编辑器“vi”的基础上,增加了额外的功能和能力,同时保留了其前身的编辑风格。
本指南将介绍 vim 的安装和基本用法。
目录
安装
由于 vim 在 Linux 命令行上的广泛使用,它几乎在每个发行版的默认存储库中都有。
在 Ubuntu 和 Debian 上,使用 apt-get 安装:
sudo apt-get install vim
在 Fedora 和 CentOS 上,使用 yum 安装:
sudo yum install vim
在 Arch Linux 上,可以通过 packman 安装 vim:
sudo pacman -S vim
Vim 现在应该已经正确安装。
打开 Vim
默认情况下,当不带任何参数调用 vim 时,它会打开一个空白文档。根据您的发行版,可能会有简介和许可消息。当您开始使用编辑器时,这些消息就会消失。
但是,我们不会用空白文档来打开 vim。我们将创建一个名为“newfile”的示例文档来展示 vim 的功能。
echo "This is a new file. Here is the second line And here is the third line. Some more text is on this line. We will edit this file in vim. It will be great fun." >> newfile
现在,我们将用 vim 打开刚刚创建的文件。
vim newfile
模态编辑
vim 与大多数其他编辑器的主要区别在于,vim 是一种“模式”编辑器。大多数其他编辑器只有一种模式。在这些编辑器中,复制文本等特殊编辑功能是通过按住一个或多个修饰键然后按常规键来执行的。Vim 使用不同的模式将这些功能与常规文本输入任务区分开来。
普通模式
用于编辑操作。复制、粘贴、移动、删除和更改文本均可在此模式下完成。
在 vim 中,编辑功能通过将 vim 置于“正常”模式来执行。正常模式是 vim 在打开程序时所处的模式。此模式用于快速浏览文本文档并执行编辑。它不用于输入文本。
- [esc] - 按“escape”键进入正常模式。
插入模式
用于在文档中插入新文本。有多种方式可以进入插入模式。
要输入文本,vim 必须转换到“插入”模式。插入模式类似于大多数其他文本输入程序的输入界面。您输入的内容将显示在文档的屏幕上。所有常规键都会在当前光标位置产生相应的字符。
- i—在当前光标位置进入插入模式。
- a—在当前位置后进入插入模式。
- I—在当前行的开头进入插入模式。
- A—在当前行末尾进入插入模式。
视觉模式
用于视觉选择。普通模式下可用的许多命令可应用于文本的特定突出显示部分。
vim 使用的第三种模式是“可视化”模式。该模式用于可视化地选择和操作文本。文本区域被高亮显示,作为后续编辑或格式化命令的目标。
- v - 进入常规可视模式。通过上下左右移动光标进行选择。
- V - 进入可视行模式。通过上下移动,可选择从第一个字符到最后一个字符的整行。
- [ctrl]-v - 进入可视块模式。使用可展开和收缩的框进行选择。使用此方法可以选择多行的部分内容。
命令模式
用于发出 vim 命令。使用冒号键进入此模式。
用于复杂编辑、更改设置和控制 vim 本身的附加模式是“命令”模式。此模式用于保存文档、退出程序、执行复杂搜索和许多其他操作。
- : ——进入命令模式。
导航
基本导航
始终可以使用箭头键来浏览文本,但 vim 提供了在文档中移动的更快方法。在正常模式下,您可以分别使用 h、j、k 和 l 键向左、向下、向上和向右移动。
- h——向左移动。
- j——向下移动。
- k——向上移动。
- l——向右移动。
这些方向键乍一看可能让人困惑,违反直觉,但选择它们是有原因的。它们位于典型键盘的主行。这意味着用户的手从静止位置移动的幅度比使用传统箭头键时要小得多。
高级导航
还有其他导航快捷键。以下是一些最有用的快捷键:
- gg——移动到文档顶部。
- G - 移至文档底部。以数字开头可转至该行号。
- w - 移动到下一个单词。以数字开头可移动那么多单词。
- b - 向后移动一个单词。以数字开头可向后移动那么多单词。
- e - 移至单词末尾。以数字开头可移动相应数量的单词。
- 0——移至行首。
- $ ——移至行尾。
編輯
在 vim 中编辑文本是通过在正常模式下发出命令来完成的。
重要的是要意识到,vim 中的编辑命令与移动命令结合使用时非常强大。导航部分中的任何内容都可以用作方向。例如,您可以使用“w”对后面的单词执行编辑命令。
以下是您可以选择的一些不同操作:
删除文本
- x——删除光标位置下的字符。
- d - 发出命令后按您指定的方向删除。例如,“dl”删除右侧的一个字符。
- dd——删除一行。
- D——从当前位置删除到行尾。
更改文本
- r - 用其他字符替换光标下的字符。发出此命令后,输入要替换的字符。
- c - 按照以下方向更改文本。例如,“cw”更改当前单词。发出此命令后,vim 将进入插入模式,以便您提供替换文本。
- C - 将文本更改为行尾。这将使 vim 处于插入模式。
复制和粘贴
- y - 按以下方向复制(或“拉出”)。
- yy——复制整行。
- Y——复制直至行末。
- p-将最后复制(或删除!)的行粘贴到当前行下方。
- P——将最后复制(或删除!)的行粘贴到当前行上方。
杂项编辑
- u—撤消上一个操作。
- <ctrl>-r——重做上一个操作。
- J——将下一行连接到当前行。
管理文档
Vim 主要通过命令模式来管理文档。通过在每个命令前输入“:”来发出命令。- :q - 退出 vim。如果更改尚未保存,此操作将失败。
- :q! ——退出 vim 并放弃所有未保存的更改。
- :w - 保存更改。如果您想要保存到其他位置或这是您第一次指定保存位置,请添加空格和文件名。
- :e——编辑后面的文件。
- :bn——编辑 vim 打开的下一个文件。
- :bp——编辑 vim 打开的上一个文件。
综合起来
如前所述,vim 的强大之处在于它能够将不同的命令串联在一起。理解这一概念的最简单方法是将 vim 命令视为一种语言。普通模式下的键可以代表形容词、动词和宾语。
例如,要复制 4 个单词,只需将该短语翻译成 vim 可以识别的命令即可。在本例中,它将是:
y4w
要从当前行删除直到文件末尾,请输入:
dG
了解 vim 编辑命令中使用的一些惯例也很有帮助。例如,双字母通常应用于整行。我们可以用以下命令复制整行:
yy
另一方面,大写版本的编辑命令通常以当前光标位置到行尾为目标。例如,要从这里更改文本直到行尾,您可以使用:
C
要在多行上执行相同的动作,只需在命令中添加数字前缀。这会将文本从当前位置更改为下一行的末尾:
2C
还有许多其他强大的 vim 使用技巧,超出了本指南的范围。如果您想了解更多,vim 的内置教程界面是一个很好的开始。它不会涵盖高级主题,但它会让您很好地了解如何使用 vim 进行基本编辑。您可以从以下位置开始:
vimtutor