符号链接上的Zsh ls制表符完成不遵循符号链接
我在主目录中有一个文件夹:符号链接上的Zsh ls制表符完成不遵循符号链接,zsh,symlink,tab-completion,Zsh,Symlink,Tab Completion,我在主目录中有一个文件夹:hdd->/hdd ls-l硬盘驱动器输出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/?哪一种通常是首选行为?如果我在不使用任何补全的情况下
hdd->/hdd
ls-l硬盘驱动器
输出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
的内容,这是由于默认启用了选项自动删除斜杠
:
自动删除斜杠如果完成后的最后一个字符是斜杠,而键入的下一个字符是单词分隔符、斜杠或命令结尾的字符(如分号或符号),请删除斜杠 您可以使用禁用它
setop noautoremoveslash
您还可以将
zle
配置为突出显示斜杠(以及-取决于配置-其他足够的内容),它将自动删除斜杠。例如,将其设置为粉色和粗体:
zle_highlight[(r)suffix:*]="suffix:fg=magenta,bold"
注意:这可能不适用于外部设备