Digamos que eu tenho
let l:letter = 'A'
existe uma função que pega o l:letter
código ascii e o transforma 'B'
? Quero dizer algo como
let l:next_letter = l:letter + 1
Eu sei que há <Ctrl-A>
com set nf=alpha
, mas isso exige que tenhamos o cursor sobre o personagem no documento e eu queria saber se é possível fazê-lo com uma variável sem modificar o documento.
Aqui está o que eu tento até agora, mas como eu disse, ele modifica o documento e a posição do cursor:
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
não é uma página de manual padrão global para todos os idiomas, sério.
:help string-functions
como um pouco obscuro. Além disso, algumas linguagens de script como python e perl usam chr()
e ord()
funções para converter para ascii / character. Portanto, a pesquisa com esses termos ainda não mostraria as funções nr2char
e char2nr
. Acho que o comentário de @ romainl deve ser postado como resposta.
man man
. :help :help
é igualmente importante. Mas a documentação do vim é bastante massiva e difícil de entender nos primeiros anos. Assim, truques como :h function^D
nos dão pontos de entrada. Aqui seria :h functions
(/ :h string-functions
). Então, é fácil entender o que está fazendo o que. Mesmo se estivermos acostumados a outros idiomas. Nós sempre pode dar a informação (que é o que estamos fazendo na maioria das vezes), mas ensinar a pescar é mais importante - você sabe o provérbio ...
:help string-functions
não está mostrando como pescar. É mais como dar a isca a alguém e não ensiná-lo a pescar. Postar como eles podem procurar funções, é ensiná-los a pescar.
:help string-functions
.