使用 Vi 和 Vim 编辑器打开特定行号的文件
本教程演示了使用 Bash 命令行界面 (CLI) 使用 vi
或 vim
编辑器打开具有特定行号的纯文本文件的方法。
首先,我们将简要介绍 vi
编辑器及其后续 vim
编辑器。然后,我们将立即转到它们在光标指向特定行号时打开文件的用途。
Linux 中的 vi
和 vim
编辑器简介
vi
编辑器是几乎所有 Linux 发行版中最经典的文本编辑器。因此,它不需要在使用前安装任何额外的软件包。
此外,vi
是一个易于使用的基于 CLI 的编辑器,可用于任何纯文本文件。因此,它重量轻且速度快。
vim
编辑器是 vi
编辑器的继承者,代表 Vi IMproved
。它添加了新功能并改进了许多原始的 vi
编辑器。
它遵循 POSIX 1003.2-1 标准,这使得它几乎兼容所有 Unix 和 Linux 发行版,包括 MS-DOS、Macintosh、Amiga、VMS、BeOS、RISC OS、IBM OS/390、Atari MiNT、Windows 95 和 Windows NT。
此外,它与所有 vi
版本兼容(即向上兼容)。除了改进的兼容性之外,经典的 vi
实现最有趣的补充是包含对多级撤消的支持,这是一个图形用户界面。
它还具有多个标签页、Shell 命令的仿真器终端窗口、语法突出显示、拼写检查、改进的代码缩进和多语言支持。
可以使用以下步骤找到完整的差异或添加列表及其综合指南。
- 打开终端,输入
vim
,然后回车。将出现以下屏幕。
- 现在,输入
:help vi_diff.txt
。这将打开vim_diff.txt
文件,其中包含vi
和vim
之间的全面比较。vim_diff.txt
文件的快照如下。
使用 vi
或 vim
编辑器创建新文件
打开终端并输入以下内容。
vi [fileName]
如果 fileName
是现有文件的有效名称,vi
编辑器将打开该文件。如果在当前目录中没有具有 fileName
的文件,则创建一个名称与 fileName
相同的新文件。
在文件中插入文本并保存修改
假设你要创建一个名为 sample.txt
的新文件并将 Hello World
插入其中。按照以下步骤进行操作并保存更改。
- 打开文件。
- 在
vim
编辑器中打开文件后,按i
进入插入模式。每行开头的~
符号表示该行只是空的并且之前没有使用过。
- 开始输入所需的文本或内容。在我们的例子中,开始输入
Hello World
。
- 可以通过按Esc按钮进入命令模式保存更改,输入
-wq
(保存文件并退出编辑器),然后按Enter 键。
在 vi
或 vim
中打开特定行号的文件
上述方法可以以相同的方式打开现有文件并对其进行修改。
每当打开现有文件时,闪烁的光标始终指向第一行的开头。但是,有时用光标指向文件中的特定行号打开文件会很方便。
例如,编译一个长代码文件后,你可能会知道第 563 行存在语法错误。你打开文件并使用箭头键转到第 563 行。
这可能会花费一些时间并减慢你的调试任务。因此,vi
和 vim
编辑器都提供了在特定行号打开现有文件的功能。
vim [+command OR +lineNumber] fileName
要查找特定术语,请突出显示并转到该特定术语。请遵循以下语法。
vim [+/searchTerm] fileName
请确保上述所有命令都可以在 vi
编辑器中正常工作。我们需要在上面的命令中用 vi
替换 vim
。
示例:假设你想在第 56 行打开一个名为 program.c
的文件。只需在 bash 终端中键入以下内容即可。
vim +56 program.c
或者
vim +/56 program.c
上述命令应输出为:
我们可以看到光标指向第 56 行的开头。
vim
编辑器默认不显示行号。我们可以使用 vim
界面中的 set
命令显示行号。
:set number
vi
/vim
界面,按Esc键进入命令模式,输入 lineNumber
,再按Shift +G 跳转所需的行号。Husnain is a professional Software Engineer and a researcher who loves to learn, build, write, and teach. Having worked various jobs in the IT industry, he especially enjoys finding ways to express complex ideas in simple ways through his content. In his free time, Husnain unwinds by thinking about tech fiction to solve problems around him.
LinkedIn