Il modo più efficiente per sostituire l'intero buffer?


10

Attualmente, ho due metodi simili per sostituire l'intero buffer con qualche altro testo (diciamo negli Appunti).

Metodo n. 1:

  1. cancellare tutte le linee: :%d.

  2. incolla testo: "+P(o simile:) :put+.

Metodo n. 2:

  1. selezionare visivamente tutte le linee: ggVG.

  2. incollare il testo: "+P.

Tuttavia, non riesco a trovare un modo con un solo comando per farlo. Il più vicino che ho trovato è il :changecomando. Ma non sembra funzionare bene con i registri. Ovviamente posso creare alcune funzioni e / o mappare un tasto per farlo. Ma prima di poter effettuare tutte queste personalizzazioni, voglio assicurarmi:

Esiste un comando integrato per sostituire un intervallo di righe con altro testo? Ad esempio, potresti :%replace+sostituire l'intero buffer con il testo negli appunti?


2
Non so nulla dalla parte superiore della mia testa, ma se lo fai molto, perché non creare un mapping / comando?
Matt Boehm,

5
Hmm, 1,$s/\_./\=@+non è una soluzione: P, :%d|put+è più vicino, ma non del tutto lì.
Runium,

1
Ho dimenticato un asterisco dopo il punto ... 1,$s/\_.*/\=@+, in cui \_.corrisponde a qualsiasi personaggio, inclusa la nuova riga.
Runium,

2
Non si deve riutilizzare il buffer, o sarebbe accettabile per iniziare un nuovo buffer?
200_successo

3
Penso che Sukminder sia :%d|put+adatto al conto. È breve e memorabile. L'altro comando è troppo arcano per ricordare e digitare correttamente.
Lie Ryan,

Risposte:


2

Si potrebbe fare ggvG<CTRL-G>per selezionare visivamente l'intero buffer ed entrare Select-mode. Questo è il modo più semplice per sostituire il buffer con il testo che stai pianificando di scrivere. Potresti anche essere in grado di creare una Select-modemappatura :smapche risolva il tuo problema.


0

Un modo per sostituire l'intero buffer con gli appunti può essere tramite un comando esterno, ad esempio:

:%!pbpaste
:%!echo my_text

Vedi anche: Condivisione degli appunti di Mac OS X.

O usando la sostituzione:

:%s/\_.*/\=@+/
:%s/\_.*/my text/

In alternativa, utilizzare :%d|put+(come già suggerito nei commenti).

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.