我的工作往往涉及使用 SSH 连接到各种机器,然后使用 vim 编辑这些机器上的文件。问题是我必须不断地复制我的 .vimrc 文件。打开vim而且没有任何设置很烦人。是否可以将我的 vim 设置随身携带从一台机器到另一台机器,而无需在任何地方手动复制它?
Tom*_*ner 48
与其将 .vimrc 带到您需要处理的每个服务器,为什么不从本地 vim 编辑远程文件:
在 vim/gvim 中,运行:
:e scp://remoteuser@server.tld//path/to/document
Run Code Online (Sandbox Code Playgroud)
或者像这样启动 vim:
vim scp://remoteuser@server.tld//path/to/document
Run Code Online (Sandbox Code Playgroud)
这会在适当的位置无缝地打开文件(它实际上是在本地复制文件),并且在您保存时,它会将编辑过的文件发送回服务器。
它要求输入 ssh 密码,但这可以通过 ssh 密钥简化。
正如其他人所提到的,这种方法的唯一缺点是您不会像直接在机器上工作时那样获得路径/文件竞争。
有关更多信息,请查看以下教程。
sun*_*256 24
我感觉到你的痛苦。我的所有 ~/.*rc 文件都在版本控制 (Subversion) 之下,自从我 1998 年开始使用 CVS 以来一直运行良好。一种方法是,当您站在主目录中时,像这样检查所有 rc 文件:
svn co svn+ssh://user@host/path/to/repo/trunk/home/user .
A .signature
A .vimrc
A .bashrc
A .screenrc
A .psqlrc
[...]
Checked out revision 7645.
Run Code Online (Sandbox Code Playgroud)
这样,当您运行 svn update 时,配置文件也将在各种计算机上同步和更新。
chm*_*eee 18
您可以制作一个 bash 脚本以在您每次登录时自动复制它,如下所示:
#!/usr/bin/env bash
scp ~/.vimrc $1:
ssh $1
Run Code Online (Sandbox Code Playgroud)
例如,您可以将其称为 ssh_vim。这不是一个理想的解决方案,但会解决您的问题。
您可以改进它以首先检查是否已经存在。如果您不总是在同一台机器上运行 ssh,您可以更改脚本以从另一台机器上的 scp 获取文件。
编辑1
在相关说明中,您还可以使用 sshfs 挂载远程机器的文件系统。这样你就可以从你的环境和工具(不仅仅是 .vimrc)中受益,并且你有 shell 完成(你没有使用 scp://)。
编辑2
我刚刚发现您可以使用 scp:// 获取 .vimrc 文件,如下所示:
:source scp://you@your_computer//yourpath/.vimrc
Run Code Online (Sandbox Code Playgroud)
这在 vim 命令行中有效,但目前我不知道如何自动化它。它似乎不适用于 '-u' 开关,也不适用于 .vimrc 或 $VIMINIT。
编辑3
我找到了!您可以这样做以使用从您的参考主机中获取的 .vimrc 启动 vim:
vim -c ':source scp://you@your_computer//yourpath/.vimrc'
Run Code Online (Sandbox Code Playgroud)
选项 '-c' 在启动 vim 后立即执行命令。
您可以在您选择的 shell 中创建别名以避免键入。在 bash 中,它会是这样的:
alias vim="vim -c ':source scp://you@your_computer//yourpath/.vimrc'"
Run Code Online (Sandbox Code Playgroud)
omr*_*umi 14
如果您使用公钥身份验证,您可以在您的~/.ssh/config:
Host *
PermitLocalCommand yes
LocalCommand bash -c 'scp -P %p %d/.vimrc %u@%n: &>/dev/null &'
Run Code Online (Sandbox Code Playgroud)
我比上面建议的脚本技巧更喜欢它,因为它不会干扰ssh命令的调用(在指定额外参数等时)
| 归档时间: |
|
| 查看次数: |
27689 次 |
| 最近记录: |