¿Cómo map {CTRL 0, -,=} llaves en vim?
-
12-12-2019 - |
Pregunta
Diseño de mi teclado (2ª Fila):
` 1 ... 0 - = retroceso
Quiero asignar llamadas de función a Ctrl + 0 , - , = .
Esta es la función que creé:
" it doesn't work
nnoremap <C-=> :call IncFontSize(+1)<CR>
" it works
nnoremap <C--> :call IncFontSize(-1)<CR>
" it doesn't work
nnoremap <C-0> :call IncFontSize(0)<CR>
fun! IncFontSize(inc)
if !exists('+guifont')
return
endif
let s:defaultfont = 'Ubuntu Mono 12'
if a:inc==0 || empty(&guifont)
let &guifont = s:defaultfont
return
endif
let &guifont = substitute(&guifont, '\d\+$', '\=submatch(0)+'.a:inc, '')
endfun
¿Cómo puedo asignar las llamadas de la función a estas claves?
Solución
Anote cómo en el modo de línea de comandos, Ctrl - _ resultados en ^_
, pero ctrl - 0 y ctrl - = no produce nada.
Debido a la forma en que la entrada del teclado se maneja internamente, diferenciando esto, así como muchas otras combinaciones clave (como ctrl + letra vs. ctrl < / KBD> + Shift + letra ) Lamentablemente no es posible hoy, incluso en GVIM. Este es un punto de dolor conocido, y el sujeto de diversas discusiones sobre VIM_DEV y el canal #VIM IRC.
Algunas personas (anteriores Paul Leonerd Evans) quieren arreglar eso (incluso para la consola VIM en terminales que apoyan esto), y han flotado varias propuestas, CP. link
Pero a partir de hoy, ningún parches o voluntarios aún se han presentado, aunque muchos han expresado el deseo de tener esto en un futuro lanzamiento principal de VIM 8.
Otros consejos
http://vim.wikia.com/wiki/fast_window_resiziz_with_plus/minus_Keys
Solo solo +
y -
...... Sin nombre de alias
:nmap + :echo "hello world"<CR>
es lo que quieres?