>我在主目录中有一个文件夹:hdd -> /hdd
.
ls -l hdd
输出hdd -> /hdd
.我希望它遵循符号链接并显示/hdd
的内容,但这不是重点。
ls -l hdd/
输出/hdd
的内容,如预期的那样。
ls -l hd
后跟一个选项卡完成,然后显示ls -l hdd/
,然后按ENTER
将运行命令ls -l hdd
,而不是ls -l hdd/
。因此,它显示的是hdd -> /hdd
,而不是/hdd
的内容。
为什么ls -l hdd
命令在选项卡完成时正在运行ls -l hdd/
?哪种行为通常是首选行为?如果我手动键入ls -l hdd/
而没有使用任何补全,它当然会显示/hdd
的内容。
由于选项AUTO_REMOVE_SLASH
,默认情况下启用:
AUTO_REMOVE_SLASH 当完成产生的最后一个字符是斜杠,而键入的下一个字符是单词分隔符、斜杠或结束命令的字符(如分号或与号(时,请删除斜杠。
您可以通过以下方式禁用它
setop noautoremoveslash
您还可以配置zle
以突出显示斜杠(以及 - 取决于配置 - 其他足够(,它会自动删除。例如,将其设置为粉红色和粗体:
zle_highlight[(r)suffix:*]="suffix:fg=magenta,bold"
注意:这可能无法与外部 zsh 语法突出显示插件结合使用。