Diciamo che ho
let l:letter = 'A'
c'è una funzione che accetta il l:lettercodice 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-functionsnon è una pagina man standard globale per ogni lingua, sul serio.
:help string-functionscome 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 nr2chare 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^Ddarci 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-functionsnon 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.