1

PDF ファイルを pdftk で圧縮解除し、正規表現を使用して Emacs で編集しようとしています。

問題は、このファイルにアクセント付きの文字が含まれており、Emacs がそれらを 8 進シーケンスとして表示すること\340です。このファイルを編集するには、2 つの方法があります (少なくとも私はそう思います)。

a) Emacs が実際のアクセント付き文字を表示し、8 進数の対応する文字を表示しないように、エンコーディングを適用します。Vim はすでにアクセント付きの文字を適切に表示しています。

b) 正規表現を使用して 8 進シーケンスを検索します。

a) については、(set-buffer-file-coding-system 'utf-8-dos)、(set-buffer-file-coding-system 'utf-8-unix)、(set-buffer-file -coding-system 'raw-text) は成功しませんでした。

b) に関しては、set-buffer-file-coding-system を適用した後、 を使用して 8 進シーケンスをインクリメンタル検索できますが、C-q ... RET本当に必要なこと、つまり文字列の置換を行うことができません。実際 、またはC-q ... RETを使用する場合、 は 8 進シーケンスと一致しません。 どちらも機能しません。M-%C-M-%C-x 8 `...

前もって感謝します。アントニオ

4

2 に答える 2

1

PDF ファイルにアクセスするバッファで次のキー シーケンスを試してください。

C-x RET r 文字コード RET

これにより、指定した文字エンコーディングを使用してファイルが再表示されます。

または、ファイルにアクセスするに使用する文字エンコーディングを指定したい場合は、次のようにします。

C-x RET c 文字コード RET

入力する直前にC-x C-f.

詳細については、ドキュメントを参照してください。

于 2012-11-26T03:34:47.757 に答える
0

@ステファン

実際、私は保存の違いについて話していたのではなく、表示の違いについて話していました。

どちらの場合も、ファイルを閉じて再度開いても、ファイルはそのままで、明らかな変更はありません。表示に関しては(set-buffer-file-coding-system 'windows-1252-unix)、モード ラインが から(Unix) ---(Unix) **-変わり、コード システムに変更がなく、実際にはバッファ内の文字が同じであることを示します (8 進シーケンスはまだ存在します)。

(revert-buffer-with-coding-system 'windows-1252-unix) を使用すると、ニーモニックに従ってモード ラインが から に変更され、コード システムが に変更されたこと(Unix) ---を通知します。 .* (Unix) ---windows-12**M-x list-coding-systems

(set-buffer-file-coding-system 'windows-1252-unix)スクラッチなどの他のバッファに適用すると、後者は から1\--に変わります* (Unix) **。したがって、このバッファにはlatin-1-dos、 からへの実際の宣伝された変更がありwindows-1252-unixます。

これには首尾一貫した設計があるのか​​もしれませんが、私にはわかりません。

アントニオ

于 2012-11-26T17:12:22.477 に答える