gpt4 book ai didi

bash - 在 emacs 中编辑 shell 脚本时可以使用 bash 自动完成功能吗?

转载 作者:行者123 更新时间:2023-12-04 11:01:10 25 4
gpt4 key购买 nike

在我的环境中,我设置了 bash 自动完成功能来做很多令人惊奇的事情。
然而,当我在 emacs 中编辑一个 shell 脚本时,所有的自动完成魔法都消失了。

当我编辑 shell 脚本时,有什么方法可以让 emacs 进行 bash 命令行自动完成?

如果该编辑器在 Linux 系统上可用,我会接受要求我使用其他编辑器的答案。我也会接受一个答案,告诉我我需要使用不同的 shell 的自动完成功能。

最佳答案

bash-completion.el提供正常 bash 完成的接口(interface),也可以扩展为正常工作 sh-mode s 添加到您的 completion-at-point-functions .这是如何工作的,只需使用命令 sh-beginning-of-command来自 sh-script确定当前的完成候选(如果需要,可以扩展以处理更复杂的 shell 命令)。

(require 'sh-script)                    ;sh-beginning-of-command
(require 'bash-completion)

(defun my-sh-completion-at-point ()
(let ((end (point))
(beg (save-excursion (sh-beginning-of-command))))
(when (and beg (> end beg))
(bash-completion-dynamic-complete-nocomint beg end t))))

(defun my-sh-hook ()
(add-hook 'completion-at-point-functions #'my-sh-completion-at-point nil t))

(add-hook 'sh-mode-hook #'my-sh-hook)

关于bash - 在 emacs 中编辑 shell 脚本时可以使用 bash 自动完成功能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58790146/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com