tutorial metrologia instalar editar descargar commands comandos vim mapping omnicomplete

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?