2010-03-02 11 views
7

J'utilise mvim. J'essaye de mapper des clefs de sorte que je puisse visuellement sélectionner des éléments alors je pourrais indenter le code vers l'intérieur ou vers l'extérieur. Cependant, lorsque vous effectuez un travail à l'extérieur après chaque frappe, une ligne supplémentaire en bas est sélectionnée. Quelle est la solution?vim indentant un bloc de code vers l'intérieur et vers l'extérieur

" Ctrl-x - move the block of visually selected code one tab right and keep visual mode alive 
" Ctrl-z moves the data in opposite direction 
" Usage : shift v and select multiple lines. then Ctrl x multiple times and 
" then Ctrl z multiple times 
vmap <C-x> >gv 
vmap <C-z> <gv 
+1

Vous pouvez également consulter cette question: http://stackoverflow.com/questions/2332340/indenting-a-bunch-of-lines-in-vim –

Répondre

16

Pourquoi voudriez-vous avoir le problème quand vous pouvez déjà faire cela?

>> - augmentation tiret bloc sélectionné

<< - tiret diminution du bloc sélectionné

Cela vous fera perdre le focus. Si vous voulez continuer à indenter, tapez . pour répéter la dernière action. Vous pouvez également taper gv pour sélectionner à nouveau votre dernière sélection.

Une autre option consiste à sélectionner et à taper un nombre avant de mettre en retrait, ce qui équivaut à répéter le nombre >> ou << autant de fois que le nombre que vous avez tapé.