git - vim cd'ing 到 git root

标签 git vim

我正在尝试从 vim cd 到我项目的 git root 中,以便我的 Ctrl-P 正常工作。我经常在项目中工作,我不希望 Ctrl-P 查找 git root,所以我将它设置为仅查找最近的文件夹,其中包含 .gitignore .

在命令行上,我可以执行类似 cd $(git rev-parse --show-toplevel) 的操作但是当我在 vim 中用 :!cd $(git rev-parse --show-toplevel) 尝试同样的事情时它 stash 了 vim,只显示一个空白输出。有人告诉我!在 vim 命令行中将允许我运行 bash 命令。我是不是错过了什么。

最佳答案

您可以使用反引号来运行 shell 命令并将输出通过管道传输到 Vim 命令中,例如 :cd :

:cd %:h | cd `git rev-parse --show-toplevel`

这会将当前目录设置为当前文件的目录,然后运行 ​​:cd使用来自 git rev-parse --show-toplevel 的 git 目录命令。

或者,如果您使用 fugitive.vim您可以使用 :Gcd命令。

如需更多帮助,请参阅:
:h :cd
:h backtick-expansion
:h :bar

关于git - vim cd'ing 到 git root,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38081927/

相关文章:

java - 将 fragment 类传递到 addSlide 方法时需要表达式

git - 我如何配置 gitweb 和 gitolite 以便它们一起工作?

git - 我如何从 CVS 存储库中 git-cvsimport 多个模块,具有不同的分支?

vim - 如何在Vim中显示垂直线以换行?

git - 尝试执行基本 git 操作时获取 "Vim: Caught deadly signal ILL"

vim 语法高亮提高性能

vim - 在 Vim 中将光标移过长的软环绕行

vim - 根据时间在 Vim 中撤消?

git - 代码缩进从制表符转换为空格 : is it trackable in git?

python - 如何使用 python 模块的多个 git 分支?