したがって、タブ
文字であるUnicode U + 0009 "CHARACTER TABULATION"(UTF-8 / ASCII hex 09)は、単なる通常の文字であることに留意してください。対処するのが非常に迷惑なもの、はい。しかし、それは「制御文字」ではありません。tabというラベルが付いたキーボードのキーを押すと、「\ t」などのエスケープシーケンス/制御文字にマッピングされる場合がありますが、これは異なります。
実際に発生した特定の問題は、10.4.1 +で「修正」されています。ただし、これは、このエラーまたは同様のエラーが発生しないという意味ではありません。
たとえば、次のシーケンスを取ります。
printf '\033[34mEscape!\033[00m\n'
そして、それ(またはその出力)を別のシェルにコピー/ペーストしてみてください。また、Terminal.appの設定を「Control-Vで非ASCII入力をエスケープ」に設定するか、control-command-Vの「エスケープされたテキストを貼り付け」を使用してみてください。ちょっと変なもの、え?
- ターミナル内では、ほとんどの場合の最善の策は次のとおりです。
- 一般的に、クリップボードへのアクセスに⌘Cおよび⌘Vショートカットを使用しないでください。
- 代わりに、
pbcopy
コマンドにパイプして、pbpaste
必要に応じて使用します。
そのため、これはになりgit status | pbcopy
ます。コピーしたい場合は、stderrとstdoutを組み合わせる必要があります。これgit error 2>&1 | pbcopy
は、なしの空のクリップボードになり2>&1
ます。
これにより、適切な制御文字(有効なUTF-8ではないもの)が取り除かれる可能性があります。しかし、あなたが述べたように、これらをコピーして貼り付けたくない理由はすでにわかっています。テキストだけでなく「制御文字」もキャプチャするように設定している場合、実際に話しているのはバイトストリームをキャプチャすることです。バイトシーケンス。
PS iTerm2への切り替えを検討しましたか?