Plo*_*uff 6 windows vim configuration cygwin
我正在尝试设置我的cygwin环境.由于我是vim用户,我想在cygwin和windows上轻松使用它.
我首先关心的是在两者之间共享配置(.vimrc/_vimrc和.vim/_vimfiles). 实际上,我最近在github上托管我的vim配置,并尝试通过github更新我的插件.
所以我做了一些谷歌搜索找到最好的方法,但我没有找到一个"好的解决方案"(虽然不容易定义......).无论如何,很多人似乎同意这样一个事实,即最好使用windows-gvim而不是cygwin-gvim(由于X问题我没能使用cygwin-gvim,但我不想再看了).所以第一个问题:这是真的吗?!
然后我试着找到一些基于windows-gvim的解决方案.目前,我已将win env链接起来.在cyg环境中:
.vim -> /cygdrive/d/Program Files/Vim/vimfiles/
.vimrc -> /cygdrive/d/Program Files/Vim/_vimrc
Run Code Online (Sandbox Code Playgroud)
但是当我从cygwin打开gvim时它失败了.我认为win-gvim无法读取cygwin的simlinks.
我试图链接vimfiles目录(所以获胜方),但他们win-gvim也找不到任何东西! 我在这里不明白的是为什么从cygwin发起的win-gvim会查看我的cygwin主目录中的文件?!
我读过可以在windows中声明一个HOME变量来帮助win-vim,但我担心它会产生副作用......
这就是配置配置... 有人有解决方案吗?
另外,为了启动gvim,我使用了一个别名来转换winpaths中的cigpaths的函数:
winfilepath () {
# Extract command
cmd="$1"
shift
# Computes file paths
allfiles=""
if [[ ! -z "$@" ]]; then
while read f
do
newpath=`cygpath -w $f`
allfiles="$allfiles $newpath"
done < <(echo "$@" )
fi
# Launch command
echo "winfilepath: "$cmd $allfiles
$cmd $allfiles
}
alias gvim="winfilepath gvim \"$@\""
alias gvimdiff="winfilepath gvimdiff \"$@\""
# Open Windows explorer with file
alias winopen="winfilepath \"explorer.exe /select,\" \"$@\""
Run Code Online (Sandbox Code Playgroud)
这是一个很好的实践吗?
谢谢您的帮助 :)
Plouff
ros*_*dia 10
我将我的dotfiles保存在Dropbox中.该文件夹是C:\ Dropbox\dotfiles.为了在windows和cygwin之间使用它们,这就是我的工作:
Cygwin方面:
~ $ ln -s /cygdrive/c/Dropbox/dotfiles/.vimrc
~ $ ln -s /cygdrive/c/Dropbox/dotfiles/.gvimrc
~ $ ln -s /cygdrive/c/Dropbox/dotfiles/.vim
Run Code Online (Sandbox Code Playgroud)
这照顾了cygwin中的vim(终端vim和gtk gvim)
Windows方面:
C:\Users\Bryan>mklink _vimrc C:\Dropbox\dotfiles\.vimrc
C:\Users\Bryan>mklink _gvimrc C:\Dropbox\dotfiles\.gvimrc
C:\Users\Bryan>mklink /D vimfiles C:\Dropbox\dotfiles\.vim
Run Code Online (Sandbox Code Playgroud)
这照顾windows vim(两个命令行vim和windows gvim)
这已经成功地为我工作了大约两年了.
好吧,我终于有时间解决这个问题了!要查找 ./_(g)vimrc,(g)vim 首先查找 $HOME 目录。如果它在其中找不到 _/.(g)vimrc,那么它会在 $VIM 目录中查找。
由于 cygwin 设置了 $HOME 环境变量,因此我的 win-gvim 试图打开我的主目录中的 simlink。因此,要加载正确的 rc 文件,我需要正确设置 $HOME 变量。我最终得到了这个新函数:
#
# Compute windows file path and launch command in argument
#
winfilepath () {
# Extract command
cmd="$1"
shift
# Computes file paths
allfiles=""
if [[ ! -z "$@" ]]; then
while read f
do
newpath=`cygpath -w "$f"`
allfiles="$allfiles $newpath"
done < <(echo "$@" )
fi
# Launch command
echo "winfilepath: "$cmd $allfiles
$cmd $allfiles
}
#######
# Launching VIM
#######
winvim () {
# HOME env var management
myhomebak=$HOME
export HOME="/cygdrive/d/Program\ Files/Vim"
# Extract command
cmd="$1"
shift
winfilepath $cmd "$@"
export HOME=$myhomebak
}
alias gvim="winvim gvim \"$@\""
alias gvimdiff="winvim gvimdiff \"$@\""
Run Code Online (Sandbox Code Playgroud)
结合 Bryan Ross 的解决方案,我现在可以分享我的配置了!感谢您的帮助。
现在我需要解决这个空白问题......
归档时间: |
|
查看次数: |
3079 次 |
最近记录: |