将shell的工作目录设置为当前在vim中打开的文件

4

我正在使用Windows gVim,并尝试调用运行在Cygwin的Bash上的命令。它可以工作,但是每次都将工作目录设置为$HOME。是否可能将其设置为当前文件所在的目录?

我在我的.vimrc中有以下行:

set shell=C:/cygwin/bin/bash
set shellcmdflag=--login\ -c
set shellxquote=\"

我在我的.profile文件中有以下几行代码:

if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
    . "$HOME/.bashrc"
    fi
fi
2个回答

2
我认为使用--login参数可以实现这个功能;删除该参数后,shell将在GVIM当前目录中打开。

1
你可以像这样将当前文件的目录传递给外部命令:

:!ls %:p:h

查看 :h filename-modifiers ,可能还要查看 :h shellescape()


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接