我必须编辑一些放置在我可以通过 ssh 访问的服务器上的文件。
我更愿意vim
在我的工作站上自定义编辑这些文件(我无权更改vim
远程服务器上的设置)。有时我想用sublime text
或其他 GUI 编辑器编辑文件。
当然,我可以下载这些文件,在本地编辑它们并将它们上传回服务器。有没有更优雅的解决方案?
Flo*_*elf 146
你可以通过scp
这样的方式做到这一点:
vim scp://user@myserver[:port]//path/to/file.txt
Run Code Online (Sandbox Code Playgroud)
注意//
server 和 path 之间的两个斜杠,这是正确解析绝对路径所必需的。(第一个斜杠是语法,而第二个斜杠像往常一样指定远程用户的根目录。要从主目录开始,你会这样做[:port]/~/path/to/file.txt
。)[:port]
是可选的。
这由 vim 的netrw.vim标准插件处理。支持其他几种协议。
shi*_*ams 89
您可以通过使用 sshfs 将远程文件夹挂载为文件系统来实现。为此,首先需要一些先决条件:
#issue all these cmds on local machine
sudo apt-get install sshfs
sudo adduser <username> fuse #Not required for new Linux versions (including Ubuntu > 18.04)
Run Code Online (Sandbox Code Playgroud)
现在,执行安装过程:
mkdir ~/remoteserv
sshfs -o idmap=user <username>@<ipaddress>:/remotepath ~/remoteserv
Run Code Online (Sandbox Code Playgroud)
之后,只需进入挂载文件夹并使用您自己的本地自定义vim。
可以使用多个选项,不仅仅是“scp”;请参阅:https ://www.vim.org/scripts/script.php?script_id=1075
我更喜欢使用“rsync”,因为对我来说“diff”不能与 scp 一起正常工作。
示例 - 在不同远程服务器(hostname01.domain.my 和 hostname02.domain.my 等)上使用“/tmp/test”文件启动 vim,使用 bash 扩展,垂直分割:
vimdiff -O rsync://hostname{01,02,03}.domain.my:/tmp/test
小智 6
当您说您无权编辑 Vim 设置时,根据您的意思,可能有一种方法可以以您想要的方式在服务器上使用 Vim。如果您无法更改您的用户.vimrc
(例如,因为您以共享用户身份登录)但您仍然可以创建文件,请将其创建为一个名为的文件,例如,Loom.vimrc
然后使用-u
开关调用 Vim :
vim -u ~/Loom.vimrc file_to_edit
然后你甚至可以使用别名:alias vim='vim -u ~/Loom.vimrc'
将允许你以通常的方式使用 Vim,它仍然会加载你的自定义.vimrc
文件。这个别名在您注销后不会保留,因此您无需担心其他人不小心使用了您定制的 Vim。
归档时间: |
|
查看次数: |
78431 次 |
最近记录: |