Cmder - 使用循环浏览自动完成的候选项?

Cmder - 使用循环浏览自动完成的候选项?

在 Windows 中,原始的 cmd.exe 可用于循环显示自动完成候选。但在 cmder 中,此功能似乎已被删除。有什么方法可以启用它吗?

答案1

正如刚才提到的, '康德' 是其他开源软件的融合。控制制表符补全行为的软件是 '碰杯'。要更改​​此行为,请导航至您的'康德' 目录然后找到:

\cmder\vendor\clink\clink_inputrc_base

打开“clink_inputrc_base”,保存备份原件,然后替换以下两行:

“\t”:clink-completion-shim

和:

“\t”:菜单完成

对于 shift+tab 循环向后行为,还需在上述每行下方添加一行:

"\e`Z": 菜单完成向后

这对我有用。有关修改 clink 行为的信息,请参阅此链接:

https://github.com/mridgers/clink/issues/190

编辑:请参阅下面的评论,或“tides”的其他答案。在较新版本的 cmder 中,该过程稍微简单一些。您只需取消注释文件中描述的行,请参阅我的评论或其他答案以了解更多详细信息。

答案2

实际上,该\cmder\vendor\clink\clink_inputrc_base文件末尾已经有以下几行:

# Uncomment these two lines for vanilla cmd.exe style completion.
# "\t": clink-menu-completion-shim
# "\e`Z": clink-backward-menu-completion-shim

如果删除#最后两行的字符,您将获得所需的行为。

答案3

Clink 会改变 Tab 补全行为。因此:从vendors文件夹中删除 Clink,取消选中在提示中使用 clink

答案4

之前的答案对我不起作用。下面是我让它工作的方法,看看Clink 文档还有一些这个帖子。首先,不要编辑任何基本配置文件(更新时可能会被覆盖),而是创建您自己的配置文件,您可以在以下位置之一调用.inputrc或:_inputrc

  • %CLINK_INPUTRC%
  • %USERPROFILE%
  • %LOCALAPPDATA%
  • %APPDATA%
  • %HOME%

在大多数情况下,最实用的做法可能是在您的主目录中创建它(例如C:\Users\My Name\)。

在该文件中写入以下内容:

TAB: menu-complete
"\e[Z": menu-complete-backward

就是这样。这仍然不是我想要的,因为我希望它在我第一次点击时向我显示可能的完成列表TAB,然后如果我继续点击它,它会滚动浏览它们,但无论如何。

此外,正如 Clink 文档中指出的那样,此文件中的设置.inputrc也可能被其他使用阅读行。如果您希望这些仅影响 Clink(以及 ConEmu / Cmder)的行为,您可以执行以下操作:

$if clink           # begin clink-only section
TAB: menu-complete
"\e[Z": menu-complete-backward
$endif              # end clink-only section

相关内容