2011-07-01 9 views

Respuesta

4

¡Puede que este no sea el mejor vimscript de todos los tiempos, pero sí lo desea! :-) Simplemente coloca esto en tu .vimrc y puedes llamarlo con el líder p.

map <Leader>p :call InsertLine()<CR> 

function! InsertLine() 
    let trace = expand("import pdb; pdb.set_trace()") 
    execute "normal o".trace 
endfunction 
+0

¡Esto es realmente perfecto! Gracias – Sjoerd

2

el uso de registros?

escribir esa línea en algún lugar y copiarlo para registrar p, a continuación, utilizar "pp imprimirlo

import pdb; pdb.set_trace() 

"pY 

"pp 
import pdb; pdb.set_trace() 

o utilizar abreviaturas

:ab teh the 
6

Por qué no probar el plugin vimpdb? Alternativamente, si busca la funcionalidad de fragmento, la combinación de los complementos supertab y snipmate funciona muy bien.

+0

+1 para snipmate. Lo uso para exactamente esto. –

+0

Me encanta vim, pero quería un conjunto de características ide. Estos tres complementos, además de project, conqueterm, taglist y un par de otros menores, me dan lo mejor de ambos mundos. Y tengo una idea funcional para "idiomas" especializados con los que tengo que trabajar. Eclipse no hará psl. –

9

que haría uso de un mapeo sencillo (sin funciones) a líder p:

nnoremap <leader>p oimport pdb; pdb.set_trace()<Esc> 

Cuando se pulsa o, esta entra en modo de inserción inserta una línea en blanco después de la actual (con o) y luego tipos import pdb; pdb.set_trace(), finalmente vuelve al modo normal (con Esq).


Si desea insertar el código antes de la línea actual o sustituir por O:

nnoremap <leader>p Oimport pdb; pdb.set_trace()<Esc> 

O, alternativamente, se podría configurar para este jefe de turno-t:

nnoremap <leader><S-p> Oimport pdb; pdb.set_trace()<Esc> 
+1

Utilicé una variación de esta respuesta para insertar encima de la línea actual y usar el mismo nivel de sangría, independientemente de cualquier complemento de sangrado: 'nnoremap p yyP^Cimport pdb; pdb.set_trace()^['(el^C no es" control-v C ", es solo"^"luego" C "). –

+0

El '^ [' al final no se expandió a ESC para mí en gvim en Windows (sino que simplemente se imprimió en el búfer). Usar '' en su lugar resolvió este problema. – Zakum

+1

@Zakum tenga en cuenta la explicación sobre cómo insertar el carácter '^ [' en el tercer párrafo. –

Cuestiones relacionadas