2010-05-04 7 views
6

Community WikiCommunity Wiki: "Vim: Uso avanzato del meccanismo yanking"

Come la documentazione degli spettacoli di sistema strattone (grazie Michal), Il sistema Yank Vim sembra essere più complicato poi un clipboard standard . Pertanto ritengo sia vantaggioso che i veterani vim potrebbero forse mostrarci alcuni stili diversi di utilizzo di questo meccanismo. in particolare con l'uso di vim per progetti complicati senza l'uso di un IDE heavyweight (per esempio C++?).

domanda iniziale

Ora che sto usando vim per tutto ciò che ho tipo, piuttosto che solo per la configurazione dei server, ho wan't di risolvere i seguenti banalità. Ho provato a formulare le query di ricerca di Google ma i risultati non hanno risolto le mie domande: D.

Domanda uno: Come si esegue lo yank e si sostituisce più volte?

Una volta che ho qualcosa nella cronologia dello yank (se questo è quello che viene chiamato) e quindi evidenziare e utilizzare il carattere "p" in modalità comando, il testo sostituito viene posto nella parte anteriore della cronologia dello strappo; quindi le successive operazioni di sostituzione non usano il testo che intendevo. Immagino che questa sia una funzionalità utile in determinate circostanze, ma non ne ho bisogno nel mio flusso di lavoro.

Domanda due: Come si digita il testo senza provocare il ripple della linea in avanti?

io uso difficili punti di tabulazione per Allinea il mio codice in un certo modo - ad esempio,

FunctionNameX  (lala * land    ); 
FunctionNameProto (       ); 

Quando ho capire cosa ha bisogno di andare in seconda funzione, come faccio inserisco senza spostare il testo?

Domanda tre C'è un modo di avere una cronologia dello yank uniforme su istanze di gvim sulla stessa macchina? Ho> 1 monitor. Mi stavo solo chiedendo, sto usando highlight + clic centrale del mouse.

+0

Una domanda di programmazione che appartiene al superutente? –

+2

"Come si usa il mio editor di testo?" non è una domanda di programmazione. –

+0

Beh, se hai intenzione di essere così anonimo ... superuser è per: "software per computer e software per computer in generale". Questa domanda non riguarda il software generale. Potrei dover scrivere la mia macro vim per fare ciò che voglio. Scrivere macro è elencare una procedura passo passo per ottenere qualcosa. Il termine generale per questo processo è un algoritmo, e gli scrittori di algoritmi sono noti anche con il termine "programmatori". Stackoverflow è il posto dove discutere della programmazione. –

risposta

4

Risposta uno: Un rilevante, se non particolarmente incoraggianti, qoute dalla documentazione di Vim (vedi :help put-Visual-mode):

Quando si utilizza un comando put come | p | oppure | P | in modalità Visual, Vim proverà a sostituire il testo selezionato con il contenuto del registro. Se questo funziona correttamente dipende dal tipo di selezione e dal tipo di testo nel registro . Con la selezione a blocco dipende anche dalla dimensione del blocco e se gli angoli sono su un carattere esistente. (Dettaglio implementazione: funziona effettivamente inserendo il registro dopo la selezione e quindi eliminando la selezione.)
Il testo selezionato in precedenza viene inserito nel registro senza nome. Se si desidera che lo inserisca lo stesso testo in una selezione Visual più volte, è necessario utilizzare un altro registro. Ad esempio, trascina il testo da copiare, seleziona Visivamente il testo su sostituisci e utilizza "0p. Puoi ripetere questo numero tutte le volte che vuoi, il registro senza nome verrà cambiato ogni volta.

Risposta due:R (la capitale 'R') vi mette in modalità di sostituzione.

Mi manca la risposta tre, temo.

Risposta tre: Non proprio corrispondente alla specifica "Yank storia divisa", ma "+ y yankee negli appunti e " + p paste da appunti se un clipboard è disponibile.

+0

Grazie per entrambe le risposte, sto leggendo la documentazione ora. Non mi ero neanche reso conto che il concetto di "registri" fosse disponibile. Potrei trovare un modo per trarne vantaggio: D –

+0

Mi è appena venuto in mente che puoi usare "+ y per yank negli appunti e" + p per incollare dagli appunti quando il tuo ambiente fornisce questo tipo di funzionalità (e molto probabilmente lo fa). Questo risolve il tuo terzo problema? –

+0

Sì, certo, grazie Michal. Soprattutto per il riferimento alla documentazione put. Mi aiuterà immensamente. –

4

Yank in un buffer

:y b 

strappi nel buffer b

E

:p b 

colloca.

Penso che siano disponibili più buffer con nome.

+0

Sì, a-z per l'uso con il programmatore e 0-9 utilizzato dal meccanismo simile a "Appunti". mentre lo yank procede sugli elementi in 0-9 ripple in avanti e gli elementi sulla coda iniziano a cadere, mentre strattoni. +1 in quanto è una risposta rapida e sporca per le persone che non vogliono leggere la documentazione: D –