uso usar usa texto puntos punto poner para los ejemplos cuando comas coma vim semicolon

usar - Vim inteligente insertar punto y coma



uso de la coma y punto y coma (5)

Debes probar el complemento Cosco.vim .

¿Existe un complemento de Vim que pueda manejar la inserción inteligente de punto y coma, como la de Eclipse?

Ejemplo (el caracter de la tubería es el cursor de inserción):

foobar(|)

Escribo un punto y coma:

foobar();|

Similar:

foobar("blah|")

Escribo un punto y coma:

foobar("blah");|

Si quiero un punto y coma en la posición original del cursor, presiono la tecla de retroceso después de la reubicación inteligente:

foobar("hello|") foobar("hello");| foobar("hello;|")


Quiero hacer lo mismo, trabajo toda la noche, toneladas de código, pero por fin, tengo una solución simple.

inoremap ;<cr> <end>;<cr>

y si estoy en un corsé, quiero agregar un punto y coma al final, como este

foo({ | })

;;<cr> o ..<cr> para hacer esto

inoremap ;<cr> <end>;<cr> inoremap .<cr> <end>. inoremap ;;<cr> <down><end>;<cr> inoremap ..<cr> <down><end>.


Utilizo la siguiente función y una asignación para insertar un punto y coma hasta el final de la línea y para eliminar los espacios restantes:

imap <leader>. <C-R>=Semicolonfun()<CR> fun! Semicolonfun() "{{{ call setline(line(''.''), substitute(getline(''.''), ''/s*$'', '';'', '''')) return "/<End>" endfunction "}}}

Así que si tienes algo como:

log.warning("you miss the |identifier")

Presionando o,. Si reasignas al líder, obtienes lo siguiente:

log.warning("you miss the identifier");|


Yo uso este mapeo:

inoremap <leader>; <C-o>A;

No es porque uso los puntos y coma a menudo y en más de un contexto.

  • <Co> se utiliza para ingresar un solo comando de modo normal.
  • A; significa "agregar un ; al final de la línea".

" ftplugin/c/c_snippet.vim inoremap <expr> <buffer> ; getline(''.'')[col(''.'')-1:-1]=~'')$'' ? ''<right>;'' : '';''

Esta versión no debe plantear problemas for si su motor de fragmentos de código lo expande a

for (...|) { <+code+> }<++>

Si el soporte abierto está en una nueva línea, desordenará las cosas.

Puede cambiar fácilmente la expresión regular a ''"/=)/+$'' para responder a su pregunta inicial.

inoremap <expr> <buffer> ; getline(''.'')[col(''.'')-1:-1]=~''"/=)/+$'' ? ''<end>;'' : '';''

Sin embargo, no creo que sea una buena idea. En ese caso, la asignación para <bs> será:

inoremap <expr> <buffer> <bs> getline(''.'')[:col(''.'')-2] =~ ''.*")/+;$'' ? ''<bs><c-o>F";'' : ''<bs>''