2012-06-24 16 views
11

No entiendo la diferencia entre let mapleader="," y let g:mapleader=",". Sé que g: significa que es una variable global, pero no entiendo claramente la diferencia. ¿Cuál debería usar en mi archivo .vimrc?Vim variables globales y mapleader

Respuesta

11

Si las declaraciones anteriores están ubicadas fuera de las definiciones de la función , tienen el mismo efecto de establecer una variable global. Sin embargo, si la primera instrucción, sin el prefijo g:, se usa en un cuerpo de función, define una variable local para esa función. Ver :help internal-variables y especialmente :helpg In a function:.

Por lo tanto, las funciones externas se pueden acceder a la variable líder de mapa global simplemente como mapleader.

1
let mapleader="," 

según lo indicado en el documento.

¿Por qué querrías usar g:mapleader? g: se usa principalmente en complementos para las variables globales let con el fin de exponer configuraciones a otros complementos o para que juegue en su .vimrc.

+1

Uno usaría 'g: mapleader' para acceder a la variable global del líder del mapa en una función. Vea referencias relevantes a la ayuda de Vim en mi respuesta. –

+0

Sí, pero no en lo que creo que es el contexto de la pregunta: establecer 'mapleader' en', '. – romainl

+0

El ajuste 'mapleader' podría ocurrir en una función. Especialmente si considera que el valor de 'mapleader' se usa para' 'en el momento en que se define la asignación. –