unix – 如何在VIm和终端中始终拥有相同的当前目录?

我想我的终端当前目录跟随我的VIM之一.

例:

在TERMINAL:

> pwd
=> /Users/rege
> vim

然后在VIM

:cd /Users/rege/project
<Ctrl-z>(for suspend)

在终端

> pwd
=> /Users/rege/project

我正在使用MacOS,zsh,tmux.

我需要这个,因为当我试图在VIM中使用标签时,标签是从我的终端目录检查项目而不是vim.

因此,当我更改VIM当前目录时,我总是需要更改终端当前目录.

最佳答案
暂停Vim后,你在shell中发出什么样的命令?不是Vim的:!命令不够?

使用set autochdir,当您从一个文件跳转到另一个文件时,Vim的当前目录会跟随您.使用此设置,简单:!ctags -R.将始终在当前文件的目录中创建一个标签文件.

另一个有用的设置是set tags =./ tags,tags; $HOME告诉Vim在当前文件的目录中查找标签文件,然后在“当前目录”中向上和向上查找,直到它到达〜/.您可以修改端点以满足您的需要.这允许您在编辑属于项目的任何文件时在项目的根目录中使用标记.

所以,基本上,你可以在不离开Vim的情况下走很长的路.

如果你真的需要回到shell发出命令,:shell(或:sh)用Vim的当前目录启动一个新的shell.当你完成后,你只需要退出以回到Vim:

$pwd
/home/romainl
$vim
:cd Projects
:sh
$pwd
/home/romainl/Projects
$exit

转载注明原文:unix – 如何在VIm和终端中始终拥有相同的当前目录? - 代码日志