Copia-incolla per vim non funziona quando il mouse (: set mouse = a) è attivo?

Stavo cercando di copiare e incollare qualcosa da vim a unaltra applicazione e inoltre, da tale applicazione a vim utilizzando fare clic con il tasto destro del mouse e quindi copiare e incollare (o con Ctrl + v e Ctrl + c e anche provato la versione Command per mac OSX, ovviamente.). Tuttavia, quando provo a farlo, copia solo la prima parola quando lo faccio da vim o quando copio dallapplicazione a vim, copia tutto, ma inserisce tabulazioni e spazi strani. Penso che questo sia successo quando ho deciso di impostare il mouse sul terminale. Come in:

:set mouse=a 

Ho quella riga sul mio file .vimrc su iTerm (mac os x). Tuttavia, è possibile fare il mio copia-incolla con altre applicazioni che non sono in vim per non rompere con mouse=a attivo? O è almeno possibile spegnere il mouse mentre eseguo il copia incolla? Ho utilizzato il :help mouse ma i commenti non mi sono stati utili. Li incollerei qui ma … il mio strumento di copia incolla è rotto!

Ho provato :set mouse! e :set mouse=a! ma questi non hanno fatto nulla di utile … 🙁


Informazioni aggiuntive sul mio ambiente:

Sto anche usando tmux la maggior parte del tempo, però, ho provato questo errore / bug senza una sessione tmux, ecco perché lho postata principalmente come domanda vim.

Commenti

  • Posso dirti che vim è in grado di passare alla selezione principale senza problemi utilizzando il verbo y. Non ‘ lo so perché non dovresti ‘ usarlo.
  • Non ‘ lo farei perché non ‘ Immagino che non so come farlo, scusa per la mia incompetenza. ‘ non sapevo nemmeno che esistesse fino a quando non lhai menzionato. Condividi il tuo conoscenza! 🙂
  • Questo è macvim ?
  • no, non è solo iTerm (come ho detto sulla domanda, ma una buona domanda però).
  • @Pinocchio – dai unocchiata qui: Come per fare in modo che vim incolli dal (e copi nel) sistema ‘ s appunti? .

Risposta

mouse=a impedisce la capacità di copiare e incollare da vim con caratteri leggibili.

Cambia mouse=a a mouse=r e questo dovrebbe risolvere il tuo problema.

una cosa che mi chiedo è, stai cambiando il file di configurazione per il tuo vim con il mouse impostato su mouse = a?

risposta originale ^

Se mouse=r non ti fornisce tutte le opzioni di copia precedente, modificalo in mouse=v

Entrambi mouse=r e mouse=v hanno le stesse funzioni di cui hai bisogno, ma a seconda del vimrc che stai usando, una funzionerà meglio dellaltra.

Commenti

  • hai anche provato a evidenziare il testo e a usare il pulsante centrale del mouse per incollarlo in un altro posto. Questo tende a funzionare meglio quando provi a Ctrl + ve Ctrl + c
  • Non ‘ per sapere cosa significa la tua domanda: one thing I am wondering is, are you changing the config file for your vim with the mouse set to mouse=a? Vuoi dire se ho :mouse=a nel mio file .vimrc? Ho :mouse=a nel mio file .vimrc.
  • solo --with-x=yes? Non ho bisogno di inserire :set --with-x=yes mouse=a o qualcosa del genere ing? Potresti chiarire cosa intendi?
  • Fammi cercare se devi combinare --with-x=yes con set mouse=a. Quando stavo leggendo tutto quello che ho visto era che era da solo nel file di configurazione. Ma potrebbe essere diverso, quindi voglio assicurarmi di dirti la cosa giusta che funzionerà per te.
  • Grazie mille, questo suggerimento funziona a meraviglia con mouse = v

Risposta

Per utenti OS X: per copiare e incollare con mouse=a utilizzare alt invece di Maiusc per selezionare il testo. Quindi cmd-c e cmd-v funzionano come previsto.

Ho trovato questa risposta qui https://stackoverflow.com/a/4608387/671639 dopo molte ricerche su Google.

Commenti

  • Tu sei Dio … …: ‘)
  • lunica cosa che ha funzionato per me, grazie!
  • Per me su OSX funziona ” fn ” invece di ” shift ” o ” alt “.
  • Limpostazione di mouse=v ha funzionato con cmd + c

Risposta

Da https://stackoverflow.com/questions/4608161/copy-text-out-of-vim-with-set-mouse-a-enabled/4608387

Premere il tasto “Maiusc” durante la selezione con il mouse. Questo farà sì che la selezione del mouse si comporti come se mouse = a non fosse abilitato.

Funziona ed è stato verificato dai revisori di stack-overflow che lhanno accettato come risposta 🙂

Risposta

Aveva lo stesso problema: non poteva evidenziare usando il mouse, quindi non poteva copiare e incollare da VIM in una sessione terminale al documento e browser di Windows: seguente e ora funziona:

: set clipboard=unnamedplus : set mouse=r 

Answer

Bharath” s soluzione , premendo Maiusc durante la copia, lo farà, ma copierà più di quello che “vorresti copiare in caso di numerazione o commenti hash.

Un modo per farlo anche con mouse = a è utilizzare la modalità visuale con premendo V per il cursore singolo o Maiusc + V per levidenziazione della riga intera, e puoi spostarti su o giù con le frecce e usare Y per copiare o D per tagliare e th a dovrebbe funzionare.

Commenti

  • @Anthon, lo farà, grazie per il chiarimento.
  • Ho riformulato te stesso- commento pronunciato per renderlo più simile a una risposta in questo modo i mod probabilmente lo lasceranno così comè (e potresti guadagnare una certa reputazione su di esso in modo da poter commentare). Se loriginale fosse stata una correzione minore, sarebbe stato più appropriato commentare.

Risposta

Fare riferimento: http://vimdoc.sourceforge.net/htmldoc/options.html

Guarda la sezione Nota in fondo al riferimento:
Quando abilitando il mouse, i pulsanti del mouse possono ancora essere utilizzati tenendo premuto il tasto Maiusc. Ciò include copia e incolla utilizzando i pulsanti del mouse.

*"mouse"* *E538* "mouse" string (default "", "a" for GUI, MS-DOS and Win32) global {not in Vi} Enable the use of the mouse. Only works for certain terminals (xterm, MS-DOS, Win32 |win32-mouse|, QNX pterm, *BSD console with sysmouse and Linux console with gpm). For using the mouse in the GUI, see |gui-mouse|. The mouse can be enabled for different modes: n Normal mode v Visual mode i Insert mode c Command-line mode h all previous modes when editing a help file a all previous modes r for |hit-enter| and |more-prompt| prompt Normally you would enable the mouse in all four modes with: :set mouse=a When the mouse is not enabled, the GUI will still use the mouse for modeless selection. This doesn"t move the text cursor. See |mouse-using|. Also see |"clipboard"|. Note: When enabling the mouse in a terminal, copy/paste will use the "* register if there is access to an X-server. The xterm handling of the mouse buttons can still be used by keeping the shift key pressed. Also see the "clipboard" option. 

Commenti

  • Grazie per aver contribuito con tale riferimento, ma , risponde alla domanda ? In tal caso, puoi identificare la parte della citazione che lo fa, presentando un riepilogo della risposta effettiva?

Risposta

Sul mio Mac, ciò che mi ha aiutato sono state queste due cose:

  • : set mouse- = a
  • fn + clic (invece di maiusc o alt)

Risposta

Utilizza queste due righe di seguito nel tuo ~/.vimrc da utilizzare tutte le belle funzioni di un gui-mouse e incollale negli appunti di sistema utilizzando y (tasto di strappo) se non hai davvero bisogno di buffer degli appunti aggiuntivi :

set mouse=a set clipboard=unnamed 

Risposta

Puoi usare y per copiare (yank) e p per incollare anche con :set mouse=a impostato in ~/.vimrc. Utilizza v + arrow keys per evidenziare il testo. Per copiare rapidamente unintera riga, usa maiusc + y .

Risposta

As f o la seconda parte della tua domanda in cui hai specificato che quando si incolla da altre applicazioni a vim si aggiungono tabulazioni / spazi. Prova ad aggiungerlo al tuo ~ / .vimrc set paste o in vim prima di incollare in modalità normale premi “shift” + “:” e digita “set paste”

Risposta

Due cose da aggiungere:

  1. Tieni presente che molte volte set mouse=v non funzionerà come previsto a seconda del altre direttive che hai impostato prima o dopo nel tuo file .vimrc, dipende anche da quale terminale stai eseguendo vim;
  2. Ti consiglio di mantenere mouse=a in modo da avere tutte le modalità mouse abilitate contemporaneamente e utilizzare il trucco proposto da @BHS per evidenziare il testo mentre si preme il tasto Maiusc quando è necessario incollare il testo evidenziato utilizzando il mouse centrale pulsante ( Copia del testo al di fuori di Vim con set mouse=a abilitato ).

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *