问题标签 [tab-completion]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
emacs - Emacs 完成点函数
我正在编写基于 comint-mode 的派生模式。该模式是命令行程序(GRASS gis)的接口,comint 模式完成适用于这些程序。我正在尝试添加对完成程序参数的支持,通过completion-at-point-functions
. 一个玩具示例是:
这几乎可以工作。我得到程序名称的正常完成。但是,如果我ls
在命令行输入,点击标签插入my-completion-
并且不提供这两个选项。再次点击标签会插入my-completion-
第二次,所以我现在有了ls my-completion-mycompletion-
.
我的实际代码包括几行来检查多行命令,但对完成代码没有任何更改。使用此版本的代码,我在以其中一个程序名称开头的行上点击选项卡,我看到了my-commands
一个可能的参数列表来完成命令,但缓冲区中没有插入任何内容,并且列表确实不要通过键入参数的前几个字母来缩小范围。
我已经阅读了手册,但我无法弄清楚编写completion-at-point
函数的正确方法。有什么我想念的想法吗?
我已经简要地看了看pcomplete
,但并没有真正理解“文档”,也没有取得任何进展。
scala - Scala REPL 的选项卡补全在这里告诉我什么?
在阅读 Cay S. Horstmann 的“不耐烦的 Scala”时,我注意到第一章的第一个练习揭示了一些有趣的东西。
- 在 Scala REPL 中,键入 3. 后跟 Tab 键。可以应用哪些方法?
当我这样做时,我得到以下信息
但我注意到,如果我第二次点击 Tab,我会得到一个稍微不同的列表。
REPL 想在这里告诉我什么?第二次出现的不同方法有什么特别之处吗?
bash - 在逐个命令的基础上为 bash 完成设置不区分大小写
有没有办法指定一个特定的命令不区分大小写,而不需要全局打开不区分大小写(至少对于那个 shell)?
在我的特殊情况下,我有一个小应用程序,它可以让我通过命令行访问电子邮件地址数据库,所以我输入:
并返回 John Smith 的电子邮件地址。所以我设法在应用程序内部启用了完成功能:设置
可以让我完成制表符get
和email
. 但是,如果我然后键入j<tab>
,它会拒绝,因为在电子邮件数据库中,它是正确大写的。无论如何,我想让 bash 完成这项工作。(如果我使用大写字母J
,它可以工作。)
如果做不到这一点,我想我可以让我的--complete
选项通过匹配输入来更改其回复的大小写,但理想情况下,如果可能的话,命令行将匹配数据库。
请注意,当使用 readline 时,我在应用程序中进行了此操作,它仅与 bash 交互,这似乎是一个问题。
python - Tab 补全在 IPython 0.12 中看不到我的模块
导入时,IPython 无法对当前目录中的模块名称进行制表符补全。
如果我在当前目录中有一个名为 Blah.py 的文件,我想(在 ipython 提示符下)输入 import Bl 并完成“import Blah”。不过,当我按 Tab 时似乎什么也没发生。其他情况下的制表符完成似乎工作正常。
我在 Mac OSX 版本 10.5.8 上使用 EPD 7.2-2 64 位。它带有 IPython 0.12 版。
这种制表符补全曾经适用于我在 Mac 上使用 IPython 版本 0.10.2(尽管它不是 EPD 的一部分)。我在此 EPD 版本中注意到的唯一其他区别是,每次您在字符串中对目录名称进行制表符补全时,制表符补全也会关闭引号。
任何想法表示赞赏。
谢谢!
linux - 在 shell 中自定义选项卡完成
这可能比“自定义选项卡完成”有更好的名称,但这是场景:
通常,当我在命令行输入一个命令,然后输入两次 {TAB} 时,我会得到当前目录中所有文件和子目录的列表。例如:
但是,我注意到至少有一个程序以某种方式过滤了这个列表:wine
. 考虑:
它有效地将结果过滤到*.exe
.
认为它可能是某种负责过滤的包装脚本,a did awhich
和file
an 结果wine
不是脚本而是可执行文件。
现在,我不知道这个“过滤器”是否以某种方式编码在程序本身中,或者在默认的 wine 安装期间以其他方式指定,所以我不确定这个问题是否更适合 stackoverflow 或超级用户,所以我交叉手指扔到这里。如果我猜错了,我很抱歉。(另外,我检查了一些类似的问题,但大多数都无关紧要或涉及编辑 shell 配置。)
所以我的问题是,这种“过滤”是如何完成的?提前致谢。
bash - Bash Autocomplete Ubuntu 列出所有而不是循环
在全新的 Ubuntu 12.04 安装中,我的终端选项卡完成设置被配置为在第二个选项卡上循环选项而不是我习惯的选项(列出所有选项并仅完成可以确定的选项)
例如,在包含 listPixels.html 和 listPublishers.html 的目录中,我希望一个选项卡从
简单地完成
然后第二个选项卡应列出所有可能的匹配项,而不是在每个后续选项卡上循环遍历 listPixels.html 和 listPublishers.html。
zsh - zsh:完成菜单。如何放置名称的公共部分?
我在我的 zsh 中配置了完成菜单。效果很好,没问题。
现在我想让我的 zsh 像这样:
假设一个目录中有3个文件:
- somefile_first
- somefile_second
- somefile_third
现在,当我按下 [TAB] 时,我会看到完成菜单,其中包含放置在命令行中的第一个文件。但我希望 zsh 完成文件名的公共部分(在本例中为somefile_),不要在公共部分之后放置任何其他内容,让我浏览完成菜单。
我怎么做?
shell - 基于不仅仅是第一个字符的字符串的shell制表符补全?
是否有任何 shell 支持基于不仅仅是第一个字符的字符串的制表符补全?
例如,假设我有分支add_page_to_site
,当我这样做时git checkout si[TAB]
,它会扩展为git checkout add_page_to_site
.
有没有支持这个的shell?zsh?鱼?
emacs - Emacs minibuffer 完成
我有一个异步启动程序的功能:
我有一个可供选择的所有可执行文件的列表。我希望app
函数表现为switch-to-buffer
,为用户提供 TAB 补全。如何在 Emacs 中使用 minibuffer 完成?
clojure - Clojure REPL 中是否可以有 _good_ 选项卡补全?
好的选项卡完成意味着使用反射或其他方式动态生成(不需要在某处预定义的完成列表),并且知道在特定位置可以遵循什么,不遵循什么。
就像(.<TAB> x)
我会得到 x 的方法列表一样,我会得到(println <TAB>)
本地和全局定义(Math/<TAB>
的列表,我会得到数学函数的列表......
例如,我喜欢Tabghci (Haskell) 或 ipython 中的工作方式。