Disons que j'ai
let l:letter = 'A'
existe-t-il une fonction qui prend le l:letter
code ascii et le transforme 'B'
? Je veux dire quelque chose comme
let l:next_letter = l:letter + 1
Je sais qu'il y a <Ctrl-A>
avec set nf=alpha
, mais cela nécessite d'avoir le curseur sur le caractère dans le document et je me demandais s'il était possible de le faire avec une variable sans modifier le document.
Voici ce que j'essaie jusqu'à présent, mais comme je l'ai dit, cela modifie le document et la position du curseur:
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'est pas une page de manuel standard mondiale pour chaque langue, sérieusement.:help string-functions
que c'est un peu obscur. De plus, certains langages de script comme python et perl utilisentchr()
etord()
fonctionnent pour convertir en ascii / caractère. Donc, la recherche avec ces termes n'afficherait pas non plus les fonctionsnr2char
etchar2nr
. Je pense que le commentaire de @ romainl devrait plutôt être publié comme réponse.man man
.:help :help
est tout aussi important. Mais la documentation vim est assez massive et difficile à comprendre les premières années. Ainsi des astuces comme:h function^D
nous donnent des points d'entrées. Ici, ce serait:h functions
(/:h string-functions
). Ensuite, il est facile de comprendre ce qui fait quoi. Même si nous sommes habitués à d'autres langues. Nous pouvons toujours donner les informations (c'est ce que nous faisons la plupart du temps), mais apprendre à pêcher c'est plus important - vous connaissez le proverbe ...:help string-functions
ne montre pas comment pêcher. C'est plus comme donner à quelqu'un l'appât et ne pas lui apprendre à pêcher du tout. Afficher comment ils peuvent rechercher des fonctions, c'est leur apprendre à pêcher.Réponses:
C'est facile à faire avec
:help nr2char()
et:help char2nr()
.Exemple d'utilisation:
:let b_char = nr2char(char2nr('A') + 1)
Ensuite,
:echo b_char
retournera «B»la source
La question est (soulignement le mien):
Puisque vous voulez une fonction , la première chose à essayer est de
:help function<C-d>
répertorier chaque balise de documentation contenantfunction
:Le candidat le plus évident est
function-list
, essayons-le:Vous avez peut-être remarqué un schéma, ici: les fonctions sont regroupées par thème. Cela signifie que, si vous avez besoin d'une fonction pour filtrer une liste, vous pouvez y accéder directement
:help list-functions
.Les pages d'aide de Vim sont très utiles; souvent, les temps vous
:help <keyword><C-d>
mèneront loin ;-)la source