metrologia - ¿Cómo puedo asignar ctrl x ctrl o al espacio ctrl en terminal vim?
vim metrologia (6)
Después de buscar un poco en la red, parece que no puedo asignar Ctrl Space a nada / mucho. ¿Hay alguna manera de hacerlo hoy, lo que encontré usualmente tenía 2 años de edad?
Agregue el siguiente código a ~/.vimrc
:
" Ctrl-Space for completions. Heck Yeah!
inoremap <expr> <C-Space> pumvisible() /|/| &omnifunc == '''' ?
/ "/<lt>C-n>" :
/ "/<lt>C-x>/<lt>C-o><c-r>=pumvisible() ?" .
/ "/"//<lt>c-n>//<lt>c-p>//<lt>c-n>/" :" .
/ "/" //<lt>bs>//<lt>C-n>/"/<CR>"
imap <C-@> <C-Space>
Fuente: https://coderwall.com/p/cl6cpq
El nitpicker rompió la solución pablox. El quid de la solución era simplemente reasignar. Entonces, cuando deshabilita la reasignación, no puede funcionar.
Si realmente quieres noremap
un noremap
, así es como se ve:
inoremap <expr><C-space> neocomplete#start_manual_complete()
imap <C-@> <C-Space>
Lo que no funcionará: inoremap <C-@> <C-Space>
porque la parte <C-Space>
no se reasignará.
El problema parece ser que Terminal.app no interpreta <C-Space>
correctamente y Vim lo entiende como <C-@>
que es una asignación incorporada ( :help CTRL-@
).
Tal vez podrías ir con algo como lo siguiente en tu .vimrc:
if !has("gui_running")
inoremap <C-@> <C-x><C-o>
endif
que parece funcionar, aquí, pero no me gusta la idea de anular complementos como ese.
En su lugar, debe probar con <Leader>
( :help leader
), le ofrece grandes posibilidades para definir sus propias asignaciones personalizadas y (dependiendo del mapleader
que elija) no interferirá con los accesos directos / limitaciones específicos de OS / app y, por lo tanto, será más portátil.
Con esto en mi .vimrc:
let mapleader=","
inoremap <leader>, <C-x><C-o>
Solo presiono ,,
para completar los nombres de los métodos.
Para acomodar tanto Windows como Linux, apliqué esto a ~/.vimrc
if has("unix")
inoremap <C-@> <c-x><c-o>
elseif has("win32")
inoremap <C-Space> <c-x><c-o>
endif
Me encontré con el mismo problema, la respuesta corta es sí, sí, y no solo en la versión de GUI. Agregar esto a ti .vimrc
es suficiente:
inoremap <C-Space> <C-x><C-o>
inoremap <C-@> <C-Space>
- ¿Has probado
:inoremap <c-space> <cx><co>
? - ¿ Ctrl X Ctrl O hace algo cuando escribe en modo insertar? ¿Está
omnifunc
establecido?