如何在当前工作目录中打开toggleterm?

问题描述 投票:0回答:2

我最近开始使用 neovim 并为终端安装了toggleterm 插件。当我在一个项目中并尝试打开终端时,它会从我的主目录而不是项目的当前工作目录开始。 例如:假设我当前所在的项目位于 ~/projects/new-project/news-app ,当我开始切换术语时,终端的位置位于 ~/. 我该怎么做才能使其在当前项目目录(~/projects/new-project/news-app)上打开。

操作系统:WSL2 Ubunutu22.04 Neovim 版本:0.6.1

我尝试在toggleTerm.lua文件中启用autochdir = true,并尝试添加autocmd BufEnter *安静! lcd %:p:h 到我的 init.vim 配置文件,但这并不能解决我的问题。

neovim
2个回答
0
投票

这是一个会话示例,其中切换术语将在当前目录中打开:

在终端窗口中,启动 nvim 之前,并在终端提示符的项目目录中输入:

导出 CDPATH=.,**

然后在项目目录中使用 nvim 打开文件

在 nvim 中发出命令 :lcd %:h,然后输入 Ctl-\

Ctl-\ 现在应该在当前目录中打开 ToggleTerm

详情:

export CDPATH=.,** 将当前目录及所有子目录赋值给环境变量CDPATH

:lcd %:h 现在应该在 nvim 的 cdpath 中找到当前目录。

如果有效,则将 export CDPATH=.,** 添加到您的会话 rc 文件中;例如 ~/.bashrc 或 /etc/profile.d/custom.sh 等...

请注意有关终端的信息。必须在第一个 Ctl-\ 之前发出 :lcd %:h 的原因是,一旦打开终端实例,它将使用创建时可用的目录引用。在发出 :lcd %:h 命令之前使用 Ctl-\ 打开终端将使用可用目录,即 ~/.任何进一步尝试使用 Ctl-\ 都只会打开使用此目录的同一终端。该终端实例需要在切换的终端提示符下使用“exit”关闭。然后输入命令 :lcd %:h 和 THEN Ctl-\ 将创建一个新的终端实例,但这次可用目录将是当前工作目录。

要进一步探索这一点,请尝试以下操作: 打开项目文件并点击 Ctl-\ 。这将使用默认目录创建一个终端,可能是 ~/.现在按 Ctl-\ 返回代码缓冲区。接下来输入 :lcd %:h 然后输入 2Ctl-\ 。另一个终端将打开,但这次它将位于项目文件的目录中。按 Ctl-\ 将再次恢复代码缓冲区。现在输入 1Ctl-\ ,第一个带有 ~/ 目录的终端将会出现。切换回来并输入 2Ctl-\ ,第二个终端将会出现,再次显示项目目录。

请告诉我这是否是您的要求。


0
投票

我可以确认

autochdir
选项在 Windows 11 上适用于我,

如果通过切换不起作用,您应该将切换快捷键从

<C-\>
重新绑定到其他内容,这样您就可以从
<C-\>, <C-n>
中删除
terminal mode
,然后它会让您删除带有
bd!
的终端缓冲区
normal mode
,然后再次尝试切换它,它现在应该在当前目录中。

© www.soinside.com 2019 - 2024. All rights reserved.