¿Puedo usar SPACE como mapleader en VIM?

82

De http://items.sjbach.com/319/configuring-vim-right obtuve que se suponía que Spacedebías poder usar como mapleader en vim. Lo he intentado, pero no parece funcionar. ¿Alguien que lo haya hecho funcionar?

Intentó:

let mapleader = <space>
Marlun
fuente
7
¡Increíble! Acabo de leer la misma publicación del blog y encontré esto después de probar <SPACE> ... Descubrí que en MacVim esto no eliminó la asignación de "mover un carácter hacia adelante" de la barra espaciadora, por lo que para otros que encuentren esto en Google: agregue "nnoremap <SPACE> <Nop>" antes de "let mapleader ..." esto funcionó para mí.
michiakig

Respuestas:

97

En su lugar, intente lo siguiente:

let mapleader=" "

Y recuerde escribir la siguiente línea antes de eso, para asegurarse de que la barra espaciadora no tenga ningún mapeo de antemano:

nnoremap <SPACE> <Nop>
Zsolt Botykai
fuente
19
Como Spacemanaki comenta en la pregunta anterior, nnoremap <SPACE> <Nop>era necesario que esto funcionara.
Sasha
1
@ Sasha: ¿en serio? ¿Podría explicar por qué, y si realmente lo es, quizás debería editar la pregunta?
greg0ire
4
Sin el mapeo de Sasha, presionar <Espacio> no se comportará como otras teclas como mapleader. <Espacio> en modo normal se asigna a <derecha>. Simplemente presione <espacio> un par de veces seguidas y verá un comportamiento no deseado, que puede solucionarse mediante nnoremap <Space> <nop>.
freeo
3
Para agregar a esta respuesta, tenga en cuenta que el valor de mapleadertake solo afecta las asignaciones que ocurren después de que mapleaderse establece. Ver :help leader.
evnu
Tuve que guardar y cerrar el archivo rc. Estaba usando :source %pero la reasignación de espacio no funcionaba.
Jonathan Morales Vélez
67

Mapleader es una variable de cadena de Vim. Para usar el espacio como líder, debes escapar del personaje especial.

let mapleader = "\<Space>"

Para obtener más información, consulte

http://vimdoc.sourceforge.net/htmldoc/eval.html#expr-quote

EDITAR:

Esto ya no me funciona en mi versión de Vim. Incluso con la sugerencia en los comentarios de anular el mapeo de la barra espaciadora en modo normal ejecutando nnoremap <SPACE> <Nop>.

Termino yendo con la solución dada en la respuesta a continuación.

map <Space> <Leader>
JayWHY
fuente
1
Además, asegúrese de usar comillas dobles "\<Space>"y no '\<Space>'.
crlane
1
Prefiero esta respuesta.
Cantó el
let mapleader = "\<Space>"funcionó para mí en nvim, pero no en vim. map <Space> <Leader>tampoco funciona en vim para mí.
Günter Zöchbauer
noremap <Space> <Nop> map <Space> <Leader>trabajó en vim
Günter Zöchbauer
Tuve que quitar el espacio alrededor =para que el mío funcionara, en Neovim.
Nikhil CSB
18

Las soluciones anteriores son excelentes, sin embargo, no aparece nada en la esquina de comando inferior derecha. Si no tiene ningún uso para la \clave de todos modos, intente usar map <SPACE> <leader>y \aparecerá en la esquina de comandos. Eso y no tiene que desasignar el espacio primero, como se sugiere en los comentarios anteriores.

esoshippos
fuente
3
Esto rompe el comentarista de NERD. Y al menos en Vim 8 y Neovim, el espacio aparece como <20>si estuviera showcmdencendido, así que supongo que con Vim lo suficientemente nuevo, esta respuesta es obsoleta.
user31389
Solo quiero agregar aquí que esta también es la mejor solución si ya ha desarrollado la memoria muscular para el líder predeterminado, pero desea comenzar a usar el espacio para una mejor eficiencia. "\ r" todavía está conectado a mi memoria muscular para abrir Nerd Tree y usar cscope, por lo que es bueno que aún funcione incluso cuando mapeo el espacio al líder (aunque no siento la necesidad de usar Nerd Commenter).
DrEsperanto