Emacs shell模式选项卡完成(comint-dynamic-complete
)适用于内置于linux的命令,但它似乎无法检测我的原始命令,其路径在~/.bashrc
中指定。如何让comint-dynamic-complete
查找这些命令?我使用emacs 23.3。
答案 0 :(得分:2)
在shell模式下,它会查找exec-path
中指定的目录,这些目录在启动Emacs时根据环境变量PATH
进行初始化。您可以覆盖.emacs
(ref)中的一个或两个。 This page向您展示如何覆盖这两个变量中的任何一个:
(setenv "PATH" (concat (getenv "PATH") ":/sw/bin"))
(setq exec-path (append exec-path '("/sw/bin")))
修改强>
Powershell.el
可能是comint.el
更好的选择(之前没有使用它)。在源代码评论中,它声称在exec-path
中搜索其中一个函数,恕我直言应该在comint.el
中完成:
;; (defun powershell-dynamic-complete-command ()
;; "Dynamically complete the command at point.
;; This function is similar to `comint-dynamic-complete-filename', except that it
;; searches the commands from powershell and then the `exec-path' (minus the
;; trailing Emacs library path) for completion
;; candidates.
在source code comments中读取“TAB上的注释以便完成”。
答案 1 :(得分:1)
(require 'shell-command)
(shell-command-completion-mode)