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

时间:2013-04-19 09:05:09

标签: bash vim cygwin working-directory

我正在使用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 个答案:

答案 0 :(得分:2)

我认为--login会这样做;删除该参数,shell将在GVIM的当前目录中打开。

答案 1 :(得分:1)

您可以将当前文件的目录传递给外部命令,如下所示:

:!ls %:p:h

请参阅:h filename-modifiers,可能:h shellescape()