Digamos que tengo
let l:letter = 'A'
¿hay una función que tome el l:letter
código ascii y lo transforme 'B'
? Me refiero a algo como
let l:next_letter = l:letter + 1
Sé que hay <Ctrl-A>
con set nf=alpha
, pero eso requiere tener el cursor sobre el carácter en el documento y me preguntaba si es posible hacerlo con una variable sin modificar el documento.
Esto es lo que intento hasta ahora, pero como dije, modifica el documento y la posición del 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
no es una página de manual estándar global para todos los idiomas, en serio.
:help string-functions
como un poco oscuro. Además, algunos lenguajes de script como python y perl usan chr()
y ord()
funciones para convertir a ascii / character. Por lo tanto, la búsqueda con estos términos tampoco mostraría las funciones nr2char
y char2nr
. Creo que el comentario de @ romainl debería publicarse como respuesta.
man man
. :help :help
Es igualmente importante. Pero la documentación de VIM es bastante masiva y difícil de entender los primeros años. Así trucos como :h function^D
darnos puntos de entrada. Aquí estaría :h functions
(/ :h string-functions
). Entonces, es fácil entender qué está haciendo qué. Incluso si estamos acostumbrados a otros idiomas. Siempre podemos darle la información (que es lo que estamos haciendo la mayor parte del tiempo), sino enseñar a pescar que es más importante - se conoce el proverbio ...
:help string-functions
no muestra cómo pescar. Es más como darle el anzuelo a alguien y no enseñarle a pescar en absoluto. Publicar cómo pueden buscar funciones es enseñarles a pescar.
:help string-functions
.