vi comando per l'aggiunta di una riga vuota?


24

In vi, posso usare oo Oper aggiungere una riga vuota e passare alla modalità di inserimento. Ma cosa succede se voglio rimanere in modalità comando, c'è un comando per questo?

Nel googling, sto vedendo suggerimenti per aggiungere cose al mio VIMRC, ma sembra che ci dovrebbe essere un modo più semplice (che funzionerà sempre).

Risposte:


25

Secondo le FAQ VIM è possibile utilizzare il :putcomando:

12.15. Come si inserisce una riga vuota sopra / sotto la riga corrente senza accedere alla modalità di inserimento?

È possibile utilizzare il comando ": put" ex per inserire righe vuote. Ad esempio, prova

: put = ''
: put! = ''

Per ulteriori informazioni, leggi

: aiuto: mettere

ma poi è davvero più facile aggiungere:

map <Enter> o<ESC>
map <S-Enter> O<ESC>

al tuo .vimrc. In questo modo è possibile premere Entero Shift-Enterin normal modeper inserire una riga vuota sotto o sopra la linea corrente. Ovviamente sostituisci <Enter>e <S-Enter>con le tue chiavi preferite.


15

Parte del fascino dell'uso VIè avere una modalità di comando per manipolare il testo e una modalità di modifica per aggiungere testo. Questo ti impedisce di dover colpire CTRL, qualunque cosa per realizzare le cose.

Gli altri suggerimenti potrebbero funzionare - non li ho mai provati - ma sembrano richiedere parecchi personaggi o manipolare VItroppo l'ambiente.

Prova a utilizzare o[ESC]seguito da a .per ogni nuova riga che desideri aggiungere o 5.per aggiungere 5 righe. Questo è molto più veloce e funzionerà sempre su qualsiasi installazione di VI.


1
Puoi usare .per ripetere, ma puoi anche fare <number>o<esc>, ad esempio:5o<esc>
bollovan l'

1
Funzionerebbe sicuramente. Ma mi piace vedere come il comando avrà effettivamente un impatto sul documento prima che lo faccia più volte. Non posso dirvi quante volte ho o'daggiunto un nuovo paragrafo in VI, solo per scoprire che il bel paragrafo era in realtà sei righe accuratamente spezzate / racchiuse in parole.
Glorytoad,


1

Ciò aggiungerà una riga vuota dopo la riga corrente:

:put _ 

In alternativa, specificare una riga all'inizio.


0

Su Vim 7.3: <number>o<esc>crea una sola riga vuota.


Bene, aggiungendo <esc>vai di nuovo dalla modalità di inserimento alla modalità di comando. Penso che stia cercando una risposta che non vada affatto alla modalità di inserimento.
Bernhard,

Oh! Ho dimenticato di uscire dalla modalità di inserimento con <esc>. In questo caso, funzionerà. Duplicherà anche la riga modificata su tutte le righe seguenti.
Hakim,


0

Per inserire una riga vuota dopo la riga corrente rimanendo in modalità comando, utilizzare:

: r !echo

Questo è il rcomando " ead in un file", ma invece di dargli un nome file, gli diciamo di leggere l'output di un comando shell ( !); quel comando shell, echostampa semplicemente una riga vuota. Dopo aver inserito la riga vuota, si rimane in modalità comando.


-2

Sono sorpreso che nessun altro abbia menzionato questo:

Utilizzare 'r' seguito da 'Tasto Invio' in modalità riga di comando.

In ritardo alla festa di 7 anni però :)


1
Solo che questo ti porta fuori dalla modalità di comando e sostituisce la riga corrente con una vuota.
Jeff Schaller

Non sono sicuro di cosa stia dicendo @Jeff. Le mie osservazioni su questo comando sono (1) non funziona se ci si trova attualmente su una riga vuota e (2) in caso contrario, elimina il carattere sotto il cursore.
Scott,

Ho sbagliato a parlare; rsostituisce infatti il ​​personaggio attuale. Ti porta ancora in modalità comando.
Jeff Schaller

Concordato. Questa è una limitazione: deve essere eseguita su una riga non vuota + su uno spazio vuoto prima della riga. Non ci ho pensato. Grazie.
Akhilesh Siddhanti,
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.