问题标签 [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.
bash - 只需将命令的输出分叉并重定向到 /dev/null
我经常从一个 shell(在我的例子中是 Bash)命令中执行我想立即分叉并且我想忽略其输出的命令。事实上,我经常创建一个脚本 ( silent
) 来执行此操作:
然后我可以运行,例如
而且我的终端不会被我刚刚分叉的进程的调试输出所污染。
我有两个问题:
是否有这样做的“官方”方式?即更短但相当于
&> /dev/null &
?如果没有,有没有办法可以在我的
silent
命令之后使制表符完成工作,就好像它不存在一样?举个例子,在我输入 之后silent inksc
,我希望 bashsilent inkscape
在我按下 时自动完成我的命令[tab]
。
python - Python Twisted 与 Cmd 模块的集成
我喜欢 Python 的Twisted和Cmd。我想一起使用它们。
我做了一些工作,但到目前为止,我还没有弄清楚如何使制表符完成工作,因为我没有看到如何在 Twisted 的 LineReceiver 中立即(不按 Enter)接收制表符按键事件。
到目前为止,这是我的代码:
除了制表符完成之外,这有点工作。我可以输入“帮助”之类的命令,然后 Cmd 模块将打印结果。但是我失去了 Cmd 模块的漂亮的制表符完成功能,因为 Twisted 一次缓冲一行。我尝试设置LineProcessor.delimiter
为空字符串,但无济于事。也许我需要找一些其他的 Twisted 来代替 LineReceiver?或者也许有一种更简单的方法可以避免我不得不一个一个地处理每个字符?
我不能单独使用 Cmd,因为我想让它成为一个网络应用程序,其中一些命令将导致发送数据,而从网络接收数据将异步发生(并显示给用户)。
因此,无论我们是从上面的代码还是完全不同的代码开始,我都想用 Python 构建一个漂亮、友好的终端应用程序,它可以响应网络事件以及 tab 补全。我希望我可以使用已经存在的东西,而不必自己实施太多。
linux - 如何设置 shell tab-completion 以切换替代方案?
当我键入,例如“cd bu[tab]”,并且有多个选项(比如 build/ 和 builds/)时,终端通常会显示所有可能选项的列表(在按 [tab] 两次之后)。我想设置它,以便每个 [tab] 按下将循环选择选项,而不是显示它们的列表:
$ cd bu[tab] -> $ cd build/ -> [tab] -> $ cd builds/ -> [tab] -> $ cd build/ 等等。
我希望我的意思很清楚?:) 例如,mIRC 具有相同的昵称和频道补全功能。
另外,请告诉我这是可能的,无需编写我自己的完成脚本。
编辑:我在 Ubuntu 上使用标准终端。
node.js - 带有 vim 键绑定和方法/变量完成的 Node.js REPL
据我所知,在 Node REPL 中获取 vim 键绑定的标准方法是这样使用rlwrap
:
NODE_NO_READLINE=1 rlwrap node
但是,这会杀死方法和变量制表符补全。有一些解决方法吗?
osx-lion - Mac OSX (Lion) 中的 sftp 选项卡完成
在 OSX (Lion) 的命令行上使用 sftp 时,是否有人找到了启用选项卡补全的方法?
在 Snow Leopard 下,我使用 MacPorts 安装了 yafc,以使用 sftp 完成制表符,但这似乎也不起作用(OSX 10.7.2 上的 yafc 1.1.1 i686-apple-darwin11.2.0)。
非常感谢任何使选项卡完成/readline/libedit 与任何基于命令行的 sftp 客户端一起使用的提示或替代方法!
windows - 在 Windows 控制台中设置 Mercurial 以完成命令
在 Windows 上从控制台工作时,有没有办法设置 Mercurial 以完成命令?
我想要类似的东西git bash
,但对于 mercurial
text-editor - 选项卡完整来自:在 Macvim 中打开?
如果我打开 MacVim (特别是janus)并尝试:open ~/<TAB>
我得到:open ~/^I
. 我怎样才能让它以人们期望 bash 完成工作的方式完成制表符?
emacs - 为什么emacs选项卡完成不拆分窗口
在没有 X 支持的情况下运行 emacs。M-x shell
打开外壳。
在我 cd 到包含子目录的目录后,即“dirA”、“dirB”
然后我输入“ls dir”,然后按 Tab 完成
emacs 不会将当前窗口拆分为两个窗口并在 shell 缓冲区下方显示Completions缓冲区。它仅在最初显示外壳的窗口中显示完成,外壳消失了。
补全如何自动拆分shell窗口并显示在shell下方,而不是替换shell窗口?
powershell - PowerShell 选项卡完成可以像 VS 2010 Pascal Case Intellisense 一样工作吗?
在 Visual Studio 2010 中,如果有类似 的方法AlphaBetaGamma()
,您可以通过键入来访问它someObject.ABG[tab]
(例如,参见这篇文章)。
在 PowerShell 中,当我有一个类似 cmdlet 时,我Update-Package
可以通过键入类似的东西来访问它UP[tab]
吗U-P[tab]
?(我知道这两件事不起作用,只是试图展示我正在寻找的东西。)
如果没有这样的制表符完成功能,执行的最少击键次数是Update-Package
多少?我目前是通过键入update-p[tab]
9 次击键来完成的。我也可以这样做up[tab][down][down][down][down][Enter]
,但这太依赖于上下文(我的两个字母前缀可能有太多匹配项)。
powershell - PowerShell 提供程序相对路径选项卡完成问题
我已经实现了一个简单的 PowerShellNavigationCmdletProvider
。
对于那些不知道的人,这意味着我可以使用 cmdlet 创建一个管理单元,它实际上是一个虚拟文件系统驱动器;可以像任何普通文件夹一样从 PowerShell 安装和导航此驱动器。针对驱动器的每个操作(例如,检查路径是否指向有效项、获取文件夹中子项的名称列表等)都映射到从该类继承的 .NET 类的方法NavigationCmdletProvider
。
我面临制表符完成的问题,并希望找到解决方案。我发现使用相对路径时制表符补全会给出不正确的结果。对于绝对路径,它工作正常。
对于那些不知道的人,NavigationCmdletProvider
通过 PowerShell 调用该GetChildNames
方法的选项卡完成工作,该方法被NavigationCmdletProvider
类覆盖。
--问题论证--
假设我有一个提供程序“TEST”,具有以下文件夹层次结构:
绝对路径:
如果我键入“ dir TEST::child1\
”并按tab几次,它会给我预期的结果:
相对路径:
首先,我导航到“TEST::child1”:
然后,如果我键入“ dir
space”并按tab几次,它会给我不正确的结果:
我希望看到这些:
这是 PowerShell 中的错误,还是我做错了什么?
以下是提供程序的完整、独立的代码: