如何在 Linux 上使用Vim编辑远程文件

Vim 是最好的、可高度自由配置的文本编辑器之一,它具有许多其他文本编辑器中找不到的独特功能。

本文将讨论一项有用的功能 —— 从本地系统编辑远程系统的文件。即:您可以编辑存储在远程 Linux 系统中的文件,而无需实际通过SSH或任何其他方法登录。

从 Vim 7.x 版本开始,将 netrw.vim 插件安装为标准插件。该插件可让您通过 ftp,rcp,scp 或 http 编辑文件。

什么是 Netrw 插件?

Netrw(面向网络的读取、写入和浏览)插件支持跨网络进行本地和远程编辑、读取和写入文件。它还支持浏览本地和远程目录。下面具体说明一下。

在 Linux 上使用 Vim 编辑远程文件

使用Vim编辑远程文件非常简单,只需要这样:

vim scp://[email protected]//path_to_file

例子:我的远程系统中有一个名为 info.txt 的文本文件,其内容如下。

Welcome to OSTechNix

现在,我将编辑该文件,并对其进行一些更改,然后保存并关闭该文件。全部来自我的本地系统。

为此,只需运行以下命令:

$ vim scp://[email protected]/info.txt

在这里,您应注意以下三件事。

1、[email protected] (例如 [email protected]) —— sk是远程系统的用户名。 192.168.225.22 是远程系统的IP地址。

2、Single slash (/) —— 如果要编辑存储在远程系统 $ HOME 目录中的文件,则必须使用斜杠将远程系统的IP地址或主机名与文件路径分开。在以上情况下,我已将 info.txt 文件存储在$ HOME目录中,因此使用了单斜杠。

3、// (Double slashes) —— 要指定文件的完整路径,必须使用双斜杠。一个斜杠(/)用于将远程系统的IP地址或主机名与实际文件路径分开;另一个斜杠用于表示远程文件的完整路径。

例如,假设您正在编辑一个名为 info.txt 的文件,该文件位于远程系统的 /home/sk/Documents/ 目录中。在这种情况下,命令将是:

$ vim scp://[email protected]//home/sk/Documents/info.txt

请注意,双斜杠在远程系统的IP地址和文件路径之间。仅在提及远程文件的绝对路径时才需要双斜杠。

验证本地系统中远程文件的内容:

$ ssh [email protected] cat info.txt
[email protected]'s password: 
Welcome to OSTechNix blog

看到没?我在 info.txt 文件中添加了一个额外的单词“ blog”。

有时,出于安全考虑,您可能已更改了默认SSH端口。在这种情况下,请像下面那样提及SSH端口。

$ vim scp://[email protected]:2200/info.txt

将2200替换为您的SSH端口号。

如果您没有 ssh / scp 访问权限,则可以使用其他协议,例如ftp,如下所示。

$ vim ftp://[email protected]/path/to/file

在 Vim 会话中编辑远程文件

如果您已经在Vim会话中,则可以从本地系统编辑远程文件,如下所示。

通过运行以下命令从Vim的新缓冲区中打开文件:

:e scp://[email protected]/info.txt

在文件中进行更改,然后按ESC键并键入 :wq 以保存并关闭文件。

下面是视觉演示:

如您在上面的输出中看到的,

  • 从本地系统打开了Vim编辑器,
  • 然后,在Vim会话的新缓冲区中打开了名为 info.txt 的远程文件,
  • 然后在文件中进行一些更改,
  • 最后,保存更改并关闭文件 (ESC 和 :wq)

您还可以通过运行以下命令在新选项卡中打开文件:

:tabe scp://[email protected]/info.txt

希望本文能对您有所帮助。⚪️

Vim Tips — Edit Remote Files With Vim On Linux

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据