WindowsからASCII以外のテキストをコピーしてEmacsに貼り付けると、8進数のシーケンスとして表示されます。たとえば、äをEmacsに貼り付けた場合、\ 344と表示されます。
Cq 344と入力して、Eをäに戻すことができます。面倒ですが、キャラクターが1人しかいなくても問題ありません。しかし、8進数のエスケープシーケンスに変換された多くの文字がある場合は、領域でコマンドを実行してすべてを内部に変換すると便利です。そのようなコマンドはすでにありますか?そうでない場合、それを行う関数をどのように記述しますか?
[.emacsファイルでデフォルトのコーディングシステムをutf-8に設定し、WindowsとLinuxで同じ.emacsファイルを使用しています。しかし、この問題は、WindowsアプリケーションからEmacsにコピーするときにのみ発生します。Emacsから別のWindowsアプリケーションへのコピーは正常に動作します。]
または、多分
—
wvxvw 14
set-clipboard-coding-system
。C-h a coding-system
このグループの他のどの機能が利用できるか見てみてください。
表示される\ 344は、構成の問題の結果です。事実の後でそれを「修正」するコマンドではなく、最初にそれを取得する理由を調査する必要があります。例えば、で始まる
—
ステファン
emacs -Q
、そしてあなたはすでにそこに問題を参照してください場合M-x report-emacs-bug
。
@Stefan時々、「なぜそれを得るのか」は明白ですが、それは事後の修正には役立ちません。たとえば、結果としてこの問題が発生しました
—
T. Verron、2014
insert-file-literally
(ファイルを元に戻したり、削除/再挿入したりするには遅すぎました)。
@Stefanいくつか例を挙げると、これを引き起こす可能性のあるEmacsの外部の非常に多くの設定ミスがある可能性があります。ソースエディターが誤ってクリップボードなどのコンテンツの種類を報告しました。元々誤ってエンコードされたいくつかの古いASPソースを編集するときに、これをよく見ました。
—
wvxvw 14
revert-buffer-with-coding-system
(ドキュメントを参照してください)。Emacsは、別のコーディングシステムにある環境から文字をコピーしたため、このように文字を表示します(発音記号を使用してラテン語をレンダリングするために使用される、いわゆる高ASCII文字のANSIを想定)が、バッファーはUTF-8(上位ビットが設定されているどのASCII文字が意味を持たないか、つまり無効であるか)。