Vi'de hex veya octal kodlarını kullanarak ascii olmayan karakterleri girme


33

Postscript için bir golf kütüphanesi yazmaya çalışıyorum. Ancak kendisi yoğunlaştırılması gerekiyor. Bu yüzden çoğunlukla ascii metin içerisine keyfi baytlar yazmak için uygun bir yol istiyorum.

Bunun kesinlikle herhangi bir programlama diliyle kolayca yapılabileceğini biliyorum, ancak vi'de yapabilir miyim? ( :help octalyardım değildi).

Düzenleme: İşte postscript için ortaya çıkan golf kütüphanesi . Neyse ki, kütüphanenin kendisinin golf oynamanın aptalca bir fikir olduğunu fark ettim ve bunu yapmadım.


7
Vim varsa, bu yardımcı olabilir
sr_

Yanıtlar:


15

Sanırım kullandığını sanıyorum vim, çünkü bir vimin emri. Bazı sistemlerde , vi-uyumlu modda çalışan sadece bir sembolik bağlantıdır . :helpoctalvivim

Vim'de:

  • Kullanabileceğiniz temel çok dilli düzlemden unicode karakterleri girebilirsiniz: +
    tuşlarına basın ve ardından dört haneli onaltılık unicode kodunu girin.ctrlv
  • Başka bir seçenek digraphs. Onların vimyardımı ile onların hakkında daha fazla şey okuyabilirsiniz ( help: dig).
    Basın ctrl+ kve daha sonra iki karakter dizisi.
    Vim usig komutunda desteklenen dizileri listeleyebilirsiniz :digraph.

Nvi, vi ve diğer yerlerde:

  • Ctrl+ tuşlarına basın Shiftve Uardından unicode hex kodunu girin.

3
Ben düşünüyorum Ctrl+Vgirerken içindir ondalık uygulanmazsa tarafından, rakamlarx

3
@Carlos doğru. Bu cevap yanlış. Alan'ın cevabı doğru.
malan

60
:help i_CTRL-V_digit

Ekleme modunda, önce Ctrl+ Vyazıp

  • ondalık sayı (0-255)
  • o o zaman sekizlik bir sayı (o0-o377, yani 255 maksimum değerdir)
  • x o zaman onaltılık bir sayı (x00-xFF, yani 255 maksimum değerdir)
  • u daha sonra 4-hexchar Unicode dizisi
  • U sonra 8-hexchar Unicode dizisi

Ondalık ve sekizli sayılar üç basamakla sınırlıdır. 100'den küçük ondalık sayılar, dikkate alınmayan baştaki sıfırları içerebilir. Sekizli sayı az 100 Ekim (yani, 64) gelen sıfır içerebilir, ancak gerekli değildir. 100'den büyük veya eşit Sekizli sayı Ekim edebilir değil lider sıfır (ancak bir lider yazabilirsiniz içerir oisterseniz).

Sayıyı, bu sayı tabanı için geçerli bir rakam olmayan bir karakter yazarak sonlandırabilirsiniz. Örneğin,

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

Normal (bir oktet) altıgen sayılar iki rakamla sınırlıdır. Yukarıdakilerde olduğu gibi, hex kodlarıyla belirtilen karakterler için radix karakterini (örn. Ctrl+ Vuu0041 →  A) tekrarlayabilirsiniz  .  o ve  xbüyük / küçük harf duyarlı değildir.


Daha fazla ipucu eklemek için: ondalık sayı 0-255 arasında olmalıdır. X00-xFF arasındaki onaltılık sayı.
Wisbucky

ascii esaple ctrl + v x1b(ascii renk dizileri için)
ThorSummoner

1
Windows’taysanız ve Yapıştırmak için Ctrl + V tuşlarına basıp bıraktıysanız, Ctrl + Q tuşlarını yerine Yerleştir modunda kullanabilirsiniz. Bkz stackoverflow.com/questions/426896/...
Chris R. Donnelly
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.