Copia / incolla di Vimperator


23

Sto provando Vimperator . Lo volevo principalmente per lo scorrimento hjkl e mi piace il suo sistema di "suggerimento" per i seguenti collegamenti. Queste due funzionalità sono davvero tutto ciò di cui ho bisogno; Credo.

Non mi interessano le altre funzionalità, a volte mi ostacolano.

La cosa che mi infastidisce di più è la copia / incolla. Sono abituato a Ctrl+ c/ Ctrl+ v, non mi dispiace usare un'altra scorciatoia, ma ..

:help yank indica che la copia del testo selezionato viene eseguita con Y, ma l'unico metodo menzionato per incollare è il pulsante centrale del mouse!

Questo è così ridicolmente contrario allo spirito di Vim!

Come posso incollare in Vimperator senza usare il mouse?


Le risposte a questa domanda sono tutte obsolete (il che ha senso da quando hanno sette anni) Se sei arrivato qui da Google, queste non sono (ad oggi) le risposte che stai cercando
Arthur Ulfeldt

Risposte:


15

La cosa migliore e più semplice che puoi fare è rimappare i tasti. Non è difficile. Inseriscilo nel tuo _vimperatorrc (o .vimperatorrc in Linux)

noremap <C-c> <C-v><C-c>
noremap <C-v> <C-v><C-v>

<C-v>per impostazione predefinita è mappato sulla modalità "Passa successivo", il che significa che il tasto successivo che si preme viene inviato direttamente a Firefox, senza essere elaborato e utilizzato da Vimperator. Quindi i mapping sopra attivano semplicemente la modalità "Passa dopo" e inviano il rispettivo collegamento.

Esiste anche un plug-in Vimperator che lo estende ulteriormente e rimappa tutte le scorciatoie comuni di Windows , quindi si comportano come previsto.


3
per <Cv> (incolla) dovrebbe essere inoremap
Hasen

accettato per il collegamento al plugin! il che è fantastico e risolve il problema
hasen

2
Sembra che la versione corrente (3.8.1) possa avere Cc e Cv che fanno copia e incolla a livello di sistema operativo per impostazione predefinita ... Non sono riuscito a trovare nulla al riguardo nei log delle modifiche, ma sono appena passato dal Pentadactyl all'ultimo Vimperator, Cc e Cv hanno funzionato come volevo.
driftcatcher,

@hangtwenty sembra essere corretto, la risposta qui è ormai superata
Arthur Ulfeldt

36

Sono sorpreso che non ci sia stata una risposta più precisa a questa domanda. Il collegamento al plug-in della risposta scelta ha risolto il problema dell'OP, ma nessuno ha effettivamente spiegato come incollare qualcosa in un campo di testo senza utilizzare la modalità passthrough (Cv).

Se ci si trova in un campo di testo in modalità INSERT e si desidera incollare qualcosa, la cosa ovvia da fare in vi-land è premere ESC e p per incollare. In vimperator, questo non funziona - ESC ti porta completamente dalla modalità INSERT e nella modalità in cui lavori con la pagina / scheda nel suo insieme.

Vimperator risolve questo problema avendo una modalità BASIC aggiuntiva: TEXTAREA. In modalità TEXTAREA, puoi utilizzare i comandi supportati che utilizzeresti in vi.

Enter TEXTAREA mode: C-t
Paste:    p
Copy line:    yy
Delete Char:  x
Delete Line:  dd

Eccetera.

Questo non sembra essere ben documentato. Ho finito per immaginarlo principalmente per errore. Funziona allo stesso modo nelle caselle di testo su più righe e su una riga.


Grazie per questo commento Questo è esattamente ciò di cui avevo bisogno per girare la testa attorno a vimperator e ai campi dei moduli.
ZweiBlumen

@RevAaron quando si accede alla modalità TEXTAREA è come il tradizionale ambiente VI e la maggior parte del tasto VI funzionerebbe per la modifica del testo? E ho anche notato (sempre per caso) quando premo "d" e poi "s" o "a" nella modalità TEXTAREA cambia la modalità a quella chiamata VISUAL. Le sarei grato se potesse darmi qualche informazione al riguardo. o anche se ti piace, posso metterlo come una domanda, quindi puoi rispondere, quindi gli altri lo userebbero.
Mehrad,

13

In questo momento, vimperator rimappa sia Ctrl + C (da "copia" a "annulla") sia Ctrl + V (da "incolla" a "pass-through"). Su Linux, il metodo preferito di copia / incolla è con il pulsante centrale del mouse, quindi questo non è un problema. Su Windows, si tratta di un disastro dell'interfaccia utente e deve essere risolto gravemente.

È possibile copiare tre posizioni: testo da una pagina Web, testo da un campo modulo e testo da un'applicazione esterna. Esistono due posizioni in cui è possibile copiare: in un campo modulo e in un'applicazione esterna. Le barre degli indirizzi e dei comandi funzionano come campi modulo.

Copying from...
     A web page: 'Y' works, '^C' doesn't
     Form field: 'Y' doesn't work, '^C' does
     Extern application: 'Y' doesn't work, '^C' does
  Copying to...
     Form field: '^V' doesn't work, '^V,^V' does
     External application: '^V' works, '^V,^V' pastes twice
 Or, seen another way
       Copy  Paste
 Page  Y     N/A
 Form  ^C    ^V,^V
 App   ^C    ^V

Gli utenti ordinari non memorizzeranno quella tabella. Non lo capiranno mai, perché non è documentato esplicitamente e non lo leggerebbero nemmeno se lo fosse. Invece, useranno il menu di scelta rapida, l'unica cosa che funziona ovunque. In effetti, poche settimane dopo aver iniziato a usare Vimperator, mi sono sorpreso a fare proprio questo, in un'applicazione completamente indipendente, cosa che non avevo mai fatto prima.

Dobbiamo ripristinare ^ C e ^ V alle loro funzioni originali e legittime come copia e incolla, il che significa spostare i tasti di scelta rapida ^ C = cancel e ^ V = pass-through. In effetti, entrambi questi tasti di scelta rapida sono unici per Vimperator e non appaiono in VIM. ^ V significa 'blocco visivo' in vim, che non si applica in vimperator, quindi il pass-through può essere facilmente assegnato a qualche altro tasto. Suggerisco barra rovesciata in modalità comando e ctrl + barra rovesciata in entrambe le modalità comando e inserimento. Ciò lascia ^ C. Penso che dovrebbe essere spostato su ^ S. Questo ha due buoni mnemonici: è 'stop', ed è anche il tasto di scelta rapida Unix per XOFF, che è inutile ma semanticamente simile. ^ S è attualmente "salva la pagina come" in vimperator, che viene usato raramente e è ancora possibile accedervi con: save o: saveas.

Anche Annulla è rotto; era ^ Z, ma ^ Z non è una modalità pass-through e non c'è modo di annullare le modifiche in un campo modulo senza usare il mouse. Non vedo alcun motivo per non spostarlo su un altro tasto di scelta rapida, soprattutto perché ^ Z in vim significa sospendere, che è completamente indipendente, e trovarsi inaspettatamente in modalità pass-through è estremamente disorientante. Non riesco a pensare a un tasto di scelta rapida non arbitrario per cambiarlo in, ma ^ Z è stato piuttosto arbitrario in primo luogo, quindi qualsiasi tasto di scelta rapida inutilizzato lo farà.

Soruce: http://www.mozdev.org/pipermail/vimperator/2008-October/002359.html


2

Ho cercato un modo per farlo per un po '. Ben fatto. Ma la soluzione noremap di user4126 non era del tutto perfetta se volevo incollare nella riga di comando o in una casella di testo come sottolinea Joe. Quindi l'ho modificato con inoremap e anche su cnoremap su http://charlieharvey.org.uk/page/vimperator_cut_and_paste . Non sembra che vnoremap sia supportato.

Quindi, puoi incollare nella riga di comando e nelle caselle di testo usando il collegamento ctrl-v solo una volta. Incolla quanto segue nel tuo .vimperatorrc e riavvia Firefox.

noremap <C-v> <C-v><C-v>
inoremap <C-v> <C-v><C-v>
cnoremap <C-v> <C-v><C-v>

noremap <C-c> <C-v><C-c>
inoremap <C-c> <C-v><C-c>
cnoremap <C-c> <C-v><C-c>

2

Non ho trovato utili le risposte dato che non riesco a vedere Ctrl+ da cnessuna parte. Quello che faccio è usare il collegamento SecureCRT. Cioè, per la copia dalla pagina:

Ctrl+Ins

Per incollare: Ctrl+ Vdue volte (come dice qualcuno nelle risposte altrove).


Grazie gentile signore. Il mapping da <cc> a <c-ins> ha risolto il mio particolare sapore di questo problema.
Steve Vermeulen,


1

Per una risposta breve - ^ V ^ V (es. Ctrl-V Ctrl-V)

Il primo Ctrl-V fa "passaggio di tasti successivo". Il secondo Ctrl-V incolla il testo. Questo è ciò che faccio per la maggior parte dei campi di testo.

Se usi la modalità vi per campi di testo multilinea (imposta noinsertmode), puoi anche incollare usando p - quindi se volevo incollare l'URL di un'altra scheda in questo tag posso andare su quella scheda, usare y e poi tornare a questa scheda. La barra in basso del browser dirà - TEXTAREA - e posso premere p per incollare l'URL.


0

Suggerirei di usare il

map <C-c> <C-v><C-c>
noremap <C-v> <C-v><C-v>

Perché se hai aperto un editor di testo esterno, un semplice Cc nella finestra di FF chiuderà l'editor esterno e perderai tutto.

BR

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.