maven - 如何在 vimscript 中遍历目录结构并启动 mvn build?

标签 maven vim

我是一个新的 vim 用户,正在寻找一个可以让我调用 mvn build 的脚本的帮助。

目前我将其映射如下

map <F3> :! mvn build<CR>

但是因为这尝试在我当前的工作目录中进行构建(当前是java开发,所以我通常深入src下的包中)

我怎样才能向上移动目录结构以使这个 mvn build 命令正常工作?

提前谢谢

最佳答案

vimscript 函数 finddir()可用于查找 src 目录。第二个参数 (path) 中使用的语法有一些 augmentations to basic path specification ,其中之一是使用 ;:

指定向上搜索的能力
let src_dir = finddir('src', ';')

这将找到 src 目录(如果它位于当前目录之上)。

要在此目录中进行构建,您可以运行

exec '!cd' shellescape(src_dir) '&& mvn build'

我认为这在 Windows 下不起作用。在这种情况下,我认为您需要使用 vim 的 cd 临时更改目录。命令,运行该命令,然后使用 :cd - 改回来.

您可以将这些命令组合成一个函数

function! RunMavenInSrcDir()
    let src_dir = finddir('src', ';')
    exec 'cd' fnameescape(src_dir)
    !mvn build
    cd -
endfunction

运行此函数会产生破坏 vim 的先前当前目录的副作用:换句话说,之后执行 :cd - 不一定会更改到同一目录以前会有。

您可以安排通过映射调用函数

map <F3> :call RunMavenInSrcDir()<CR>

或通过命令

command! RunMavenInSrcDir call RunMavenInSrcDir()

关于maven - 如何在 vimscript 中遍历目录结构并启动 mvn build?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5625160/

相关文章:

vim - 在 Vim 中,有没有一种方法可以在不将文本放入寄存器的情况下进行删除?

vim - 如何在终端的vim中突出显示关键字?

vim - 描述 vim 替换

python - 在 Vim 中更改 Python for 循环的颜色

java - 如何在eclipse luna中配置lombok

Vim:删除光标周围的空行

scala - Gatling maven插件错误

scala - Maven SBT 依赖 Artifact ?

java - Springsource Tool Suite导入Spring3.0的jpetstore时maven报错

maven - Nexus 存储库 : Failed to retrieve plugin descriptor for org. apache.maven.plugins ...