Ik “probeer wat tekst uit vim te kopiëren en te plakken. Ik” ben bezig met v om de visuele modus te openen, y zodra ik mijn blok heb geselecteerd.
Het lijkt erop dat het de tekst naar het klembord van vim kopieert, omdat p het zal plakken. Maar in een ander programma (bijv. Chrome), rechtsklikken-> plakken plakt niet de juiste tekst. Hoe kopieer ik tekst naar het juiste klembord?
Antwoord
Het volgende werkt alleen als vim --version
geeft aan dat je de functie +xterm_clipboard
hebt. Als dit niet het geval is, moet u extra pakketten installeren of vim opnieuw compileren met die functie toegevoegd.
Er zijn eigenlijk twee opties hiervoor:
"+y
kopieert naar de “gebruikelijke” klembordbuffer (zodat u kunt plakken met Ctrl + V, rechtsklik en selecteer “Plakken” enz.), terwijl
"*y
kopieert naar de X11-selectie – u kunt vanuit deze buffer plakken met middelste klik.
Merk op dat "*
en "+
werken in beide richtingen. Dus als je wat tekst hebt geselecteerd in een andere applicatie, kun je deze in vim plakken met "*p
en als je wat tekst hebt gekopieerd (met bijvoorbeeld Ctrl-C), dan kun je plakken het in vim met behulp van "+p
.
Reacties
Antwoord
Als je vim> = 7.3 gebruikt .74, dan kun je dit feitelijk in je vimrc plaatsen:
set clipboard=unnamedplus
Die automatisch de +
buffer gebruikt (het systeemklembord) standaard. Om vervolgens te rukken (kopiëren), gebruik je gewoon het gewone y
commando, enz.
Ik vond dit gedrag echter behoorlijk irritant, aangezien commandos zoals d
plaatste de tekst waarop ze werken in de standaardbuffer, wat betekende dat ik “geen snelle dd
kon doen en een regel van internet kon plakken , bijvoorbeeld.
Reacties
- + is een klembordregiser
- Wat betreft je laatste punt,
dd
betekent ” één regel knippen “, dus dat zou het verwachte gedrag zijn. In het zeldzame geval dat je wilt om een regel daadwerkelijk in de vergetelheid te brengen, is"_dd
voldoende. - ook als @HamishDowner-opmerkingen in zijn antwoord: het volgende werkt alleen als
vim --version
geeft aan dat je een+xterm_clipboard
functie hebt. Zo niet, dan moet je extra pakketten installeren of vim opnieuw compileren met die functie toegevoegd.
Antwoord
Houd de shift ingedrukt -toets en selecteer tekst met de muiscursor.
Tekst wordt naar het klembord gekopieerd.
Dit werkt ook voor het plakken van van het klembord in vim.
Voor de duidelijkheid, dit werkt voor vim
die in een terminal draait zoals xterm
.
Opmerkingen
- @LoopSpace voor selecties van meerdere regels, dit zal ook regelnummers kopiëren wanneer
set nu
is ingeschakeld . Dus je zou waarschijnlijk de regelnummers willen wisselen met een of andere sneltoets of het:set nonu
commando voor elke selectie uitvoeren - Houd op MAC de optietoets ingedrukt en selecteer tekst met de muiscursor
- Werkt niet ‘ voor mij als ik vim 8.0 + gnome-terminal gebruik
- Oplossing niet compatibel met termen uit meerdere velden zoals tmux.
- Dit kopieert niet naar het klembord, dit kopieert naar het primaire .Zie het onderscheid in Clipboard Arch Wiki-artikel .
Answer
Ik vind de standaard "+gP
en "+y
commandos erg moeilijk te gebruiken. Dus heb ik “Ctrl-Y
opnieuw toegewezen om naar het klembord te trekken en Ctrl-P
om vanaf het klembord te plakken. Voeg dit toe aan .vimrc
nnoremap <C-y> "+y vnoremap <C-y> "+y nnoremap <C-p> "+gP vnoremap <C-p> "+gP
Antwoord
Toen ik mijn vim controleerde ondersteunde het klembord niet:
vim --version | grep clip -clipboard +insert_expand +path_extra +user_commands +emacs_tags -mouseshape +startuptime -xterm_clipboard
Ik heb vim-gnome geïnstalleerd en daarna opnieuw gecontroleerd
vim --version | grep clipboard +clipboard +insert_expand +path_extra +user_commands +emacs_tags +mouseshape +startuptime +xterm_clipboard
Nu kan ik kopiëren en plakken met respectievelijk “+ y en” + p.
Answer
Maakt niet uit, Ik vond het antwoord – het staat in de menus van de vim.
"+y
Zeer intuïtief.
Opmerkingen
- Gebruik je
gvim
? - @ nozimica- ja
- Dat ‘ s ook beschikbaar in vim draaiend in een xterm of vergelijkbare terminalemulator onder X (als vim is gecompileerd met de
+xterm_clipboard
feature).
Antwoord
Gewoon om een niet-vim-specifiek antwoord toe te voegen: u kunt Ctrl+Shift+C
gebruiken om te kopiëren naar het systeemklembord in Ubuntu (als de functionaliteit wordt geleverd door uw terminalemulator, gnome-terminal voor één biedt het). Ctrl+Shift+V
plakt in een ander terminalvenster, normale Ctrl+V
plakt in een GUI-app.
Bovendien, als je de tekst in de terminal en vervolgens met de middelste muisklik, het zal van het X11-klembord worden geplakt.
Opmerkingen
- Om de een of andere reden niet ‘ werkt niet. Selecteer gewoon met de visuele modus, kopieer met ctrl-shift-C en plak vervolgens in een andere app met Ctrl-shift-V? De tekst ‘ wordt niet voor mij gekopieerd.
- @ ripper234: dit werkt niet als je gvim gebruikt. Zoals crazy2be zei, deze functionaliteit is afkomstig van je terminalemulator.
- @ ripper234: 1) Het is functionaliteit die wordt geleverd door je terminalemulator (gnome-terminal biedt het bijvoorbeeld aan), 2) Ctrl + Shift + V is Om in de terminal te plakken, gebruiken GUI-apps nog steeds Ctrl + V zoals gewoonlijk. Ik ‘ ll bewerk het antwoord om het duidelijker te maken.
- als je shift-control mousedrag gebruikt – selecteer tekst, kopiëren en plakken vanuit één buffervenster wordt gemakkelijk.
Antwoord
Houd de SHIFT-toets ingedrukt en selecteer met de muis de tekst om deze te kopiëren.
Plak dan in een ander programma met CTRL + v
.
Werkt in terminal op mijn Ubuntu 16.04. Weet niet zeker over gvim
en andere systemen.
Opmerkingen
- Dat werkt niet.
- creatief antwoord
Antwoord
Als u standaard de light-versie van vim installeert, heeft u niet de +xterm_clipboard
functie aan (vim --version | grep xterm
), die nodig is voor het gebruik van de *
en +
registreert zich buiten vim.
Om het in te schakelen, moet u ofwel zelf vim compileren, of een versie van vim installeren die vooraf ingeschakeld is. Ik heb vim-gnome gebruikt: sudo apt-get install vim-gnome
. Als je vim --version | grep xterm
uitvoert, zul je zien dat het nu +xterm_clipboard
is.
Probeer nu te kopiëren naar de +
en *
en het zou moeten werken.
Antwoord
Gewoon om toe te voegen, als iets werkt, probeer dan de terminal die vim omhult te veranderen (als je vim gebruikt vanaf de terminal). Ik ontdekte dat het klembord bijvoorbeeld ontoegankelijk is voor guake, terwijl het toegankelijk is via gnome-terminal.
Antwoord
Voor Ubuntu 14.04 en hoger:
-
Selecteer gewoon de tekst die u wilt kopiëren. En klik vervolgens met de muis op de middelste rolknop en ga naar het klembord
-
En doe daar ook hetzelfde (klik met je muis op de middelste rolknop).
Het werkt 100% in beide vim
en tail
op Ubuntu.
shift'
, vervolgensshift=
en vervolgensy
(niet allemaal tegelijk, één na de andere, behalve de verschuivingen natuurlijk).