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
:help string-functions
.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 usamchr()
eord()
funções para converter para ascii / character. Portanto, a pesquisa com esses termos ainda não mostraria as funçõesnr2char
echar2nr
. 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.Respostas:
É fácil de fazer com
:help nr2char()
e:help char2nr()
.Exemplo de uso:
:let b_char = nr2char(char2nr('A') + 1)
Então,
:echo b_char
retornará 'B'fonte
A questão é (grifo meu):
Como você deseja uma função , a primeira coisa a tentar é
:help function<C-d>
listar todas as tags de documentação que contenhamfunction
:O candidato mais óbvio é
function-list
, vamos tentar:Você deve ter notado um padrão, aqui: as funções são agrupadas por tema. Isso significa que, se você precisar de uma função para filtrar uma lista, poderá ir diretamente para
:help list-functions
.As páginas de ajuda do Vim são muito úteis; muitas vezes
:help <keyword><C-d>
você terá um longo caminho ;-)fonte