Sto cercando di copiare e incollare del testo da vim. Sto “facendo v per accedere alla modalità visuale, quindi y dopo aver selezionato il mio blocco.

Sembra che copi il testo negli appunti di vim, perché p lo incollerà. Ma in un altro programma (ad esempio Chrome), fare clic con il pulsante destro del mouse-> incolla non incolla il testo corretto. Come faccio a copiare il testo negli appunti corretti?

Risposta

Quanto segue funzionerà solo se vim --version indica che hai la funzione +xterm_clipboard. In caso contrario, dovrai installare pacchetti extra o ricompilare vim con quella caratteristica aggiunta.


Ci sono in realtà due opzioni per questo:

"+y 

copia nel “solito” buffer degli appunti (così puoi incollare usando Ctrl + V, fai clic con il tasto destro e seleziona “Incolla” ecc.), mentre

"*y 

copie nella selezione X11: puoi incollare da questo buffer facendo clic con il pulsante centrale.

Tieni presente che "* e "+ funziona in entrambi i modi. Quindi, se hai selezionato del testo in unaltra applicazione, puoi incollarlo in vim usando "*p e se hai copiato del testo (usando, ad esempio, Ctrl-C) puoi incollare in vim utilizzando "+p.

Commenti

  • @Tshepang non funziona da putty. cosa dovrei fare?
  • @RahulPatil non lo so; magari fare una domanda a parte, magari su Super User (dato che ‘ è uno strumento di Windows, sarebbe più gradito lì).
  • @RahulPatil – se stai usando putty allora stai modificando il file su un server remoto, non sulla tua macchina locale. Generalmente il server remoto ‘ non conosceva gli appunti sulla tua macchina locale. Se stavi usando un desktop Linux, puoi ssh con linoltro di X (ammesso che tu abbia installato le librerie X sul server), ma siccome putty gira su Windows non ‘ non hai X in esecuzione in modo da poter ‘ inoltrarlo.
  • Ciao a tutti, come si digita ” + y? dovrei scriverlo in modalità visuale o in modalità comando? Cosa stupida, ma non riesco a capirlo.
  • @AlindBillore: in modalità comando. Letteralmente, premi i tasti shift' quindi shift= quindi y (non tutti in una volta, uno dopo laltro, tranne i turni ovviamente).

Risposta

Se stai usando vim> = 7.3 .74, quindi puoi effettivamente metterlo nel tuo vimrc:

set clipboard=unnamedplus 

che utilizzerà automaticamente il + buffer (gli appunti di sistema) per impostazione predefinita. Quindi per estrarre (copiare), devi semplicemente usare il normale comando y, ecc.

Ho trovato questo comportamento abbastanza fastidioso, però, come comandi come d ha inserito il testo su cui operano nel buffer predefinito, il che significa che non potevo “fare un dd veloce e incollare una riga da Internet , ad esempio.

Commenti

  • + è un registratore di appunti
  • Per quanto riguarda il tuo ultimo punto, dd significa ” tagliare una riga “, quindi quello sarebbe il comportamento previsto. Nei rari casi in cui desideri per eliminare effettivamente una riga nelloblio, "_dd farà il trucco.
  • anche come nota @HamishDowner nella sua risposta: Quanto segue funzionerà solo se vim --version indica che hai la funzione +xterm_clipboard. In caso contrario, dovrai installare pacchetti extra o ricompilare vim con quella funzione aggiunta.

Risposta

Tieni premuto il tasto Maiusc e seleziona il testo con il cursore del mouse.
Il testo verrà copiato negli appunti.

Questo funziona anche per incollare dagli appunti in vim.

Per essere chiari, questo funziona per vim in esecuzione in un terminale come xterm.

Commenti

  • @LoopSpace per selezioni su più righe, questo copierà anche i numeri di riga quando set nu è abilitato . Quindi probabilmente vorresti cambiare i numeri di riga con qualche scorciatoia o eseguire il comando :set nonu prima di ogni selezione
  • Su MAC tieni premuto il tasto opzione e seleziona il testo con il cursore del mouse
  • ‘ t funziona per me che uso vim 8.0 + gnome-terminal
  • Soluzione non compatibile con termini multipane come tmux.
  • Questo non copia negli appunti, questo copia nel primario .Vedi la distinzione in articolo di Clipboard Arch Wiki .

Risposta

Trovo i comandi standard "+gP e "+y molto difficili da usare. Quindi ho rimappato Ctrl-Y per trascinarlo negli appunti e Ctrl-P per incollarlo dagli appunti. Aggiungilo a .vimrc

nnoremap <C-y> "+y vnoremap <C-y> "+y nnoremap <C-p> "+gP vnoremap <C-p> "+gP 

Answer

Quando ho controllato il mio vim non supportava gli appunti:

vim --version | grep clip -clipboard +insert_expand +path_extra +user_commands +emacs_tags -mouseshape +startuptime -xterm_clipboard 

Ho installato vim-gnome e poi ho controllato di nuovo

vim --version | grep clipboard +clipboard +insert_expand +path_extra +user_commands +emacs_tags +mouseshape +startuptime +xterm_clipboard 

Ora posso copiare e incollare usando “+ y” + p rispettivamente.

Risposta

Non importa, Ho trovato la risposta: “è scritta nei menu di vim”.

"+y 

Molto intuitivo.

Commenti

  • Stai utilizzando gvim?
  • @ nozimica- yeah
  • Quello ‘ sono disponibili anche in vim in esecuzione in un xterm o un emulatore di terminale simile in X (se vim è compilato con la funzione +xterm_clipboard).

Risposta

Solo per aggiungere una risposta non specifica per vim: puoi usare Ctrl+Shift+C per copiare negli appunti di sistema in Ubuntu (se la funzionalità è fornita da il tuo emulatore di terminale, gnome-terminal per uno lo fornisce). Ctrl+Shift+V incolla in unaltra finestra del terminale, Ctrl+V incolla in unapp GUI.

Inoltre, se selezioni testo nel terminale, quindi fare clic con il pulsante centrale, verrà incollato dagli appunti di X11.

Commenti

  • Per qualche motivo non ‘ t funziona. Basta selezionare con la modalità visuale, copiare con ctrl-shift-C, quindi incollare in unaltra app usando Ctrl-shift-V? Il testo ‘ non viene copiato per me.
  • @ ripper234: questo non funziona se stai usando gvim. Come ha detto crazy2be, questa funzionalità proviene dal tuo emulatore di terminale.
  • @ ripper234: 1) È una funzionalità fornita dal tuo emulatore di terminale (gnome-terminal per uno lo fornisce), 2) Ctrl + Maiusc + V è per incollare sul terminale , le app GUI usano ancora Ctrl + V come al solito. ‘ modifico la risposta per renderla più chiara.
  • se usi il comando Maiusc mousedrag – seleziona il testo, copia e incolla da una finestra del buffer diventa facile.

Risposta

Tieni premuto il tasto MAIUSC e seleziona il testo con il mouse per copiarlo.

Quindi incolla in un altro programma con CTRL + v.

Funziona nel terminale sul mio Ubuntu 16.04. Non sono sicuro di gvim e altri sistemi.

inserisci qui la descrizione dellimmagine

Commenti

  • Non funziona.
  • risposta creativa

Risposta

Per impostazione predefinita, se installi la versione leggera di vim, non avrai +xterm_clipboard funzione su (vim --version | grep xterm), necessaria per utilizzare * e + si registra al di fuori di vim.

Per abilitarlo, è necessario compilare vim da soli o installare una versione di vim fornita con esso preabilitata. Ho usato vim-gnome: sudo apt-get install vim-gnome. Se esegui vim --version | grep xterm, vedrai che ora è +xterm_clipboard.

Ora, prova a copiare nel + e * e dovrebbe funzionare.

Risposta

Solo per aggiungere, se qualcosa funziona, prova a cambiare il terminale che avvolge vim (se stai usando vim dal terminale). Ho scoperto che, ad esempio, gli appunti sono inaccessibili da guake mentre sono accessibili da gnome-terminal.

Answer

Per Ubuntu 14.04 e superiori:

  • Seleziona il testo che vuoi copiare. Quindi fai clic sul pulsante di scorrimento centrale con il mouse e vai agli appunti

  • E fai lo stesso anche lì (fai clic sul pulsante centrale di scorrimento con il mouse).

Funziona al 100% in entrambi i vim e tail su Ubuntu.

Lascia un commento

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