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
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.
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.
shift'
quindishift=
quindiy
(non tutti in una volta, uno dopo laltro, tranne i turni ovviamente).