let
:let
es mutable, esto significa que puedes cambiar el valor de la variable en cualquier momento en el futuro.let
.const
. Al ser inmutables, una vez que a la variable se le asigna un valor, ya no puedes reasignarle un valor diferente más adelante.SHELL
de entorno en tu terminal, puedes acceder a ella desde Vim mediante:&
(estos son ajustes a los que accedes con set
).set background?
para ver el valor de la opción background
.@
.@a
. También puedes actualizarlo con let
."ap
), este mostrará el contenido que es "chocolate donut". El operador .=
une dos cadenas. La expresión let @a .= " donut"
es lo mismo que let @a = @a . " donut"
tortita
es de hecho una variable global. Cuando defines una variable global, puedes llamarla desde cualquier lugar.g:
a la declaración de una variable, también estás creando una variable global:pancake
como g:waffle
tienen el mismo ámbito de trabajo, son globales. Puedes llamar a cada una de ellas con o sin g:
.b:
es una variable de buffer. Una variable de buffer es una variable que es local al buffer actual (ver capítulo 02). Si tienes múltiples buffers abiertos, cada buffer tendrá su propia lista separada de variables de buffer.echo b:donut
en el buffer 1, mostrará "chocolate donut". Si ejecutas lo mismo pero ahora en el buffer 2, en este caso se mostrará "frambuesa donut".b:changedtick
que guarda el número acumulado de todos los cambios realizados en el buffer actual.echo b:changedtick
y toma nota del número que devuelve..echo b:changedtick
y comprueba el número que devuelve ahora.w:
es una variable cuyo ámbito de trabajo es la ventana. Existe solo en esa ventana en la que se ha declarado.echo w:donut
y verás que en cada una devolverá valores únicos.t:
es una variable propia de esa pestaña. Solo existe en esa pestaña.echo t:donut
para obtener valores distintos en cada una de ella.s:
es una variable de script. A estas variables solo se puede acceder desde dentro de ese script.docena.vim
y dentro del archivo tienes lo siguiente::source dozen.vim
. Ahora llama a la función Consume
:Consume
, ves que se decrementa el valor de la variable s:dozen
tal como se espera. Cuando tratas de obtener directamente el valor de s:dozen
, Vim no la encontrará porque la estás invocando fuera de su ámbito. s:dozen
solo es accesible desde dentro de dozen.vim
.dozen.vim
con el comando source
, Vim resetea el contado de s:dozen
. Si estás en la mitad de la acción de decrementar el valor de s:dozen
y ejecutas :source dozen.vim
, el contador volverá a poner su valor a 12. Esto puede ser un problema para los usuarios menos avezados. Para solucionar este problema, vamos a modificar el código:source
con el archivo dozen.vim
mientras estemos a la mitad del proceso de decremento de la variable, Vim lee !exists("s:docena")
, encuentra que esto es verdad y no resetea el valor de nuevo a 12 manteniendo el valor que tenía.l:
) como la variable de función formal (a:
) serán tratadas en el próximo capítulo.v:
es una variable especial propia de Vim. No puedes definir estas variables, solo utilizarlas. Ya hemos visto algunas de estas.v:version
muestra la versión de Vim que estás utilizando.v:key
contiene el valor del elemento actual cuando interactúas con un diccionario.v:val
contiene el valor del elemento actual cuando ejecutas una operación map()
o filter()
.v:true
, v:false
, v:null
y v:none
son tipos de datos especiales.:h vim-variable
o :h v:
.