Jas*_*ker 15 emacs autocomplete elisp
比如说我正在编辑一个配置文件,我想输入一个路径。是否有 emacs 插件可以让您完成该缓冲区中的文件路径?我已经搜索过这个,那里有无数的补全插件。
Ted*_*ddy 17
我通常输入Ctrl- X Ctrl-F就像我打开一个文件一样,但不是按RET我按Ctrl- A Ctrl- K Ctrl-G复制路径,然后将其粘贴到我用Ctrl-编辑的缓冲区中Y。
我并不经常需要这个,但如果我真的想要一个更好的解决方案,我肯定会使用 Trey Jackson 的解决方案,使用hippie-expand
. 我hippie-expand
在第一次回答时就想过如何更好地做到这一点,但我不知道并且懒得查,所以我只是写了我所做的。
Tre*_*son 12
试试Hippie Expand,它的可能性之一是 ' try-complete-file-name
。您可以更改 hippie expand 将使用的扩展函数的顺序和列表来支持扩展文件名。
或者,您甚至可以编写一个只进行文件名扩展的自定义包装器。就像是:
(global-set-key (kbd "C-M-/") 'my-expand-file-name-at-point)
(defun my-expand-file-name-at-point ()
"Use hippie-expand to expand the filename"
(interactive)
(let ((hippie-expand-try-functions-list '(try-complete-file-name-partially try-complete-file-name)))
(call-interactively 'hippie-expand)))
Run Code Online (Sandbox Code Playgroud)
Ron*_*sky 10
最高版本 25,原版,开箱即用
M-x comint-dynamic-complete-filename
Run Code Online (Sandbox Code Playgroud)
和
M-x comint-replace-by-expanded-filename
Run Code Online (Sandbox Code Playgroud)
两者都在 comint 模式之外工作。当然,你可以使用迷你缓冲区的动态扩展,以使用更少的按键来得到他们(例如,的Mx COMI NT- DY namic- Ç omplete -f ilename或MX COMI NT-代表花边逐expanded- ˚F ilename)。或者,如果您经常这样做,您可以使用 将它们绑定到您选择的键序列global-set-key
。
对于 26+ 版本,在我看来您需要确保显式加载 comint 模式 --- 添加一行
(require 'comint)
Run Code Online (Sandbox Code Playgroud)
在您的 .emacs 文件中应该使这项工作再次发挥作用。
警告:并非所有适用的 comint 函数都可以这样使用。comint-dynamic-list-filename-completions似乎不能在其本机模式之外工作。
归档时间: |
|
查看次数: |
13082 次 |
最近记录: |