交互式CD(目录浏览器)

交互式CD(目录浏览器)

有时,在深度嵌套的文件层次结构(例如 Java 代码)中工作时,我发现从一片叶子遍历到另一片叶子很烦人。我通常的 CD 看起来像:

$ cd ../../..
# Oops, not enough
$ cd ..
# one more
$ cd ..

如果我想编辑文件,我可以vim dir交互式地打开所需的文件。
是否有一些实用程序允许交互式更改目录?探索者/指挥官(mc, vifm)对于这样的任务来说太重了。

我已经在互联网上搜索过,但我的关键字似乎没有返回任何相关内容。

添加以澄清:

我正在寻找一个实用程序(让我们称之为它vcd),它向我提供一个交互式目录树,我可以遍历它并选择 cd 的位置。
从用户的角度vim .来看,假设vcd最终执行vim $filename。我想要类似的功能(目录浏览器),只是最后CWD更改为交互式选择的目录。我希望这能让我的意图更加明确。

答案1

尝试FZF-FS

安装弗兹夫:

git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install

重新分配您的资源~/.bashrc. ~/.bashrc

克隆fzf-fsgit clone https://github.com/D630/fzf-fs ~/fzf-fs

添加~/fzf-fs到您的PATHPATH=$PATH:~/fzf-fs
Runfzf-fs --init
定义一个别名:alias vcd='. fzf-fs'
Runvcd ~
您应该看到类似这样的内容: 在此输入图像描述

用 选择目录Enter,使用模糊搜索,键入[q]退出。

也可以看看:fzf-fs 用法,fzf-fs 不支持文件名中的换行符固定为cd

答案2

虽然我不知道适合您描述的工具,但也许下面提到的一些小实用程序会有所帮助?

pushdpopd此处描述以及其他可以在导航时提高生产力的工具

法西德- 提供对 POSIX shell 的文件和目录的快速访问

自动跳转- 一个cd会学习的

z- 上述的一个变体

v-z对于维姆

答案3

DM就像DOS 时代的 PC Magazine 一样……我不知道 Linux 上有类似的程序,但我很喜欢xd用于目录导航;函数定义为

xd() {
    cd "$(/usr/bin/xd "$@")"
}

例如,您可以输入

xd /ulb

它将打印所有匹配/u*/l*/b*/usr/lib/binfmt.d/usr/local/bin...)的目录的列表,要求您选择一个并更改为它。

答案4

您可以使用恩恩文件管理器以交互方式浏览并选择目录。

您可以将其配置为在退出时更改为所选目录(按 Ctrl+G 或始终按时)。

从misc/quitcd 中选择适合您的shell 的文件,并将内容添加到您的shell 的rc 文件中。您需要生成一个新的 shell 才能使更改生效。您应该将 nnn 开头为 n (或您首选的函数名称/别名)。

默认情况下,当按下 ^G 时,nnn 将最后一个工作目录写入

${XDG_CONFIG_HOME:-$HOME/.config}/nnn/.lastd

要始终退出时 cd,请将环境变量 NNN_TMPFILE 设置为您的首选文件路径。

退出时 cd 的额外键 ^G 是为了避免每次 nnn 退出时写入文件,并允许退出时按需 cd

1

相关内容