我刚刚安装覆盖范围当我注意到我的仓库中有一个文件时,我运行了几次.coverage
,根据file
实用程序的说法,这是一个8086 relocatable (Microsoft)
文件。然后我这样做了,因为我不知道它是什么,想知道里面有什么……
~/repos/personalsite(master 7↑)$ cat .coverage
...lots of output...
≤☃─☃┼±@≤⎽☃└:·/⎼e⎻⎺⎽/≤☃─☃┼±⎽☃└↓c⎺└/≤☃─☃┼±⎽☃└(└▒⎽├e⎼ 7↑)$
即使我按了几次 Enter 键,它仍然这样。不仅如此,当我在命令行中输入时,出现了我意想不到的字符,例如
$ ↓┘ ┼⎺├ ⎺┼┌≤ ├▒▒├┬▒≤ ☃⎽ ├▒e⎼e ┼⎺├
对我来说,唯一的解决方案就是关闭 (tmux) 窗口。我只是想知道 (a) 为什么会发生这种情况,以及 (b) 下次我碰巧这样做时是否有任何方法可以修复此问题?
答案1
对于问题 a):这取决于您拥有哪种类型的终端。只需执行 a 即可echo $TERM
查看您拥有哪种类型的终端。xterm
应该没问题。当通过串行控制台连接时,我经常遇到这个问题,并且唯一有效的终端类型是vt100
(一种旧但兼容性很好的终端)。当切换$TERM
到vt100
通过 SSH 时,我也遇到了同样的问题。
对于问题 b):执行命令reset
应该可以解决问题。也许您看到的命令也是乱码,但它应该可以工作。
只是为了澄清:每次您尝试cat
对二进制编码文件(而不是特别的.coverage
文件)执行操作时都会发生这种情况。
答案2
打印时,文字字符^N
可能会导致某些终端上出现这种行为。cat
尝试读取二进制编码文件时打印该字符。
要重现此行为,您可以^N
使用 中的文字字符输入将字符写入文件vi
。打开vi
,进入Ctrl-vCtrl-n插入模式,然后保存文件。如果您输入cat
此文件,您的终端的编码将失效。
文字字符会反转此行为,可以通过输入 来^O
写入。vi
Ctrl-vCtrl-o