在远程会话中使用本地点文件

在远程会话中使用本地点文件

我有几个服务器上有我的个人帐户,我创建了一个 SVN 存储库来包含我的主目录,以便我可以在这些服务器上管理我的点文件,我发现它运行良好并且使我可以轻松跟踪我所做的更改(以前这些更改很容易丢失/覆盖)。

我面临的新问题是,在工作中我现在被迫与一群同事共享两个帐户中的一个(部署/根),因此我无法设置太多的全局选项。

我能做些什么来让另一端在我登录时的会话中看到我的 .vimrc 吗(或者一些 kludge 和 $VIMRC 设置使得 vim 加载我本地的那个?)vim 是主要的,但将这个原则扩展到其他人身上也很好。

答案1

这是一个老问题,但我想我会添加我的建议,以防其他人遇到类似的问题而他们无法提出更好的解决方案:

对于 Vim,一个简单的解决方案是运行:

vim -u /my/personal/repos/dotfiles/.vimrc

但这将使用帐户的.vim/vimfiles目录结构。如果服务器是某种形式,*nix并且您想要运行具有个性化环境变量的 POSIX 兼容 shell,请启动具有不同 HOME 值的子 shell,例如以下命令将启动 Bash 登录 shell:

HOME=/my/personal/repos/dotfiles/ bash -l

上述命令将会源/my/personal/repos/dotfiles/.profile或者.bash_profile和子 shell 产生的任何其他进程将会继承其环境变量(包括 HOME)。

答案2

我觉得https://github.com/fsquillace/kyrat满足您的需要。

我早在 sshrc 诞生之前就写过它,与 sshrc 相比,它有更多好处:

  • 它不需要两台主机都依赖 xxd(远程主机上可能不可用)
  • Kyrat 使用更高效的编码算法
  • 它只有~20行代码(真的很容易理解!)
  • 无需 root 访问权限或对远程主机进行任何安装

例如:

$> echo "alias q=exit" > ~/.config/kyrat/bashrc
$> kyrat [email protected]
myserver.com $> q
exit

相关内容