很长一段时间以来,我介绍了一个简单的技巧,它允许您快速导航到Shell的用户配置文件(例如.bashrc或.zshc)。虽然该解决方案可以完成工作,但它非常基本且有限-最明显的是,它忽略了这样一个事实,即您通常有几个shell配置文件通常是相互重叠构建的-例如/etc/profile、~/.bash_profile和~/.bashrc。幸运的是,最初的黑客技术发展得相当不错,现在以CRUX-find-shell-init-file的名称保存在CRUX库中。1个。
假设您已经安装了CRUX,您所需要做的就是运行该命令(例如,使用M-x CRUX-find-shell-init-file),您将得到如下所示的结果:
很整洁,对吧?即使在更新状态下,该命令也一点也不复杂:
(defunk-find-shell-init-file()";在另一个窗口中编辑shell初始化文件。";(交互)(let*(shell(car(Reverse(Split-String(getenv";shell";)";/";t)(shell-init-file(cond((string=";zsh";Shell)crx-shell-zsh-init-files)((string=";bash";shell)crx-shell-bash-init-files)((string=";tcsh";shell)crx-shell-tcsh-init-files)((string=";fish";shell)crx-shell-fish-init-files)(string-prefix-p";ksh";Shell)crx-shell-ksh-init-files)(t(error";未知shell";)(候选(cl-remove-if-not';file-Existes-p(mapcar';文件名shell-init-file)(IF(>;(长度候选)1)(find-file-Other-Window(Complete-Read";select shell init file:";select shell init file:";考生))(查找文件其他窗口(汽车考生)。
我想我们以后可以改进的一件事是增加一个选项,在同一窗口中显示shell配置,但这是一件小事。像crx-shell-bash-init-files这样的变量是我们应该查找的所有潜在文件的简单列表,这就是为什么我选择从代码清单中省略它们的原因。
你注意到原文和更新版文章名称的细微差别了吗?--↩