Jag försöker kopiera och klistra in lite text från vim. Jag gör v för att gå in i visuellt läge, sedan y när jag valt mitt block.

Det verkar som om du kopierar texten till vim ”s urklipp, eftersom p klistrar in den. Men i ett annat program (t.ex. Chrome) klistrar du inte in rätt text. Hur kopierar jag text till rätt klippbord?

Svar

Följande fungerar endast om vim --version indikerar att du har +xterm_clipboard -funktion. Om inte, måste du installera extra paket eller kompilera om vim med den funktionen tillagd.


Det finns faktiskt två alternativ för detta:

"+y 

kopior till den ”vanliga” urklippsbufferten (så att du kan klistra in med Ctrl + V, högerklicka och välj ”Klistra in” etc), medan

"*y 

kopior till X11-valet – du kan klistra in från den här bufferten med hjälp av mittklick.

Observera att "* och "+ arbeta åt båda hållen. Så om du har valt text i ett annat program kan du klistra in det i vim med "*p och om du har kopierat lite text (med hjälp av, säg Ctrl-C) kan du klistra in det till vim med "+p.

Kommentarer

  • @Tshepang det fungerar inte från kitt. vad ska jag göra?
  • @RahulPatil vet jag inte; kanske ställa en separat fråga, kanske på Superanvändare (eftersom det ’ är ett Windows-verktyg, skulle det vara mer välkommet där).
  • @RahulPatil – om du använder kitt redigerar du filen på en fjärrserver, inte på din lokala maskin. Generellt kommer fjärrservern ’ inte att veta om urklipp på din lokala maskin. Om du använde ett Linux-skrivbord kan du ssh med X-vidarebefordran (förutsatt att du har installerat X-biblioteken på servern), men när kitt körs på windows har du inte ’ t har X kör så att du kan ’ t vidarebefordra det.
  • Hej alla, Hur skriver man ” + y? ska jag skriva det i visuellt läge eller i kommandoläge? Fånigt, men jag kan inte ta reda på det.
  • @AlindBillore: I kommandoläge. Tryck bokstavligen på tangenterna shift' och sedan shift= och sedan y (inte alla på en gång, en efter den andra, förutom förskjutningarna förstås).

Svar

Om du använder vim> = 7.3 .74, då kan du faktiskt sätta detta i din vimrc:

set clipboard=unnamedplus 

Som automatiskt använder + buffert (system Urklipp) som standard. För att skicka (kopiera) använder du bara det vanliga y -kommandot osv.

Jag tyckte att detta beteende var ganska irriterande, men som kommandon som d placera texten de arbetar med i standardbufferten, vilket innebar att jag inte kunde göra en snabb dd och klistra in en rad från internet , till exempel.

Kommentarer

  • + är en urklippsregisator
  • Angående din sista punkt, dd betyder ” skär en rad ”, så det skulle vara det förväntade beteendet. I sällsynta fall när du vill för att faktiskt radera en rad i glömska, "_dd gör tricket.
  • även som @HamishDowner noterar i sitt svar: Följande fungerar bara om vim --version indikerar att du har +xterm_clipboard -funktion. Om inte, måste du installera extra paket eller kompilera om vim med den funktionen tillagd.

Svar

Håll ner skiftet -tangenten och välj text med muspekaren.
Text kommer att kopieras till urklipp.

Detta fungerar även för att klistra in från klippbordet i till vim.

För att vara tydlig fungerar det för vim som körs i en terminal som xterm.

Kommentarer

  • @LoopSpace för flerlinjeval detta kommer också att kopiera radnummer även när set nu är aktiverat . Så du skulle förmodligen vilja växla radnummer med någon genväg eller köra :set nonu -kommandot före varje val
  • På MAC håller du ner alternativtangenten och väljer text med muspekare
  • Fungerar inte ’ för mig med vim 8.0 + gnome-terminal
  • Lösning inte kompatibel med flervåningsvillkor som tmux.
  • Detta kopieras inte till urklipp, det kopieras till det primära .Se skillnaden i Wiki-artikeln för Urklipp Arch .

Svar

Jag tycker att kommandona "+gP och "+y är mycket svåra att använda. Så jag har kartlagt Ctrl-Y för att jag gick in i klippbordet och Ctrl-P för att klistra in från urklipp. Lägg till detta till .vimrc

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

Svar

När jag kollade min vim stödde inte urklipp:

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

Jag installerade vim-gnome och kontrollerade sedan igen

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

Nu kan jag kopiera och klistra in med ”+ y respektive” + p.

Svar

Tänk, Jag hittade svaret – det står skrivet i vims menyer.

"+y 

Mycket intuitivt.

Kommentarer

  • Använder du gvim?
  • @ nozimica- ja
  • Att ’ finns också i vim som körs i en xterm eller liknande terminalemulator under X (om vim har kompilerats med +xterm_clipboard -funktionen).

Svar

Bara för att lägga till ett icke-vim-specifikt svar: Du kan använda Ctrl+Shift+C för att kopiera till system Urklipp i Ubuntu (om funktionaliteten tillhandahålls av din terminalemulator, gnome-terminal för en tillhandahåller den). Ctrl+Shift+V klistras in i ett annat terminalfönster, vanligt Ctrl+V klistras in i en GUI-app.

Dessutom, om du väljer text i terminalen och sedan mittklicka, den klistras in från X11-urklipp.

Kommentarer

  • Av någon anledning fungerar det inte ’ t fungerar. Välj bara med visuellt läge, kopiera med ctrl-shift-C och klistra sedan in i en annan app med Ctrl-shift-V? Texten ’ kopieras inte för mig.
  • @ ripper234: det här fungerar inte om du använder gvim. Som crazy2be sa, den här funktionen kommer från din terminalemulator.
  • @ ripper234: 1) Det är funktionalitet som tillhandahålls av din terminalemulator (gnome-terminal för en tillhandahåller den), 2) Ctrl + Shift + V är för att klistra in till terminalen använder GUI-appar fortfarande Ctrl + V som vanligt. Jag ’ Redigerar svaret för att göra det tydligare.
  • om du använder shift-control mousedrag – välj text, kopiera klistra in från ett buffertfönster blir lätt.

Svar

Håll ned SKIFT-tangenten och markera text för att kopiera den.

Klistra sedan in i ett annat program med CTRL + v.

Fungerar i terminal på min Ubuntu 16.04. Inte säker på gvim och andra system.

ange bildbeskrivning här

Kommentarer

  • Det fungerar inte.
  • kreativt svar

Svar

Som standard, om du installerar den lätta versionen av vim, har du inte +xterm_clipboard -funktion på (vim --version | grep xterm), som behövs för att använda * och + register utanför vim.

För att aktivera det måste du antingen kompilera vim själv eller installera en version av vim som medföljer den föraktiverad. Jag använde vim-gnome: sudo apt-get install vim-gnome. Om du utför vim --version | grep xterm ser du att det nu är +xterm_clipboard.

Försök nu kopiera till + och * och det ska fungera.

Svar

Bara för att lägga till, om något fungerar, försök att byta terminal som omsluter vim (om du använder vim från terminalen). Jag tyckte att till exempel urklipp är oåtkomligt med guake medan det är tillgängligt från gnome-terminal.

Svar

För Ubuntu 14.04 Och ovan:

  • Välj bara texten som du vill kopiera. Klicka sedan på mittknappen med musen och gå till Urklipp

  • Och gör detsamma där också (klicka på mittknappen med musen).

Det fungerar 100% i båda vim och tail på Ubuntu.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *