Contents

使用VI,Nano或Emacs在Linux中修改文件

1. 简介

在本教程中,我们将了解一些可用于在 Linux 中修改或创建新文件的编辑器。

Linux 发行版中有许多可用的命令行编辑器,其中**使用最广泛的编辑器是 Vim、Nano 和 Emacs。**因此,让我们一一回顾。

2. 为什么

最常用的命令行文本编辑器是Vim 编辑器。大多数 Linux 发行版都预装了 Vim。在一些没有预装 Vim 的情况下,我们可以使用以下命令来安装它:

sudo apt-get install vim      # For Debian based systems / Ubuntu
sudo yum install vim          # For CentOS / Fedora

要在 Linux 中使用 Vim 编辑器修改文件,我们可以使用以下命令:

vi testFile

这将打开一个现有文件(如果有的话),或者如果没有同名的现有文件,它将创建一个新文件。一旦我们按下Enter,我们的屏幕将类似于:

/uploads/files_vi_nano_emacs/1.png

在这里,~(波浪号)表示这是一个空行。现在,让我们看看 Vim 是如何工作的。

我们可以在各种不同的模式下使用 Vim 编辑器**:command 和 insert 是最常用的模式。命令模式让我们运行管理任务,例如保存文件或退出,而插入模式让我们将实际文本插入到文件中。**

默认情况下,Vim 将以命令模式启动。我们可以通过键入“i”进入插入模式,并可以通过按“Esc”返回命令模式。

请记住,Vim 编辑器命令区分大小写。我们需要格外小心命令中一些字符的大写。

现在让我们回顾一些关于如何使用 Vim 的基本命令。

2.1. 文件导航命令

我们可以像在 GUI 编辑器中那样使用键盘箭头键在文本中移动。除此之外,Vim 还提供了特殊的键盘键来在文件中移动:

命令 描述
 k  将光标移动到当前行的上一行
 j  将光标移动到当前行的下一行
 h  将光标向左移动一个字符位置
 l  将光标右移一个字符位置

2.2. 文件编辑命令

一旦我们知道如何导航,我们就会想知道哪些命令将编辑文件的内容:

命令 描述
 i  从当前光标位置添加内容
 I  在当前行的开头添加当前光标位置的内容
 o  在当前行之后添加内容作为新行
 x  删除当前光标位置的字符
 D  删除从当前位置到当前行末的文本
 dd  删除整个当前行

2.3. 在文件中剪切、复制和粘贴

最后,我们也可以做一些复制/粘贴操作:

命令 描述
 yy  复制当前行
 v  选择使用箭头或 Vim 光标移动键进行复制
 y  复制标记的文字
 d  剪切标记的文字
 p  将复制的文本粘贴到光标位置之后
 P  将复制的文本粘贴到光标位置之前

2.4. 文件管理任务命令

完成文件编辑后,我们需要记住保存我们的工作:

命令 描述
 :w  保存文件内容
 :q  辞职。如果有未保存的修改,Vim 编辑器会提示保存修改
 :wq 或 ZZ  保存文件然后退出
 :w 文件名  使用新名称“fileName”保存文件。这类似于 GUI 文本编辑器中的“另存为”功能

3. Nano

Nano 可能是我们列表中最容易使用的,因为它的界面可与基于 GUI 的文本编辑器相媲美。大多数 Linux 发行版都预装了 Nano。在某些未预装 Nano 的情况下,我们可以根据其包管理工具使用以下命令:

sudo apt-get install nano      # For Debian based systems / Ubuntu 
sudo yum install nano          # For CentOS / Fedora

要在 Linux 中使用 Nano 编辑器修改文件,我们需要使用以下命令:

nano testFile

如果我们没有任何具有此名称的现有文件,这就是我们屏幕的外观。如果我们打开一个现有文件,该文件的内容将显示在屏幕上:

/uploads/files_vi_nano_emacs/2.png

顶部是文件的 Nano 版本号和名称。底部是一个快捷栏,其中包含最常用的命令。这里的*^符号表示 Ctrl 键,因此^Y*表示 Ctrl+Y

让我们在使用 Nano 时记住一些事情:

  • Nano 没有自带模式,所以我们可以直接在编辑器中开始输入
  • Nano 命令不区分大小写,因此 Ctrl+o 与 Ctrl+O 等同

让我们回顾一些关于如何使用 Nano 编辑器的基本命令。

3.1. 文件导航命令

我们可以使用箭头键遍历文件。Nano 编辑器还为它提供了特殊的快捷键:

命令 描述
 Ctrl+P  将光标移动到当前行的上一行
 Ctrl+N  将光标移动到当前行的下一行
 Ctrl+B  将光标向左移动一个字符位置
 Ctrl+F  将光标右移一个字符位置
 Ctrl+空格  当前行向前移动一个单词

3.2. 在文件中剪切、复制和粘贴

我们还可以执行复制/粘贴操作:

命令 描述
 Ctrl+6  设置标记并遍历要剪切/复制的文件
 Alt+6  复制标记的文字
 Ctrl+k  剪切标记的文本
 Ctrl+u  粘贴标记的文本

3.3. 文件管理任务命令

完成所有编辑后,我们要保存或放弃我们的更改:

命令 描述
 Ctrl+O  保存文件内容。Nano 将提示输入文件名
 Ctrl+X  相当

4.Emacs

Emacs 是基于 Linux 和 UNIX 的系统中可用的最古老和最通用的文本编辑器之一。emacs 具有像 Vim 一样的特性和优势。同时,它具有类似于 Nano 的易于记忆的命令。要安装 emacs,我们可以根据我们的 Linux 发行版使用以下命令:

sudo apt-get install emacs     # For Debian based systems / Ubuntu 
sudo yum install emacs         # For CentOS / Fedora

要在 Linux 中使用 emacs 编辑器修改文件,我们可以这样做:

emacs tempFile

/uploads/files_vi_nano_emacs/3.png

顶部是编辑部分,也称为主缓冲区。底部是状态栏,显示文件名和当前光标位置等详细信息。

最后一行被称为 emacs 用来与用户交互的迷你缓冲区。emacs 中的大多数命令以Ctrl键或 Meta 键开始(这可以是 Alt或 Option , 具体取决于操作系统)。

** Ctrl简称为“C”,而 Meta 简称为“M”。Esc键以缩写形式表示为“E”。**

请记住,Emacs 没有模式。我们可以直接开始在编辑器中输入。

让我们回顾一些关于如何使用 Emacs 的基本命令。

4.1. 文件导航命令

我们可以使用键盘箭头键浏览文件或使用快捷方式:

命令 描述
 C-p  将光标移动到当前行的上一行
 C-n  将光标移动到当前行的下一行
 C-b  将光标向左移动一个字符位置
 C-f  将光标右移一个字符位置
 M-f  当前行向前移动一个单词
 M-b  当前行向后移动一个单词
 C-a  移动到行首
 C-e  移动到行尾

4.2. 在文件中剪切、复制和粘贴

我们也可以做一些复制/粘贴操作:

命令 描述
 C-空格  设置标记并遍历要剪切/复制的文件
 E-w  复制标记的文本
 C-w  剪切标记的文本
 C-y  粘贴标记的文本

4.3. 文件管理任务命令

最后,让我们保存我们的工作:

命令 描述
 C-x C-s  将内容保存到文件
 C-x C-c  退出 emacs 编辑器而不保存我们所做的更改