2009-11-15 10 views
46

Sto scrivendo molto codice Python di recente, e ho usato la modalità tab-to-space in vim. Mi stavo chiedendo come avrei fatto a non trascinare in vim senza lasciare la modalità di modifica, ad esempio, dopo aver finito se ...: blocco. Normalmente posso semplicemente digitare < < in unindent, ma ci vogliono troppe keystorkes, qualcuno ha un'idea migliore?come rimuovere unindent in vim senza uscire dalla modalità di modifica?

+0

Mettere queste righe nel vostro .vimrc, e si prevede di utilizzare 4 spazi invece di carattere TAB, con rientro chiave e rimozione dell'indentazione chiave correttamente. set tabstop = 4 set shiftwidth = 4 set expandtab set smarttab set cindent –

risposta

68

Tipo Ctrl - D sulla tastiera, rimuove un tabstop alla volta, lavora per le schede di spazio-sostituito.

+0

Funziona su gVim in esecuzione su Windows. Non sono sicuro che funzioni da qualche altra parte. –

+0

Scusa, ero maldestro. Funziona. +1 :) – Stephan202

+1

E per multi-linea? – Dorian

1

Backspace rimuove un livello di rientro alla volta.

+0

Sembra che il backspace non funzioni su Vim in Windows, serve qualche configurazione? – Thomson

+1

Dipende dalle opzioni impostate. –

+1

Credo (correggimi se sbaglio) che dipende dall'opzione ''backspace'' (controlla con': set backspace? '). Il mio non è impostato su nulla (solo 'backspace ='), e il tasto backspace non funziona per me. Forse giocherellare con quell'opzione (controlla ': help 'backspace'') potrebbe permetterti di tornare indietro sul rientro. – MathSquared

12

In Vim in Linux è possibile estrarre più righe utilizzando V per selezionare la prima linea. Premere la freccia giù per selezionare più righe. Quindi digitare < per rimuovere tutte le righe.

Se si desidera far rientrare, tipo > invece

+2

Questo funziona al di fuori della modalità di modifica. Sebbene sia effettivamente corretto, non è una risposta alla domanda indicata. – anishpatel

Problemi correlati