it-swarm.it

Elimina dal cursore alla fine della riga in `vi`

So di averlo probabilmente esaminato un milione di volte in tutti i documenti vi che ho letto, ma non riesco a trovare l'eliminazione dal cursore al comando di fine riga.

334
Falmarri

Il comando dw verrà eliminato dalla posizione corrente del cursore all'inizio del carattere Word successivo. Il comando d$ (nota che è un simbolo di dollaro, non una "S") verrà eliminato dalla posizione corrente del cursore alla fine della riga corrente. D è sinonimo di d$.

499
Tok

Come altri hanno già detto: puoi usare d$ o D (shift-d) per eliminare dalla posizione del cursore fino alla fine della riga.

Quello che in genere trovo più utile è c$ o C (shift-c) perché verrà eliminato dalla posizione del cursore fino alla fine della riga e ti metterà in modalità [INSERIRE].

54
Brad Johnson

Una delle cose belle di vi è la sua struttura di comando logica. d seguito da un comando di movimento d viene eliminato dal bersaglio di quel movimento. $ si sposta alla fine della riga (mnemonico: come in regexps). Così d$ cancella fino alla fine della riga. Allo stesso modo, e si sposta in e nd della Parola corrente e w si sposta all'inizio del successivo w ord; così de elimina la fine della parola corrente e dw elimina inoltre il seguente spazio bianco.

Probabilmente si desidera utilizzare D. Spostare il cursore sul primo carattere che si desidera eliminare, quindi premere maiusc-D. Tutto finito. In realtà, si trova nel buffer di taglio predefinito, quindi è possibile incollarlo nuovamente.

Uso Dp (elimino alla fine della riga, quindi lo rimetto), mi sposto alla fine di un'altra riga, quindi p nuovamente per incollare lo stesso testo alla fine di questa altra riga. Funziona a meraviglia nei file di configurazione, in cui è necessario inserire alcuni URL complicati in due o più posizioni.

21
Bruce Ediger

Per eliminare un intervallo di righe dopo la posizione del cursore, 3D eliminerà dal cursore fino alla fine della riga, così come le due righe successive completamente (ovvero, elimina 3 righe dopo la posizione del cursore).

per esempio. per il seguente testo (cursore rappresentato come |),

If there's a cursor |in the line
here
we
go

Usando il comando 3D produrrà:

If there's a cursor
go
1
Nick Bull

Penso che una scorciatoia in modalità inserimento possa tornare utile.

In modalità inserimento forse sarebbe meglio iniziare a cambiare fino alla fine della riga (mettilo sul tuo ~/.vimrc):

inoremap <C-l> <C-o>C

Quindi hai, come è stato detto, D in modalità normale e Ctrl+l in modalità inserimento. Come puoi vedere, hai anche C che inizia a cambiare fino alla fine della linea.

<C-o> ......... insert normal keystroke in insert mode

Ho scelto Ctrl-l perché l è sotto le tue dita. Il Ctrl-k è già utilizzato per inserire digraph.

Ho cercato in :h i_Ctrl per alcune combinazioni di tasti gratuite, ed è in realtà il problema più grande quando si tratta di creare nuove scorciatoie per eseguire azioni in vim.

1
SergioAraujo