Come copiare negli appunti in Vim?


753

È possibile copiare negli appunti direttamente da Vim? yycopia solo roba nel buffer interno di Vim. Voglio copiare negli appunti del sistema operativo. Esiste un comando simile in Vim o puoi solo strappare cose all'interno di Vim?


140
Si prega di vedere la risposta sotto votata che chiarisce un fatto importante: è necessario aver compilato vim con la funzione + appunti per QUALUNQUE dei suggerimenti di seguito per funzionare in primo luogo! Questo NON è il valore predefinito sulla maggior parte dei sistemi.
Neil Traft,

7
@NeilTraft, alcune risposte suggeriscono il piping da vim a programmi esterni, quindi l'affermazione secondo cui QUALUNQUE risposta richiede + flag negli appunti, è errata. Sto solo sottolineando per salvare i futuri lettori dalla confusione.
Hnatt,

2
Possibile duplicato di Come fare incollare Vim (e copiarlo negli appunti) del sistema? (Nota: l'altra domanda è più recente, ma ha una risposta migliore IMHO, motivo per cui l'ho contrassegnata come una
coppia

5
Assicurati di averlo fatto sudo apt-get install vim-gnome prima di applicare questi comandi di seguito o otterrai un errore di registro non valido!
Harnirvair Singh,

7
@Harnirvair Per molti gruppi di lettori qui, vim-gnomeè probabilmente eccessivo o semplicemente non disponibile nel loro sistema operativo / distro, mentre sospetto vim-gtke preferibilmente vim-gtk3hanno maggiori probabilità di esistere e tirare meno dipendenze, fornendo comunque l'integrazione degli appunti (almeno per quelli ancora su X11; Non sono sicuro di come tutto questo interagisca con Wayland).
underscore_d

Risposte:


497

Il *registro lo farà. In Windows +e *sono equivalenti. In unix c'è una sottile differenza tra +e *:

In Windows, i registri * e + sono equivalenti. Per i sistemi X11, tuttavia, differiscono. Per i sistemi X11, * è la selezione e + è il buffer di taglio (come negli Appunti). http://vim.wikia.com/wiki/Accessing_the_system_clipboard

*è probabilmente quello che vuoi la maggior parte del tempo, quindi lo uso *perché funziona come mi aspetto in entrambi gli ambienti.

Nelle distro Linux devi prima installare vim-gtk(aka gvim) per ottenere la funzionalità degli appunti. Questo perché vim non-gtk viene in genere compilato senza il supporto X11. Questo per consentirgli di funzionare solo su console (spesso server).

E per quelli confusi su come usare i registri quando si strappano o si mettono, basta scrivere "il nome del registro. Quindi, per copiare qualcosa negli appunti, scrivi "*ye poi per metterti "*p(credito: Kyle Mathews)


31
Non funziona su mac osx lion. Dopo aver premuto "poi *, fa quel rumore che fa il mac quando non riesci a fare qualcosa. Come posso farlo su Mac?
Eddy

62
Devi anche assicurarti che vim sia compilato con il supporto per gli appunti. Il vim predefinito in Ubuntu non lo è. Prova vim --version|grep .xterm_clipboard -oe se è -così non hai supporto. Scarica una versione diversa secondo ubuntuforums.org/showthread.php?t=1686955
Sparhawk

66
Se stai usando Linux, dovresti +registrarti. Ad esempio, se si desidera copiare tre righe negli Appunti di sistema, utilizzare comandi like v3j"+y, quindi è possibile incollarli in un'altra applicazione più un altro VIM. L'uso di *register in Linux può solo copiare e incollare tra diverse applicazioni VIM.
diabloneo,

6
Su Linux, il registro * non funziona per copiare e incollare esternamente.
weberc2,

11
weberc2 e diabloneo, il registro * è per gli appunti di selezione, accessibile dal clic centrale, non dal menu incolla o ^ V
Jim Keener

354

Su Mac OSX

  • copia parte selezionata: seleziona visivamente il testo (digita vo Vin modalità normale) e digita:w !pbcopy

  • copia l'intero file :%w !pbcopy

  • incolla dagli appunti :r !pbpaste

Sulla maggior parte delle distribuzioni Linux , è possibile sostituire:

  • pbcopysopra con xclip -i -sel coxsel -i -b
  • pbpasteutilizzando xclip -o -sel -co xsel -o -b
    - Nota: nel caso in cui nessuno di questi strumenti ( xsele xclip) sia preinstallato sulla distribuzione, è possibile trovarli nei repository

1
+1 Funziona con Lion, anche se vim --versionmostra-clipboard
roplacebo,

26
compatibile con vim fornito con Mavericks OSX. aggiungi al tuo .vimrc vnoremap <C-c> :w !pbcopy<CR><CR> noremap <C-v> :r !pbpaste<CR><CR>Per usare questa mappatura, se vuoi copiare, evidenzia il testo in modalità visiva e premi Ctrl-c per copiare. Per incollare dagli appunti di sistema, premi Ctrl-v.
davidtingsu,

7
Su Linux funziona con: w! Xclip -sel c oppure: w! Xsel -b
trve.fa7ad

4
Per Linux Ctrl + C copia: in ~ / .vimrc aggiungi:vnoremap <C-C> :w !xclip -i -sel c<CR><CR>
andy

3
Una risposta molto più utile di quella accettata. Grazie!
Bryce Johnson,

165

Nel tuo file vimrc puoi specificare di usare automaticamente gli appunti di sistema per copiare e incollare.

Su Windows impostato:

set clipboard=unnamed

Su Linux set (vim 7.3.74+):

set clipboard=unnamedplus

NOTA: potrebbe essere necessario utilizzare una versione aggiornata di Vim affinché funzioni.

http://vim.wikia.com/wiki/Accessing_the_system_clipboard


39
Come addendum alla tua nota, potresti anche dover installare pacchetti extra per farlo funzionare. Se al tuo vim manca la +xterm_clipboardfunzione (visibile quando corri vim --version). Questo è stato il mio caso (eseguendo Kubuntu 12.10). Ho dovuto installare il vim-gui-commonpacchetto per ottenere la corretta funzionalità.
Jacob Dalton,

4
set clipboard=unnamedfunziona su Mac OS 10.11.6 (El Capitan) con vim 7.4
Purplejacket,

1. Copia al trascinamento 2. selezione mouse, funziona con Mac Sierra-10.12.6 e versione vim: 8.0.1800 specificando i seguenti comandi nel file ~ / .vimrc set mouse=veset clipboard=unnamed
dkb

set clipboard=unnamedfunziona su MacOS Catalina
Diego Somar il

Potresti voler aggiornare la tua risposta. Non funziona su Ubuntu 18.04 con vim 8.0.
Luís de Sousa

124

Utilizzare il registro "+per copiare negli Appunti di sistema (ovvero "+yanziché y).

Allo stesso modo è possibile incollare da "+per ottenere testo dagli Appunti di sistema (ovvero "+panziché p).


Io uso "*, ma sembra che ci sia solo una differenza in X.
dash-tom-bang

3
@ dash-tom-bang: la differenza +/ *è SELECTIONrispetto ai PRIMARYbuffer di copia (non ricordo quale sia l'atm)
Daenyth,

2
Sì, la stella è la selezione, oltre agli appunti.
dash-tom-bang,

6
Il carattere di virgoletta doppia funge da selettore del registro in vi e vim.
Amardeep AC9MF,

1
Due serie di scorciatoie da ricordare: "+yy(copia linea negli appunti) e "+yy(copia linea nella selezione); "+p(incolla dagli appunti) e "*p(incolla dalla selezione). "è quello di selezionare il registro che è di vim proprio registro interno di default (il senso yye ppotrebbe funzionare senza fare riferimento qualsiasi tipo di registro). PS: Mi chiedo se ci sia un personaggio nel registro interno di Vim, qualcosa di simile a quello "&yyche si trasforma di yydefault.

72

@Jacob Dalton ha menzionato questo in un commento, ma nessuno sembra aver menzionato in una risposta che vim deve essere compilato con il supporto degli appunti per uno qualsiasi dei suggerimenti menzionati qui per funzionare. Il mio non era configurato in questo modo su Mac OS X per impostazione predefinita e ho dovuto ricostruire Vim. Usa questo comando per scoprire se ce l'hai o no vim --version | grep 'clipboard'. +clipboardsignifica che sei bravo e i suggerimenti qui funzioneranno per te, mentre -clipboardsignifica che devi ricompilare e ricostruire vim.


15
Oppure, invece di compilare te stesso, puoi installare un pacchetto vim che è già stato creato con il supporto degli appunti. Su OS X, Homebrew ha questo: brew install vim. Su Ubuntu, puoi usare sudo apt-get install vim-gnome. Su altre distro Linux (non GNOME) potresti preferire installare vim-gtko vim-athena.
Neil Traft,

3
Grazie, in Arch Linux ho dovuto rimuovere vime installare gvim wiki.archlinux.org/index.php/Vim#Installation
michalzuber

Le tue risposte spiegano perché lo yank non funziona con gli appunti, con le tue informazioni da solo potrei fare una ricerca su Google migliore e farlo funzionare facilmente. E ora funziona. Sarebbe meglio se includessi anche il commento di @NeilTraft alla tua risposta in modo che le persone non debbano fare ricerche su Google.
Yana Agun Siswanto,

Su Mac, subito dopo l' brew install vimaggiunta set clipboard=unnameda .vimrc. Esegui source ~/.vimrcnella riga di comando. In .bash_profile ho aggiunto alias vim="/usr/local/bin/vim"quindi esegui source ~/.bash_profile. Ora in vim basta usare yep per copiare / incollare
Dmitry

59

Riassumendo e facilitando i principianti,

Per copiare la riga corrente, in modalità comando digitare:

"*yy

Per copiare l'intero file / buffer, in modalità comando, prima vai all'inizio tramite gg, quindi digita

"*yG

Come notato, questo richiede +clipboarddi vim --version, che indica la disponibilità del supporto degli appunti, -clipboardsignifica no.


1
"*5yydice 5 lines yankedma niente negli appunti? os / x.
javadba,

2
Sì, avevo verificato + appunti
javadba

nnoremap <leader>c "* in .vimrcfunziona abbastanza bene come una "copia" di sorta, seguita da un movimento per afferrare l'oggetto di testo che si desidera copiare negli Appunti del sistema operativo.
cpk,

Grazie, l'hai spiegato esattamente come ne avevo bisogno.
Symen Timmermans,

3
Ho installato vim-gtkper trasformarsi -clipboardin +clipboard, che "+yysta funzionando.
Lai32290,

30

Se stai usando vim in MAC OSX, sfortunatamente viene fornito con una versione precedente e non conforme alle opzioni degli Appunti. Fortunatamente, l'homebrew può facilmente risolvere questo problema.

installa vim:

brew install vim

installa la versione gui di vim:

brew install macvim

riavviare il terminale per rendere effettive.


aggiungi la seguente riga a ~ / .vimrc
set clipboard=unnamed

ora puoi copiare la linea in vim con yye incollarla a livello di sistema.



Metodo aggiornato :

Non sono mai stato soddisfatto del metodo degli Appunti per anni. Il più grande svantaggio è che rovinerà la cronologia degli appunti, anche quando lo usi xper l'eliminazione. Ecco una soluzione migliore e più elegante.

  1. Copia il testo [range] di vim negli appunti di sistema. (Suggerimento: utilizzare prima vo Vper selezionare l'intervallo, quindi digitare i due punti :per attivare il comando Ex):
    :[line-range]yank +
    ad es.
    :5,10y * (Copiare / copiare le righe 5-10 nel *registro degli appunti di sistema )

  2. Incolla il contenuto dagli appunti di sistema in vim su una nuova riga:
    :put +

Nota:

  1. Se si seleziona un intervallo di parole, quanto sopra non funzionerà. usa "* y o " + y per salvare questo blocco visivo negli appunti. Comunque sia difficile da scrivere, sto ancora pensando ad alternative.
  2. : help "* o : help * + per ulteriori informazioni
  3. brew info vimsarà in grado di vedere altre opzioni per l'installazione di vim. Attualmente non ha altre opzioni.

--with-override-system-vimdovrebbe essere--with-override-system-vi
maffo il

Vorrei provare questo per evitare di installare molte cose di Xorg su sistemi minimi, ma mi manca qualcosa. Ottengo "Non un comando dell'editor [range] yank +" dopo aver selezionato in modalità v e quindi premere ":".
jeremyjjbrown,

29

Per Ubuntu - luglio 2018

Utilizzare il registro "+ per copiare negli Appunti di sistema (ovvero " + y anziché y ).

Allo stesso modo è possibile incollare da "+ per ottenere testo dagli Appunti di sistema (ovvero " + p anziché p ).

Devi anche assicurarti che vim sia compilato con il supporto per gli appunti. Provare:

vim --version | grep .xterm_clipboard -o 

e se è -xterm_clipboard (un prefisso meno) allora non hai supporto.

Ecco alcune istruzioni per lo scambio con una versione funzionante di vim con supporto per gli appunti.

  • $ sudo apt-get purge vim
  • $ sudo apt-get autoremove (rimuove dal sistema eventuali pacchetti di dipendenza vim estranei)
  • $ sudo apt-get install vim-gnome

Controlla ancora con vim --version | grep .xterm_clipboard -oe puoi confermare che gli appunti sono ora disponibili (es. + Xterm_clipboard )

In bocca al lupo.


3
Mi hai reso felice, o forse il mio mese. Dopo aver lavorato duramente con vim senza appunti su Ubuntu per anni, questa è una sensazione incredibile. arcseldon, grazie !!
evanrmurphy,

Oltre a quanto descritto sopra, ho dovuto inserire il set clipboard=unnamedplusmio .vimrcfile affinché lo yank funzionasse. Sto usando Ubuntu 18.04.
Elia l'

23

Non sono stato in grado di copiare sul sistema dei miei appunti perché avevo questo nel mio file ~ / .vimrc:

 if has('mouse')
   set mouse=a
 endif

Ma se aggiungi questa riga in seguito, ti permetterà semplicemente di Ctrl+c per ottenere tutto ciò che hai selezionato negli appunti.

vmap <C-c> "+y

Discussione originale e maggiori dettagli: Copia il testo da vim con set mouse = a abilitato


3
Non ho aggiunto la linea al mio .vimrc, ma il link che hai fornito è stato molto utile. Se si tiene premuto MAIUSC mentre si seleziona il testo in VIM, si è in grado di copiare il testo senza accedere alla modalità visiva. Quindi grazie e +1.
Stefan van den Akker,

Il trucco del cambio è quello di cui avevo bisogno. Funziona anche con editor come terminator che usano Ctrl + Shift + c per copiare mentre nel prompt, che è quello che ho provato all'inizio. Ho installato -xterm_clipboard con vim.
Anders Elmgren,

18

la soluzione per me era installare vim aggiuntivo che includesse l'opzione per gli appunti inclusa: 

sudo apt-get install vim-gnome

3
Questo è quello che dovevo fare per Ubuntu 16.04. Ho provato gli altri suggerimenti senza successo. Questo è stato il più semplice e ha fatto quello che mi aspettavo con "+ y.
Steven Eckhoff,

Funziona come un incantesimo senza alcuna modifica di vimrc! ancora valido in Ubuntu 16.04
makerj

Il "+ysuggerimento ha funzionato solo con vim-gnome. Uso di Linux Mint 18.2.
Samaursa,

14

Se stai usando GVim, puoi anche farlo set guioptions+=a. Ciò attiverà la copia automatica negli appunti di testo che evidenzi in modalità visiva.
Svantaggio: tieni presente che in questo caso i gestori di appunti avanzati (con cronologia) riceveranno tutta la cronologia di selezione ...


13

Puoi trovare le risposte qui Arch Wiki

Per Linux: prima di tutto devi abilitare Appunti nella tua versione di vim installando gvim.


Quindi devi inserire questa riga nel tuo .vimrcfile.

set clipboard=unnamedplus


+1, sono rimasto sorpreso dal fatto che questo passaggio sia ora richiesto. In tutta la mia precedente installazione di Arch non ho dovuto farlo.
Konstantinos,

ha funzionato anche per Ubuntu 18.04 e funzionava in tmux. Grazie!
James Klein,

10

Se il tuo vim sembra essere compilato senza +xterm_clipboardopzioni come per impostazione predefinita in Debian e suppongo Ubuntu, puoi reindirizzare la selezione o l'intero buffer a un programma esterno che gestisce gli appunti del desktop. Per xclip(che potrebbe essere necessario installare in precedenza), il comando sarà:w !xclip -sel clip


1
Grazie per questo - non ha funzionato per me su Ubuntu (quindi confermare che la tua ipotesi Ubuntu è corretta) da anni e non sapevo perché. Ora posso vedere -xterm_clipboardle bandiere mostrate quando vim --version.
Jamesc

Questo mi ha aiutato a trovare una buona fonte di supporto per gli appunti: vimcasts.org/blog/2013/11/getting-vim-with-clipboard-support
jamesc

9

In vim solo con il terminale Ubuntu,

premere shift + drag mouseper selezionare un testo in vim, quindi ctrl + shift + csul terminale

quindi ctrl + vsu un altro editor


3
Questo funziona per selezionare solo ciò che è visivo in VIM, cosa succede se si desidera selezionare l'intero file?
Gerep,

@Gerep questo metodo non funziona per la selezione dell'intero file. è bene selezionare una sezione di testo solo sul terminale vim e dove il testo viene visualizzato sullo schermo del terminale.
Supawat Pusavanno,

1
Copia i numeri di riga, i bordi del buffer delle divisioni e tutto ciò che è visibile, anziché solo il testo / codice.
Zelphir Kaltstahl il

9

Se hai xclip, un modo semplice per copiare il testo negli appunti è il seguente:

  1. Yank testo che si desidera copiare. (y comando in vanilla vim)
  2. Digitare :call system("xclip -selection clipboard", @")

:call system()esegue un comando terminale. Sono necessari due argomenti, il primo il comando, il secondo cosa reindirizzare a quel comando. Ad esempio, :echom system("head -1", "Hello\nWorld")restituisce Hello (con alcune imbottiture). echom restituisce l'output di un comando, la chiamata no.

xclip -selection clipboard copia semplicemente il testo negli Appunti di sistema rispetto agli Appunti X predefiniti, (accessibile tramite il pulsante Moue centrale).

@"restituisce l'ultimo testo strappato. "è il registro predefinito, ma è possibile utilizzare qualsiasi registro. Per visualizzare il contenuto di tutti i registri, digitare :registers.


2
Questo è più robusto, funziona anche quando vim non è conforme al supporto per gli appunti e su qualsiasi sistema operativo. Ad esempio, su Mac Run :call system("pbcopy",@"). È possibile associare questo comando a una chiave.
ilija139,

funziona benissimo, ma posso metterlo nel mio VIMRC, funzionerà. Non funziona per me.
thenakulchawla,

5

Questa risposta è specifica per gli utenti MAC.

Il VIM predefinito disponibile con MAC non viene fornito con l'opzione Appunti abilitata. È necessaria tale opzione per accedere agli Appunti di sistema.

Per verificare se il tuo vim ha quell'opzione abilitata usa il comando seguente

vim --version

Nel risultato, dovresti avere +clipboard. Se è-clipboard , il VIM NON ha l'opzione per accedere agli Appunti di sistema.

Devi REALIZZARE e installare il tuo VIM con l'opzione di cui hai bisogno. Di seguito sono riportati i comandi.

# Create the directories you need
$ sudo mkdir -p /opt/local/bin
# Download, compile, and install the latest Vim
$ cd ~
$ git clone https://github.com/vim/vim.git
$ cd vim
$ ./configure --prefix=/opt/local
$ make
$ sudo make install
# Add the binary to your path, ahead of /usr/bin
$ echo 'PATH=/opt/local/bin:$PATH' >> ~/.bash_profile
# Reload bash_profile so the changes take effect in this window
$ source ~/.bash_profile"

Quanto sopra installerà l'ultimo VIM con l'opzione +clipboardabilitata.

Ora devi impostare gli appunti di sistema. Aggiungi la seguente riga a~/.vimrc

set clipboard=unnamed

Ora puoi trascinare il testo negli appunti di sistema. I passaggi seguenti spiegano come tirare.

  1. In modalità comando vim press v, questo passerà alla modalità VISUAL.
  2. Sposta il cursore per selezionare il testo o le righe che devi copiare.
  3. Press y, questo copierà il testo selezionato negli appunti.
  4. Vai a qualsiasi applicazione esterna e CMD + vincollare.

Uso MACBook Pro con macOS Mojave e sopra funziona.


4

Forse qualcuno lo troverà utile. Volevo rimanere indipendente dagli appunti di X e riuscire comunque a copiare e incollare del testo tra due filmati in esecuzione. Questo piccolo codice salva il testo selezionato nel file temp.txt per la copia. Inserisci il codice qui sotto nel tuo .vimrc. Utilizzare CTRL-c CTRL-v per eseguire il lavoro.

vnoremap: w! cp / dev / null ~ / temp.txt && cat> ~ / temp.txt

noremap: r! cat ~ / temp.txt


4
  1. Inserisci il set clipboard=unnamedtuovimrc .
  2. Seleziona ciò in cui vuoi copiare Visual modalità (premere v per accedere).
  3. Torna a Normal modalità (premi Esc [esc]), premi y per copiare.
  4. Se vuoi incollare qualcosa dagli appunti del sistema operativo, premi p / P in Normalmodalità Vim .

4

Sono un Vim newby ma, per copiare tutto il testo negli Appunti di sistema (ad es. Se si desidera incollarlo in un elaboratore di testi o in un altro editor di testo come gedit, mousepad ecc ...), in modalità normale:

ggVGy

o, più semplicemente:

:% Y

Come suggerito, ho anche installato vim-gtk e put

imposta appunti = unnamedplus

nel mio .vimrc

e tutto funziona bene

Se si desidera copiare solo una parte del testo, utilizzare la modalità visiva (v) , selezionare il testo che si desidera copiare e premere y .

Infine, suggerisco un programma di appunti come Clipman (il mio preferito), Clipit, Parcellite o simili.

(Sto usando Vim 8.0 in Debian Stretch Xfce)

DIMENTICAMI PER IL MIO INGLESE! :-)


3

Ho avuto un problema perché 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 (che supporta gli appunti) e poi ho controllato di nuovo:

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

Ora sono in grado di copiare e incollare usando rispettivamente "+ y e" + p.


3

Ho avuto problemi con questo per mesi fino ad ora su MacOsX usando le scorciatoie da tastiera. So che la domanda non riguarda l'uso di short da tastiera. Ma questo potrebbe aiutare qualcuno con la stessa preoccupazione.

Ho scoperto che se deselezioni:

Visualizza -> Consenti report del mouse

dal menu Terminale, sarai in grado di copiare negli appunti usando

command + c

ancora.


2

Ho scritto una semplice riga nel mio .vimrc per far funzionare la copia. Spero che questo aiuti qualcuno. Il mio vim non è installato con il supporto degli Appunti, sfortunatamente, quindi nessuno di questi suggerimenti ha funzionato per me. Fondamentalmente, incolla questa linea nel tuo .vimrc:

map <C-c> y:e ~/clipsongzboard<CR>P:w !pbcopy<CR><CR>:bdelete!<CR>

Se desideri leggere i dettagli di ciò che fa, puoi leggere questo sul mio blog


1
Compratore stai attento. Su Mac, questo ha effetti strani.
azatar,

questo non sembra copiare nulla negli appunti quando si usa come indicato (su Linux Ubuntu 16.04, nessun supporto negli appunti), e se più file vengono aperti in una sessione di vim, chiuderà la scheda in cui sono state eseguite le azioni (selezione visiva e Cc ).
Calocedrus,

2

Per alcune tastiere internazionali, potrebbe essere necessario premere "+ Spaceper ottenere a" .

Quindi in quei casi dovresti premere "Space+yo"Space*y


2

Nel caso in cui non si desideri utilizzare alcuna interfaccia grafica per vim e si preferisca utilizzare solo l'emulatore di terminale, potrebbe esserci un approccio molto più semplice a questo problema. Invece di usare yank o qualcosa del genere, per prima cosa dai un'occhiata alla documentazione del terminale che usi. Ho avuto problemi con lo stesso problema (cercando di usare + appunti e xclip e così via) e alla fine è emerso che nel mio emulatore di terminale è sufficiente premere maiusc e selezionare qualsiasi testo che si desidera copiare. Questo è tutto. Abbastanza semplice e non c'è bisogno di pasticciare con la configurazione. (Uso urxvt comunque).


1

per OSX, come chiarito dalle 10342 risposte di cui sopra, è necessario assicurarsi che vim supporti la funzione Appunti, che sia quello pre-spedito con OSX NON supporti gli Appunti e che se si esegue brew install vim funzionerebbe.

Tranne il fatto che l'esecuzione di vi ti farà comunque eseguire la versione OSX preimpostata, non quella installata da brew.

per superare questo, ho semplicemente modificato il mio comando vim sulla versione brew, non su quella predefinita di OSX:

alias vim="/usr/local/Cellar/vim/8.0.1100_1/bin/vim"

e ora sono d'oro


1

La mia soluzione stava mettendo la seguente riga in .vimrc:

map <C-y> :w !xclip -sel c <CR><CR>

Lo script copia la linea selezionata (attraverso la modalità visiva) o il contenuto del file (se non ne è selezionato nessuno) negli Appunti usando Ctrl + y. Sto usando Manjaro Linux se questo è importante.


1

Sono su mac osx (10.15.3) e nuovo su vim. L'ho trovato così frustrante e tutte le risposte qui troppo complicate e / o non applicabili alla mia situazione. Ho finito per farlo funzionare in 2 modi:

  1. mappatura dei tasti che usa pbcopy : funziona sulla vecchia versione di vim fornita con mac.

    Aggiungi vmap '' :w !pbcopy<CR><CR>al tuo ~ / .vimrc
    Ora puoi selezionare visivamente e premere ''(due apostrofi) per copiare negli appunti

  2. Installa la versione più recente di vim in modo da poter accedere alla soluzione più consigliata nelle altre risposte:

    brew install vim
    alias vim=/usr/local/bin/vim(dovrebbe aggiungerlo al tuo ~ / .bashrc o equivalente)
    Ora puoi selezionare visivamente e premere "+yyper copiare negli appunti


soluzione molto bella!
ABD

0

selectingcon l'aiuto di mousee ha right-click copyfunzionato nel mio caso.

Non volevo includere i numeri di riga, quindi :set nonumberprima copying.


come puoi farlo in nerdTree
ji-ruh,

Ciò non ha nulla a che fare con vim ed è esclusivamente una copia negli Appunti (X) basata su terminali.
Carlo Wood,

Non sono sicuro @ ji-ruh
Akash

0

Niente sopra ha funzionato per me sul mio laptop Windows.

Ctrl+ Candava bene per la copia .. ma avevo bisogno di Shift+ Insertper incollare!

(Un buon motivo per avere sempre un laptop a cui Insertè sempre possibile accedere senza premere un tasto secondario)


0

Shift+ Ctrl+ C se sei in modalità grafica di Linux, ma prima devi selezionare ciò che devi copiare.

inserisci qui la descrizione dell'immagine

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.