Come eliminare il testo selezionato nell'editor vi


116

Sto usando PuTTY e l'editor vi. Se seleziono cinque righe utilizzando il mouse e desidero eliminare quelle righe, come posso farlo?

Inoltre, come posso selezionare le linee usando la mia tastiera come posso in Windows dove premo Shifte sposto le frecce per selezionare il testo? Come posso farlo in vi?


1
Ho la lista degli uomini stampata ma non sono riuscito a trovare come eliminare il testo selezionato

x Elimina il carattere a destra del cursore X Elimina il carattere a sinistra del cursore D Elimina alla fine della riga dd Elimina la riga corrente: d Elimina la riga corrente da lagmonster.org/docs/vi.html spero che aiuti un po '
Mawg dice reintegrare Monica il

1
Domande VIM su superutente? LOL!
Pascal Thivent

1
@Pascal: hmm, sì, hai ragione. Risposta ben formattata, a proposito. Oh, e la sua domanda non riguardava VIM, ma VI. ;)
Marcel Korpel

Risposte:


215

Sto usando PuTTY e l'editor vi. Se seleziono cinque righe utilizzando il mouse e desidero eliminare quelle righe, come posso farlo?

Dimentica il mouse. Per rimuovere 5 righe:

  • Vai alla prima riga e digita d5d( ddelimina una riga, d5delimina 5 righe) ~ o ~
  • Digitare Shift-vper entrare in modalità di selezione formato da linee , quindi spostare il cursore verso il basso con j(sì, uso h, j, ke lper spostare a sinistra , verso il basso , fino , a destra , rispettivamente, che è molto più efficiente utilizzando le frecce) e il tipo ddi eliminare la selezione.

Inoltre, come posso selezionare le linee usando la mia tastiera come posso in Windows dove premo Shifte sposto le frecce per selezionare il testo? Come posso farlo in vi?

Come ho detto, utilizzare Shift-vper accedere alla modalità di selezione a riga o vper accedere alla modalità di selezione a caratteri o Ctrl-vper accedere alla modalità di selezione a blocchi. Quindi spostare con h, j,k e l.

Suggerisco di passare un po 'di tempo con il Vim Tutor (corri vimtutor) per familiarizzare con Vim in un modo molto didattico.

Guarda anche


1
In realtà, vim ha un ottimo supporto per il mouse se il tuo terminale lo supporta. Ad esempio, utilizzando il gpmdemone in una console, in esecuzione xtermo konsolein un ambiente grafico, puoi dire a vim set mouse=a(o aggiungerlo al tuo .vimrc) e il mouse può essere utilizzato per la selezione, il ridimensionamento delle divisioni, ecc.
Ben Voigt

@ Ben hai ragione, non uso affatto il mouse ma questo non significa che VIM non possa gestirlo (in determinate circostanze). In realtà stavo rimuovendo questa parte imprecisa dalla mia risposta mentre digitavi.
Pascal Thivent

Inoltre, è davvero difficile dire quando la tua V è maiuscola o no ... Suggerirei di dire [Shift] + [V] per la selezione in modalità linea.
Ben Voigt

So che è stato un po ', ma perché utilizzando h, j, ke lsarebbe molto più efficiente rispetto utilizzando le frecce? Non vedo alcun problema usando le frecce e il risultato finale sembra lo stesso. Inoltre, le frecce sono state inizialmente progettate a tale scopo, quindi la loro disposizione sembra molto più intuitiva (almeno per me)
Frederico Pantuzza

1
@FredericoPantuzza A quel punto è una questione di movimento del braccio: l'obiettivo è di tenere sempre le dita sui tasti della riga di casa. Dover prendere il braccio destro e farlo scorrere sui tasti freccia per usarli si somma nel tempo.
AndrewF

59

Fallo nel modo vi.

Per eliminare 5 righe premere: 5dd (5 cancella)

Per selezionarli (copiarli effettivamente negli appunti) digita: 10yy

È un po 'difficile da capire, ma molto utile da imparare quando si usano questi terminali remoti

Sii consapevole delle curve di apprendimento per alcuni editor:


(fonte: calver su unix.rulez.org )


31

Se desideri eliminare utilizzando i numeri di riga, puoi utilizzare:

:startingline, last line d

Esempio:

:7,20 d

Questo esempio cancellerà le righe dalla 7 alla 20.


Finora non sono stato a conoscenza di questo suggerimento. Esso funziona magicamente! Grazie!
Tung,

13

L'evidenziazione con il mouse evidenzia solo i caratteri sul terminale. VI non ottiene davvero queste informazioni, quindi devi evidenziarle in modo diverso.

Premere "v" per accedere a una modalità di selezione e utilizzare i tasti freccia per spostarla. Per eliminare, premere x. Per selezionare le righe alla volta, premere MAIUSC + V. Per selezionare i blocchi, prova ctrl + v. Va bene, diciamo, per inserire molte righe di commento davanti al tuo codice :).

Sto bene con VI, ma mi ci è voluto un po 'per migliorare. I miei compagni di lavoro mi hanno consigliato questo cheat sheet . Tengo una stampa sul muro per quei momenti strani in cui dimentico qualcosa.

Buon hacking!


6

Quando si utilizza un terminale come PuTTY , di solito i clic del mouse e le selezioni non vengono trasmessi al sistema remoto. Quindi, vi non ha idea che hai appena selezionato del testo. (Ci sono eccezioni a questo, ma in generale le azioni del mouse non vengono trasmesse.)

Per eliminare più righe in vi, utilizzare qualcosa come 5ddeliminare 5 righe.

Se non stai usando Vim , ti consiglio vivamente di farlo. È possibile utilizzare la selezione visiva, in cui premere Vper avviare un blocco visivo, spostare il cursore all'altra estremità e premere dper eliminare (o qualsiasi altro comando di modifica, come ycopiare).


1
@Justin L .: Usa <kbd>a</kbd>.
Greg Hewgill

1
Grazie! : D Ce ne sono altri nascosti da qualche parte?
Justin L.

1
Putty è in grado di trasmettere i comandi del mouse; la prima frase potrebbe essere obsoleta.
congusbongus

3

Se si desidera rimuovere tutte le righe in un file dal numero di riga corrente, utilizzare dG, eliminerà tutte le righe a (shift g)indicare la fine del file

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.