在 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