Emacs(または他のエディタ)でカーソルのバイトオフセットを表示するには?

Emacs(または他のエディタ)でカーソルのバイトオフセットを表示するには?

この質問は私がemacsの使用を好むことを示唆していますが、結論は何らかの方法でプレーンテキスト検索と表示/コピー - 貼り付けを実行できるようにしたいということです。バイトオフセット一致するテキストの

はっきり言えば、バイトオフセット、私の言葉はemacを言うことではありませんより値、表示数量数値バッファの先頭から始まります。 UTF-16LEではよりは1文字として扱われます\x0d\x00\x0a\x00が、私が興味のあるのは4バイトです。

「一般的な」読み取りおよび検索可能な方法でテキストを表示しながら、この基本情報を表示できる他のエディタ(またはビューア)が便利です。

同期された16進ビューもプレーンテキストビューは問題ありませんが、一般的な16進ダンプビューア/エディタは(通常)ASCII文字のみを表示し、次のことを行うFOSS 16進数を見つけることができなかったので、私が望むものではありません。ダンプビューア/エディタ比の単純なテキストモードの検索 -ASCII UTF-8またはすべてのUTF-16文字列。

私は主にテキストの読みやすさと検索可能性に興味があるので、「一般」16進ダンパーは単なる代替手段です(すでに使用しています)。

ベストアンサー1

まず、知らなかった場合、Emacsはhexl-find-file16進編集モードでファイルを開くことができます。私はこれがあなたが要求したものではないことを知っています。しかし、すでにEmacsを使用していてEmacsに精通している場合は、将来のニーズのためにそれについて知っておくことをお勧めします。

第二に、このようなファイルの「生」編集には本当に良いです(私はこれをたくさんします)find-file-literally。これはあなたが期待することを行い、辞書のUnicodeであるふりをし、ASCII以外の文字(および制御文字など)のエスケープを示すファイルを開きます。これはあなたが望むようにうまくいくかもしれませんが、ASCII以外のコンテンツがたくさんある場合、実際にテキストを読むことができないという明らかな欠点があります。

enable-multibyte-charactersしたがって、ネイティブサポートの下には、それを切り替えるための変数と関数がありますset-buffer-multibyte。これの利点は、バッファのレンダリングを動的に変更することです。たとえば、次のことを試してみてください。

(defun my-multi-toggle ()
  (interactive)
  (set-buffer-multibyte (not enable-multibyte-characters)))
(global-set-key (kbd "C-~") 'my-multi-toggle)

これで、生モードを動的に切り替えることができるキーが作成されました。また、カーソルを同じ位置に保持する良いプロパティもあります。 しかし、このネイティブモードは、ファイルがエンコードとして使用されるのではなく、内部表現(UTF-8のように見えます)を示します。いくつかのトリックを使用すると、話すことができます(たとえば、find-file-literally開いているファイルにを使用すると、再び訪問するかどうかを尋ねるメッセージが表示されますが、これにより場所がリセットされ、ファイルが再ロードされます)。しかし、次のように聞こえます。上記はすでに機能しています。 (私の考えでは、バイナリファイルの一部のテキストフィールドを編集しようとしているようです...)

おすすめ記事