我是一个巨大的vim爱好者,但是我找不到打开文件时让vim遵循符号链接(symbolic link)的方法。
例如,我的主目录中的所有点文件都被符号链接(symbolic link)到.zprezto目录中:
.vimrc -> ~/.zprezto/runcoms/vimrc
.zshrc -> ~/.zprezto/runcoms/zshrc
我将.zprezto的分支保留在一个私有(private)的git repo中,然后将其用于使我的所有Mac/Linux机器和服务器保持同步。每当我在vim中编辑这些文件中的任何一个时,我用于git管理的插件均无法正常工作,因为调用
vim ~/.zshrc
时访问的符号链接(symbolic link)不在git repo之外。当我从命令行打开vim时,有什么方法可以迫使vim跟随该链接并打开实际文件,从而使缓冲区位于git repo中?试过这个:
function vim() {
local ISLINK=`readlink $1`
/usr/local/bin/vim ${ISLINK:-$1}
}
但效果不如我希望的那样好,因为它将我限制在一个没有选项的文件中。我想知道在我编写一个可以考虑所有边缘情况的大型包装函数之前,是否还有更明智的方法可以做到这一点。
最佳答案
因此,看起来好像vim内置没有任何东西可以允许这种情况。我玩了包装函数,结果比我想象的要容易一些。这是最终结果:
function vim() {
args=()
for i in $@; do
if [[ -h $i ]]; then
args+=`readlink $i`
else
args+=$i
fi
done
/usr/local/bin/vim -p "${args[@]}"
}
只需添加到您的.zshrc
(或您最喜欢的shell的配置文件)即可使用它。关于linux - 从命令行打开文件时,使vim遵循符号链接(symbolic link),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30791692/