vim: sostituisce tutti i personaggi fino alla fine della riga


30

Forse sono sciocco, ma puoi sostituire tutti i caratteri da cui si trova il cursore alla fine della riga con un comando? Quindi utilizzare .per fare la stessa sostituzione nella riga successiva e così via.

Risposte:


49

Se ho capito bene la tua domanda, prova questo:

C(che è una C maiuscola) eliminerà tutto dal cursore alla fine della riga e ti metterà in modalità INSERT , quindi scrivi la tua sostituzione, esci dalla modalità INSERT, usa .per ripetere il processo da qualche altra parte.


Belle. :)Prego.
sabato

16
se qualcuno si chiedeva, è una C maiuscola :)
David Silva Smith,

1
Sarebbe bene aggiornare la risposta per specificare che si tratta di una maiuscola C.
Frattura

14

Aggiungendo alla risposta di sr_:

Se il cursore inizia nella stessa posizione su ogni riga, potresti essere interessato alla funzione Visual Block .

Digitare quanto segue in ordine, con il cursore nella posizione iniziale:

  • Ctrl+ v: Consente di accedere alla modalità blocco visivo.
  • $: vai alla fine della linea.
  • [X]j: sostituisci X con il numero di righe che vuoi scendere.

Questo dovrebbe creare una selezione rettangolare che va dal cursore sulla prima riga alla fine della riga [X] righe in basso.

È quindi possibile sostituire l'intera selezione:

  • c: cancella la selezione e vai in modalità inserimento.
  • inserisci un nuovo testo
  • Esc: Esce dalla modalità di inserimento; Vim ripeterà automaticamente il passaggio su ciascuna riga selezionata.

Uso il blocco visivo ogni volta che posso, ho pensato di condividere


+1 bella risposta davvero. Ma non proprio quello che voglio poiché a volte il mio codice non è ben formattato in quel modo ^ _ ~
Sardathrion - Ripristina Monica

@sardathrion; Commento RE, "ben formattato". Creazione di tabelle in Markdown Sono stato in grado di riempire automaticamente gli spazi in n+1linee, dopo aver creato la linea ncon Visual Block selezionando all'indietro ! In altre parole, la forma era simile a quella all'indietro 7 o alla verticale capovolta L, o 'non ben formattata'. lol.
xtian

3

Co c$è per "cambia" ed Rè per "sostituisci".

Due comportamenti quasi simili. Il primo eliminerebbe la riga prima di iniziare a digitare; mentre quest'ultimo ti permetterebbe di digitare sui caratteri e, eventualmente, di andare oltre il limite dei caratteri della vecchia riga visualizzati.


1

Basta premere 'C', ovvero la maiuscola C nella modalità di comando e digitare il testo sostitutivo.


0

Le altre risposte sono mancate, non entrano in modalità inserimento.

  • D Elimina fino alla fine della riga
  • d$ Elimina dal cursore alla fine della riga

Quindi ovviamente usare .


-1 per non aver inserito la modalità di inserimento poiché questo è specificamente quello che ho chiesto. +1 per completezza.
Sardathrion - Ripristina Monica il

0

Come può essere utile, una volta che stiamo cercando di cambiare fino alla fine della linea. Ho creato un mapping di inserimento per eseguire questa attività, non lo utilizza Dperché in modalità di inserimento questo tasto viene utilizzato per ridurre il rientro. Quindi è Ctrl-k

:inoremap <C-k> <C-o>C
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.