viで16進または8進コードを使用して非ASCII文字を入力する方法


33

私は、追記用のゴルフライブラリを作成しようとしています。しかし、それ自体を凝縮する必要があります。そのため、ほとんどのASCIIテキスト内に任意のバイトを入力する便利な方法が必要です。

これは、絶対にあらゆるプログラミング言語で簡単に実行できることを知っていますが、viで実行できますか?(:help octal助けにはならなかった)。

編集:これは、結果のpostscript用のゴルフライブラリです。幸いなことに、図書館でゴルフをすること自体は馬鹿げた考えであり、私はそれをしなかったことに早くから気づきました。


7
Vimが利用可能な場合、このかもしれないのヘルプ
sr_

回答:


15

vimのコマンドvimであるため、を使用すると仮定します。一部のシステムでは、vi互換モードで実行される単なるシンボリックリンクです。 :helpoctalvivim

vimで:

  • 使用できる基本的な多言語プレーンからユニコード文字を入力できます。+ を
    押してから、4桁の16進ユニコードコードを入力します。ctrlv
  • 別のオプションは有向グラフです。それらの詳細については、vimヘルプ(help: dig)を参照してください。+ を
    押してから、2文字のシーケンスを押します。 vim usigコマンドでサポートされているシーケンスをリストできます。ctrlk
    :digraph

nvi、vi、および他の場所:

  • Ctrl+ ShiftU押してから、Unicode 16進コードを入力します。

3
私は考えてCtrl+V入力するためである小数点が続かない場合は、数字をx

3
@Carlosは正しいです。この答えは間違っています。アランの答えは正しいです。
マラン

60
:help i_CTRL-V_digit

挿入モードで、Ctrl+を入力し、V続けて

  • 10進数(0〜255)
  • o 次に、8進数(o0-o377、つまり255が最大値)
  • x 16進数(x00-xFF、つまり255が最大値)
  • u 次に、4-hexchar Unicodeシーケンス
  • U 次に、8進文字のUnicodeシーケンス

10進数と8進数は3桁に制限されています。100未満の10進数には、先行ゼロが含まれる場合がありますが、これらは無視されます。100 oct(つまり64)未満の8進数には、先行ゼロが含まれる場合がありますが、必須ではありません。100以上8進数は、10月ない先行ゼロを含める(ただし、リードを入力してo、あなたがしたい場合)。

その基数に有効な数字ではない文字を入力することにより、数字を終了できます。例えば、

  • Ctrl+ V    065 →  A
  • Ctrl+ V    65B →  Ab
  • Ctrl+ Vo041 →  !
  • Ctrl+ Vo419 →  !9

通常の(1オクテット)16進数は2桁に制限されています。上記と同様に、16進コードで指定された文字に対して基数文字(たとえば、Ctrl+ Vuu0041 →  A)を繰り返すことができ  ます。  o また  x、大文字と小文字は区別されません。


さらにヒントを追加するには、10進数は0から255の間でなければなりません。x00〜xFFの16進数。
ウィスバッキー

ascii esapleはctrl + v x1b(asciiカラーシーケンス用)
ThorSummoner

1
Windowsで、Ctrl + Vを貼り付けて再マップした場合、その場所で挿入モードでCtrl + Qを使用できることを思い出してください。stackoverflow.com/questions/426896/…を
クリスR.ドネリー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.