Diciamo che ho
let l:letter = 'A'
c'è una funzione che accetta il l:letter
codice ASCII e lo trasforma in 'B'
? Intendo qualcosa del genere
let l:next_letter = l:letter + 1
So che c'è <Ctrl-A>
con set nf=alpha
, ma questo richiede di avere il cursore sul carattere nel documento e mi chiedevo se fosse possibile farlo con una variabile senza modificare il documento.
Ecco cosa ho provato finora, ma come ho detto, modifica il documento e la posizione del cursore:
fu! s:get_next_char(letter)
set nf=octal,hex,alpha
call setline(line('$') + 1, a:letter)
exe ':normal! G^'."\<C-A>"
set nf=octal,hex
let l:next_letter = getline('$')
normal! Gdd
return l:next_letter
endfu
string-functions
non è una pagina man standard globale per ogni lingua, sul serio.
:help string-functions
come leggermente oscuro. Inoltre, alcuni linguaggi di scripting come python e perl usano chr()
e ord()
funzioni per convertire in ascii / carattere. Quindi la ricerca con questi termini non mostra ancora le funzioni nr2char
e char2nr
. Penso che il commento di @ romainl debba essere pubblicato come risposta.
man man
. :help :help
è altrettanto importante. Ma la documentazione di Vim è piuttosto massiccia e difficile da immaginare nei primi anni. Quindi trucchi come :h function^D
darci punti di entrata. Qui sarebbe :h functions
(/ :h string-functions
). Quindi, è facile capire cosa sta facendo cosa. Anche se siamo abituati ad altre lingue. Possiamo sempre fornire le informazioni (è quello che stiamo facendo la maggior parte del tempo), ma l'insegnamento di come pescare è più importante - si conosce il proverbio ...
:help string-functions
non mostra come pescare. È più come dare a qualcuno l'esca e non insegnare loro a pescare affatto. Pubblicare come possono cercare funzioni, insegna loro a pescare.
:help string-functions
.