C'è un comando per dividere le linee in Vim?


15

In Vim, la Jchiave unisce due righe insieme. Esiste una combinazione di tasti simile, integrata, per dividere le linee con una nuova riga (nella posizione del cursore o simile)?

In alternativa, quale sarebbe il modo più efficace per definire una combinazione di tasti per farlo (in modalità normale, non in modalità inserimento)?


Risposte:


16

No, non esiste un comando integrato per questo.

Quando voglio dividere su un <Space>, lo faccio r<CR>.

--- MODIFICARE ---

Il commento di @ keith-nicholas mi ha ricordato questa domanda. FWIW Nel frattempo ho escogitato un metodo "universale", si spera:

function! BreakHere()
    s/^\(\s*\)\(.\{-}\)\(\s*\)\(\%#\)\(\s*\)\(.*\)/\1\2\r\1\4\6
    call histdel("/", -1)
endfunction

nnoremap <key> :<C-u>call BreakHere()<CR>

4
L'uso r<CR>è semplicemente intelligente! Grazie!
Marcelo,

1
è fantastico! super fastidioso andare in insert per inserire righe
Keith Nicholas,

Ho scoperto che s<CR>mantiene il rientro mentre r<CR>no.
Toxefa,

5

a Enter Escper dividere a destra del cursore o i Enter Escper dividere a sinistra.


1
Questo è tutto. Basta inserire una nuova riga. In alternativa: usa r + <return> per sostituire il carattere sotto il cursore con una nuova riga. Sarebbe bello avere un comando a lettera singola, ma per quanto ne so non ce n'è uno.
Tonny,

2

Il modo più semplice che ho trovato per dividere le linee in Vim è il comando in modalità normale gq(digitare entrambe le lettere in rapida successione in modalità normale o visiva):

  • In modalità visiva, dividerà tutto ciò che è selezionato.
  • In modalità normale, segui gqcon un movimento.

Ad esempio, gqldividerà una riga per la larghezza attualmente impostata. Per impostare la larghezza delle linee di divisione in modo che sia diversa dall'impostazione corrente, è possibile utilizzare

:set textwidth=<n>

Dove n = numero di caratteri che desideri in una riga, ad esempio 10, e torna alla tua larghezza normale quando hai finito.

Ho ottenuto queste informazioni da un video Youtube di Kholidfu che mostra come unire e dividere le linee in modalità normale usando un movimento: Vim Tutorial - Join and Split Lines .


1

Puoi definire il tuo usando la mappa. Per definire z come comando ad esempio:

:map z i<CTRL+m>

0

Puoi registrare una macro:

in modalità normale digitare "q +" per avviare la registrazione. premi "i", la macro che vuoi registrare. quindi premere di nuovo "q" per interrompere la registrazione.

per usare la macro vai in modalità normale e digita "@ + lettera".

nel mio caso ho usato la "b" per usare questa macro: per registrare il tipo in modalità normale "qbiq" per usare il tipo in modalità normale "@b"

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.