emacs:我可以定义一个别名以在 minibuffer 中使用 find-file

Posted

技术标签:

【中文标题】emacs:我可以定义一个别名以在 minibuffer 中使用 find-file【英文标题】:emacs: can I define an alias for use find-file in the minibuffer 【发布时间】:2021-10-23 09:23:54 【问题描述】:

如果我有一个我经常访问的文件或目录,我可以定义一个可以在 minibuffer 中工作的别名吗?我不是在找书签。 我想要在任何使用文件路径完成的情况下都可以使用的东西,例如find-filecopy-fileorg-insert-link。 我使用常春藤,所以当我插入一个 org 链接时,在注意到链接类型为 file 之后,我有一个文件名的 minibuffer 完成会话。 我希望别名也可以在那里工作。在所有这些用例中,我可能只是希望在 minibuffer 中扩展名称,而不是实际访问。

例如,如何替换这个:

M-x copy-file RET ~/.emacs RET ~/config-git-repo/.emacs 

用这个:

M-x copy-file RET ~/.emacs RET myalias

达到同样的目的。另外请注意,如果 minibuffer 预填充了现有路径,则需要清除预填充的路径。

【问题讨论】:

(1) 问题不是很清楚。什么的别名?对于特定的文件名? (2) 不妨看看Abbrevs。 @Drew 我已将问题编辑得更清楚。我不认为缩写会为此工作。我不知道 abbrevs 是否在 minibuffer 中有效,即使有效,我也很确定它不会清除文件路径的任何现有完成提示。 【参考方案1】:
(defun my/kill-best-file-name ()
  (interactive)
  (kill-new "bestfile.el"))

(global-set-key (kbd "C-c C-y") #'my/kill-best-file-name)

您可以先调用它,然后在 minibuffer 中执行 C-y

【讨论】:

您的意思是“...在 minibuffer 中做C-c C-y”吗?是什么限制了这个迷你缓冲区?键绑定不是全局可用的吗?但是如果一个模式覆盖了全局键绑定会发生什么? 我认为这不会从 minibuffer 中清除任何现有的文件路径提示。我只是对问题进行了编辑,以更清楚地说明这是一项要求。谢谢。 @NickD C-c C-y 只是一个可能可用的随机密钥。如果某个模式覆盖它,则使用该模式的键。

以上是关于emacs:我可以定义一个别名以在 minibuffer 中使用 find-file的主要内容,如果未能解决你的问题,请参考以下文章

使自动完成和 yasnippet 模式协同工作以在 GNU/Emacs 中编辑特定文件

如何设置别名或 VirtualHost 以在 Apache2 上运行 laravel 项目

如何让 bash 完成以在 Windows 10 bash 中使用别名?

如何分别创建多个 Flutter 版本别名以在 Windows PC 的命令提示符中使用 [关闭]

emacs 主要模式为正则表达式前面的行定义字体锁定

使用R会话和并排窗口启动Emacs?