很多时候,在我的 Mac 上,当我使用管道 (|) 字符后跟一个空格字符时,会在中间插入一个不可见的字符。
这在使用终端时尤其烦人,因为它会使命令无效。
如果我在 iterm2 中输入以下内容,我经常会得到以下信息:
ls | cat
zsh: command not found: cat
Run Code Online (Sandbox Code Playgroud)
如果我打的向上箭头键,让我以前的命令,然后取出并重新插入之间的空间|和cat,该命令将正常工作。
当我将工作和非工作命令复制粘贴到文件中时,如下所示:
non-working: ls | cat
working: ls | cat
Run Code Online (Sandbox Code Playgroud)
并在Hex Fiend 中打开它显示以下内容:
non-working: ls | cat
working: ls | cat
Run Code Online (Sandbox Code Playgroud)
我也在 SublimeText2 中使用方括号 ( []) 后跟一个空格遇到了同样的问题。所以我不相信它是 iTerm2 的问题。
我有一个目录,我将所有项目都放在其中,假设它~/projects是一个示例。我创建了一个名为的命令s,它接受一个参数,并将我移动到该目录中。例如:s foo将我移至~/projects/foo。
我想要的是某种类型的完成命令,它的作用就像cd这样我可以继续点击tab以进一步进入~/projects/...目录。
基本上,cd带有始终存在的前缀。
我在 中研究了 zstyle 完成man zshcompsys,但意识到我对它的了解还不够,无法正确理解它。