我在本地机器上创建了一个自定义的.vimrc
。 此外,我还有几个我觉得有用的插件。现在我经常使用远程服务器工作。但每次为了工作,我都需要花费/浪费一些时间来复制我的本地环境,以便我可以工作(例如等)。 我想知道有没有办法让我不必这样做,但不知何故我的配置在每个远程服务器中都可用/“可见” ?.bashrc
vim
ssh
.vimrc
ssh
答案1
您可以使用自定义脚本(例如)创建 git 或 mercurial 存储库~/myscripts
。将其克隆到需要的位置。此外,添加一个脚本来创建指向主目录中 myscripts 目录的符号链接~/
,或许还可以添加一个脚本来从各处提取更改并进行更新。
嗯,根据你自己的需要来调整吧...
答案2
和 pvoosten 一样,我建议保留一个 git repo。我已将别名放入我的 .bashrc 中以克隆它,然后运行一个脚本,该脚本将 ~/homedir 文件符号链接回该 repo 签出。
它是极好的快速而肮脏,但看起来有点像这样(随意改进 - 我建议ls ~/repo/home/ | grep -v setup-links.sh
在 setup-links.sh 中做一些类似目录列表的事情,以避免需要糟糕的 filePaths=):
您还可以让 .bashrc 别名使用 ssh 和 scp 在机器上远程工作,并避免下面的步骤 2 和 3,但无论如何它对我来说是有效的。
这意味着你可以这样做:
- ssh-copy-id (主机)设置无密码 ssh
- scp .bashrc(主机)复制你的 bashrc
- ssh (主机) -A登录主机并转发 ssh 代理
- 设置主页克隆 git repo,并设置链接
显然不要把你的 ssh 密钥放入 git repo 或 gpg 密钥环中
.bashrc(它本身在 git 中,并且在步骤 4 之后将成为符号链接):
alias setuphome='git clone (your git repo) ~/repo/home && cd ~/repo/home && ~/repo/home/setup-links.sh 2>/dev/null remove ; ~/repo/home/setup-links.sh make 2>/dev/null; cd ~'
设置链接
filePaths=".bashrc
.tmux.conf
.vimrc
.bash_profile
.gitconfig
.ssh/config
.vim"
if [ "$1" == 'make' ]; then
echo 'Making links'
for filePath in $filePaths; do
grep '/' <<< $filePath >/dev/null && mkdir -p $(dirname $filePath) 2>/dev/null
ln -s $(pwd)/$filePath ~/$filePath
done
elif [ "$1" == 'remove' ]; then
echo 'Removing links'
for filePath in $filePaths; do
unlink ~/$filePath
done
else
echo 'Error, $1 should be "make" or "remove"'
exit 1
fi
答案3
将您的资料保存在 git repo 中,其中包括用于设置的脚本。
例如,这是我的点文件:
https://github.com/wincent/wincent
这是我运行的“安装”它们的脚本:
https://github.com/wincent/wincent/blob/master/bootstrap.rb
如果您搜索“github 点文件”,GitHub 上还有很多其他存储库。