我为emacs创建函数时,bash自动完成功能不起作用

伊坎·戈帕拉克里希南(Eakan Gopalakrishnan)

有关我的系统的详细信息:我正在从Asus笔记本电脑上安装的Windows 8.1在Oracle Virtual Box 4.3.6上运行Ubuntu 12.04.4 LTS。我正在使用bash_completion 1.3版发行版(我是从/ etc / bash_completion文件中的注释中获得的)

我以为bash总是会在命令后自动完成文件和目录的完成。但是在Google搜索并阅读了有关bash_completion的更多信息之后,我意识到对于不同的命令来说这是不同的。但是在使用替代方法来调用时,bash的此自动完成功能面临一个问题emacs -nw

我已经ee~/.bash_aliases文件中定义了一个函数我知道这不是别名,但是我只是使用一个函数来做别名会做的事情:

function ee () {
    emacs -nw "$@"
}

export -f ee

我以为tab如果键入部分文件名,我仍然可以使用ee函数的补全功能。这似乎不起作用。而如果我键入emacs -nw后跟部分文件名,则制表符补全效果会很好。我真的不明白这里缺少什么。我检查了命令的输出complete -p,我得到两个以下emacsee

eakangk@eakan-u-vbox:~$ complete -p | grep 'ee'
complete -F _filedir_xspec ee
eakangk@eakan-u-vbox:~$ complete -p | grep 'emacs'
complete -F _filedir_xspec emacs

这是否意味着在尝试自动完成时,两个命令都应该给我相同的行为?编辑:发布问题时我没有ee/etc/bash_completion文件中看到该但是现在我知道它在那里。但是/ etc / bash_completion文件具有以下几行:

complete -f -X '!*.@(gif|jp?(e)g|miff|tif?(f)|pn[gm]|p[bgp]m|bmp|xpm|ico|xwd|tga|pcx)' ee
complete -f -X '*.@(o|so|so.!(conf)|a|[rs]pm|gif|jp?(e)g|mp3|mp?(e)g|avi|asf|ogg|class)' vi vim gvim rvim view rview rgvim rgview gview emacs xemacs sxemacs kate kwrite

我在这里做错了什么?

盖尔哈

这与bash-completion软件包有关。它为emacs设置了一些自定义完成,显然,当命令名称不同时,相同的完成会失败。

我自己不使用bash-completion,但是我快速查看了源代码,发现了这一点:

_install_xspec '*.@(o|so|so.!(conf|*/*)|a|[rs]pm|gif|jp?(e)g|mp3|mp?(e)g|avi|asf|ogg|class)' vi vim gvim rvim view rview rgvim rgview gview emacs xemacs sxemacs kate kwrite

可能用来说“对于这些命令,请不要完成以.gif,.mp3,.avi等结尾的文件”,而且我猜想如果ee命令没有_install_xspec行,那么它就不会完成任何操作。

查看_install_xspec函数,它只是将这些值放在_xspecs使用命令名作为键命名的关联数组中,因此,如果运行_xspecs[ee]=${_xspecs[emacs]},则ee命令应获得与emacs相同的补全。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

自动跳转自动完成功能不起作用

自动完成功能不起作用

vscode键入自动完成功能不起作用

组合框自动完成功能不起作用

阿尔及利亚角度自动完成功能不起作用

HTML自动完成功能不起作用

jQuery自动完成功能不起作用

AJAX 自动完成功能不起作用

Django自动完成功能不起作用

蚀Java自动完成功能不起作用

Godot / GDScript:自动完成功能不起作用

jQuery自动完成功能不起作用?

在素数面上创建行后,Java 自动完成功能不起作用

为什么我的自动完成功能不起作用?

哦,OSX上的我的ZSH Docker自动完成功能不起作用

尝试使其动态时,jQuery AJAX 自动完成功能不起作用

设置TextField InputProps时Material-UI自动完成功能不起作用

Django可选和自动完成功能:自动完成功能不起作用。我应该添加自己的JS吗?

NSManagedObject子类的Xcode 9.3自动完成功能不起作用?

适用于 Unity 的 Visual Studio 自动完成功能不起作用

Visual Studio Code中的标签页自动完成功能不起作用

jquery中的自动完成功能不起作用,但jquery正常运行

Windows中OpenCV-Python的自动完成功能不起作用

角材料自动完成功能不起作用,未显示任何错误

Google Place by classname自动完成功能不起作用

初学者:自动完成功能不起作用?

导入语句的Xcode自动完成功能不起作用(cocoapods)

PhpStorm中的TailwindCSS自动完成功能不起作用

选项卡上的NVim Omnisharp-Vim自动完成功能不起作用