Mojave:制御文字を使用したテキストの貼り付け


3

Terminal.app内からgitを使用しますが、次のような結果になることがあります(特にマージの解決後)。

$ git status
  ...
  Untracked files:
      foo/bar/baz.orig

前の空白fooはタブ文字です。

Mojaveから、その行(rmファイルに行いたい)をコピーして貼り付けると、厄介な制御文字を貼り付けるかどうかの確認を求めるアラート(大音量で完了)が表示されます。

誰でも次のいずれかを知っています:

  1. アラートを無効にして、制御文字を貼り付ける方法があります、または
  2. 制御文字なしで貼り付けるキーボードショートカットはありますか?

FWIW、ファイルを削除する方法は他にもあることを理解しています(例:)、git status|grep orig$|xargs rm一般的な場合、制御文字の貼り付けを制限したい理由を理解しています。


制御文字をコピーしませんか?
マークウィルソン

回答:


3

OSを10.14.1以降に更新します

10.14のターミナルではタブ文字を貼り付けるときにこのダイアログが表示されるようですが、10.14.1および10.14.2の更新されたターミナルでは表示されません。

あるインストールでのみこの問題を再現できたのに、別のインストールでは再現できなかった理由について頭を悩ませていました。影響のある設定が見つからなかったため、ダイアログを表示したマシンを最終的に更新しようとしましたが、消えてしまいました。


1

したがって、タブ文字である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の「エスケープされたテキストを貼り付け」を使用してみてください。ちょっと変なもの、え?

  1. ターミナル内では、ほとんどの場合の最善の策は次のとおりです。
    • 一般的に、クリップボードへのアクセスに⌘Cおよび⌘Vショートカットを使用しないでください。
    • 代わりに、pbcopyコマンドにパイプして、pbpaste必要に応じて使用します。

そのため、これはになりgit status | pbcopyます。コピーしたい場合は、stderrとstdoutを組み合わせる必要があります。これgit error 2>&1 | pbcopyは、なしの空のクリップボードになり2>&1ます。

これにより、適切な制御文字(有効なUTF-8ではないもの)が取り除かれる可能性があります。しかし、あなたが述べたように、これらをコピーして貼り付けたくない理由はすでにわかっています。テキストだけでなく「制御文字」もキャプチャするように設定している場合、実際に話しているのはバイトストリームをキャプチャすることです。バイトシーケンス。


PS iTerm2への切り替えを検討しましたか?


1
>だから、私自身はあなたが経験しているものに出会うことはありません。しかし、「Mojave:制御文字を使用したテキストの貼り付け」というタイトルに従って、私があなたの質問の核心であると思うことに答えます。<私はもう自分自身でそれを見ていませんし、ここ数日間受信トレイの応答を見たまで、この問題をほとんど忘れていました。10.14.1で修正されたと思われます。
chrisbtoo

@chrisbtoo 10.14.1または10.14.2のいずれかで実際に修正されたことを確認できます。10.14.1でテストした場合、バージョンを絞り込むために私の回答を編集してください。
アレクサンダーオマラ

+1はiTerm2のために、それはターミナルIMHOよりはましだ
トルガOzses

10.14.0にロールバックし、この特定の問題が10.14.0に関連していることを確認できます。しかし、2番目の質問の問題は残っています。「もし誰か...制御文字なしで貼り付けるキーボードショートカットがあるかどうか?」私は「制御文字を安全にカット/ペーストする」と考えていますが、実際には対処されていません。そこで、この答えを減らして一般的な例を挙げます。代わりに、@ AlexanderO'Maraのコアを統合する場合は、これを削除します。
ジェフニクソン

0

システム環境設定でターミナルにフルディスクアクセスを許可してみます。

これは次のように実行できます。

  1. Apple> System Preferences ...に移動します。
  2. セキュリティとプライバシーをクリックします
  3. [プライバシー]タブを選択します
  4. 左側のペインで、[フルディスクアクセス]オプションを選択します
  5. 次に、ウィンドウの左下にある南京錠をクリックします
  6. 管理者パスワードを入力し、Unlockボタンをクリックしてください
  7. +右側のリストの下部にあるボタンをクリックしてください
  8. ターミナルアプリ(通常はアプリケーションフォルダー内のユーティリティフォルダー内にあります)に移動して開きます(注:ターミナルが既に実行されている場合は、最初に終了するように求められます)
  9. もう一度南京錠をロックしてください

次に、制御文字を含むテキストをターミナルに貼り付けて、どのように進むかを確認してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.