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

  • @Tshepang het werkt niet met stopverf. wat moet ik doen?
  • @RahulPatil Ik weet het niet; stel misschien een aparte vraag, misschien op Super User (aangezien het ‘ een Windows-tool is, zou het meer welkom zijn daar).
  • @RahulPatil – als je putty gebruikt, dan bewerk je het bestand op een externe server, niet op je lokale computer. Over het algemeen weet de externe server ‘ niets van het klembord op uw lokale computer. Als je een Linux-desktop gebruikte, kun je ssh met X-forwarding (op voorwaarde dat je de X-bibliotheken op de server hebt geïnstalleerd), maar omdat putty op Windows draait, heb je ‘ geen X zodat je het ‘ niet kunt doorsturen.
  • Hallo allemaal, Hoe typ je ” + y? moet ik het typen in de visuele modus of in de opdrachtmodus? Gekke zaak, maar ik kan er niet achter komen.
  • @AlindBillore: In commandomodus. Druk letterlijk op de toetsen shift', vervolgens shift= en vervolgens y (niet allemaal tegelijk, één na de andere, behalve de verschuivingen natuurlijk).

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.

voer hier een afbeeldingsbeschrijving in

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.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *