我在 Windows 10 上并且正在使用 Git Bash。
当我从该窗口复制或粘贴到该窗口时,有时会在字符串的开头出现杂散字符“(十进制 150,十六进制 0x96)。
此字符通常是不可见的,这会导致“命令未找到”之类的错误。在我将问题归咎于复制粘贴之前,我已经为这些问题苦苦挣扎了很长时间。
最后,我很幸运地将一些文本作为参数粘贴到命令中,该命令打开了一个浏览器,其中包含粘贴文本的 URL,并且在浏览器地址栏中可以看到该字符:
我 100% 确定是粘贴操作产生了这个字符。也就是说,如果我将文本直接从源复制到浏览器,则不会出现该字符。如果我手动将相同的文本输入 Git Bash,则不会出现该字符。但如果我将文本粘贴到 Git Bash 中,则会出现该字符。
这真是太麻烦了。我快绝望了,因为我不知道是什么机制导致了这种现象。
150 号角色很特别。以下是我在 Google 上找到的:
受保护保护区的起点,保护区的起点,受保护保护区的起点
开始一串字符位置,这些位置不能手动更改或传输。也可以选择防止擦除。EPA 将结束该字符串。
问题:如何阻止此字符潜入粘贴到 Git Bash 的文本中?
答案1
好的,这是由于我按了不必要的键造成的。
在 Linux 中,我习惯使用 进行粘贴Ctrl+Shift+V
。当此命令无法在 Windows Git Bash 终端中粘贴时,我会记得按Shift+Ins
。
Ctrl+Shift+V
看似没什么效果,但实际上它插入了一个不可见的控制字符。
如果我碰巧按下Ctrl+Shift+V
命令的开头,结果将如下所示:
当我尝试将其复制并粘贴到浏览器中时,它显示如下:
$ echo
bash: $'\302\203\302\226echo': command not found
UPD:mintty
支持 Git Bash 的终端有一个选项可以切换到 Ctrl+Shift+C/V 组合键!