如何使用vi编辑器打开两个不同的文件?

san*_*ndy 22 command-line vi

我在不同的位置有两个文件,我想用相同的vi命令打开这两个文件。我该怎么做?

  • 文件 1 位置: /home/rs/rest.pl
  • 文件 2 位置: /home/dev/grd.pl

mur*_*uru 32

正如 Zanna 所指出的,对 Vi 使用多个参数。但是,默认情况下 Vi(m) 不会立即显示文件。它们被加载到缓冲区中,您可以使用:bn和切换到下一个(或上一个)缓冲区:bp。如果要同时查看文件,请使用窗口(拆分):

vim /some/file1 /some/file2 -o # horizontal split
vim /some/file1 /some/file2 -O # vertical split
Run Code Online (Sandbox Code Playgroud)

或标签:

vim /some/file1 /some/file2 -p # Open up to 10 files in tabs
Run Code Online (Sandbox Code Playgroud)

然而,缓冲区实际上是 Vim 用于操作文件的工具,选项卡和窗口只是可视化排列它们的方式。习惯于直接使用缓冲区,而不是通过多个窗口或选项卡。

(这些选项也适用于 Ubuntu 的vivim.tiny默认情况下vim-tiny是使用 构建的+windows,因此启用了选项卡和窗口。)

也可以看看:


Zan*_*nna 12

您可以使用多个参数调用 call vi(或 vim)

vi /home/rs/rest.pl /home/dev/grd.pl
Run Code Online (Sandbox Code Playgroud)

您在第一个文件中,但两个文件都已打开。您可以使用:n(下一个文件)和:N(上一个文件)在它们之间切换(esc如有必要,按下可退出插入模式)。

我注意到这些文件位于不同用户的主目录中,因此您可能没有普通用户的权限。要编辑您的用户没有足够编辑权限的文件,您需要sudo. 您可以使用sudo初始运行命令,或者在保存文件时使用技巧:w !sudo tee %

  • +1 为`:w !sudo tee %` 技巧! (2认同)