Come inserire caratteri non ascii usando i codici esadecimali o ottali in vi


33

Sto cercando di scrivere una biblioteca di golf per Postscript. Ma deve essere condensato da solo. Quindi ho bisogno di un modo conveniente per digitare byte arbitrari all'interno del testo principalmente ASCII.

So che questo può essere fatto facilmente con qualsiasi linguaggio di programmazione, ma posso farlo in vi? ( :help octalnon è stato d'aiuto).

Modifica: ecco la libreria di golf risultante per Postscript . Fortunatamente, ho capito presto che giocare a golf nella biblioteca stessa era un'idea stupida e non l'ho fatto.


7
Se Vim è disponibile, questo potrebbe essere d'aiuto
sr_

Risposte:


15

Presumo che tu usi vim, perché è un comando di VIM. Su alcuni sistemi è solo un collegamento simbolico a cui viene eseguito in modalità compatibile vi. :helpoctalvivim

In vim:

  • È possibile inserire caratteri Unicode dal piano multilingue di base che è possibile utilizzare:
    Premere ctrl+, vquindi immettere il codice Unicode esadecimale a quattro cifre.
  • Un'altra opzione è digraphs. Puoi leggere di più su di loro vimnell'help ( help: dig).
    Premi ctrl+, kquindi sequenza di due caratteri.
    Puoi elencare le sequenze supportate nel tuo comando vim usig :digraph.

In nvi, vi e altrove:

  • Ctrl+ Shifte premi, Uquindi inserisci il codice esadecimale Unicode.

3
Penso che Ctrl+Vsia per inserire cifre decimali , se non seguite dax

3
@Carlos è corretto. Questa risposta è sbagliata La risposta di Alan è corretta.
Malan,

60
:help i_CTRL-V_digit

Nella modalità di inserimento, digitare Ctrl+ Vseguito da

  • un numero decimale (0-255)
  • o quindi un numero ottale (o0-o377, ovvero 255 è il valore massimo)
  • x quindi un numero esadecimale (x00-xFF, ovvero 255 è il valore massimo)
  • u quindi una sequenza Unicode 4 hexchar
  • U quindi una sequenza Unicode a 8 hexchar

I numeri decimali e ottali sono limitati a tre cifre. I numeri decimali inferiori a 100 possono includere zeri iniziali, che vengono ignorati. I numeri ottali inferiori a 100 ott (cioè 64) possono includere zeri iniziali, ma non sono richiesti. I numeri ottali maggiori o uguali a 100 ott potrebbero non includere zero iniziali (ma ose si desidera è possibile digitare un iniziale ).

Puoi terminare un numero digitando un carattere che non è una cifra valida per quella radice. Per esempio,

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

I numeri esadecimali regolari (un ottetto) sono limitati a due cifre. Come sopra, puoi ripetere il carattere radix (ad es.  Ctrl+ Vuu0041 →  A) per i caratteri specificati da codici esadecimali.  o e x fanno distinzione tra maiuscole e minuscole.


Per aggiungere altri suggerimenti: il numero decimale deve essere compreso tra 0 e 255. Il numero esadecimale tra x00-xFF.
Wisbucky,

ascii esaple è ctrl + v x1b(per sequenze di colori ascii)
ThorSummoner

1
Ricorda che se sei in Windows e hai rimappato Ctrl + V per incollare, puoi usare Ctrl + Q in modalità Inserisci al suo posto. Vedi stackoverflow.com/questions/426896/…
Chris R. Donnelly il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.