2011-07-01 1 views

Répondre

4

Ce n'est peut-être pas le meilleur vimscript de tous les temps, mais c'est ce que vous voulez! :-) Placez simplement ceci dans votre .vimrc et vous pouvez l'appeler avec le chef p.

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

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

C'est en fait parfait! Merci – Sjoerd

2

Utilisation de registres?

écrire cette ligne quelque part et le copier pour enregistrer p, puis utilisez "pp pour l'imprimer

import pdb; pdb.set_trace() 

"pY 

"pp 
import pdb; pdb.set_trace() 

ou utiliser des abréviations

:ab teh the 
6

Pourquoi ne pas essayer le plugin vimpdb? Alternativement, si vous cherchez des fonctionnalités de snippet, la combinaison des plugins supertab et snipmate fonctionne très bien.

+0

+1 pour snipmate. Je l'utilise exactement pour ça. –

+0

J'aime vim, mais je voulais un ensemble de fonctionnalités ide. Ces trois plugins, plus le projet, conqueterm, taglist, et quelques autres mineurs me donnent le meilleur des deux mondes. Et j'ai une idée de travail pour les «langues» spécialisées avec lesquelles je dois travailler. Eclipse ne fera pas de psl. –

9

j'utiliser un mappage simple (sans fonctions) au chef p:

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

Lorsque vous appuyez sur o, ce mode insertion insère une ligne vide après l'actuel (avec o) puis tape import pdb; pdb.set_trace(), enfin il revient en mode normal (avec Esq).


Si vous souhaitez insérer le code avant la ligne courante remplacer o par O:

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

Ou bien vous pouvez définir ce pour décalage p leader:

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

J'ai utilisé une variation de cette réponse pour insérer au-dessus de la ligne en cours et utiliser le même niveau de retrait, indépendamment de tous les plugins de retrait: 'nnoremap p yyP^Cimport pdb; pdb.set_trace()^['(le^C n'est pas" control-v C ", c'est juste"^"puis" C "). –

+0

Le '^ [' à la fin ne s'est pas développé à ESC pour moi dans gvim sous Windows (mais a été simplement imprimé dans le tampon). L'utilisation de '' a permis de résoudre ce problème. – Zakum

+1

@Zakum esprit de l'explication sur la façon d'insérer le caractère '^ [' sur le troisième paragraphe. –

Questions connexes