Jeg prøver at kopiere og indsætte noget tekst fra vim. Jeg laver v for at gå ind i visuel tilstand, derefter y når jeg valgte min blok.

Det ser ud til at kopiere teksten til vim “s udklipsholder, fordi p indsætter den. Men i et andet program (f.eks. Chrome) skal du højreklikke-> indsætte ikke indsætte den korrekte tekst. Hvordan kopierer jeg tekst til det rigtige udklipsholder?

Svar

Følgende fungerer kun, hvis vim --version angiver, at du har +xterm_clipboard -funktion. Hvis ikke, skal du installere ekstra pakker eller kompilere vim igen med den tilføjede funktion.


Der er faktisk to muligheder for dette:

"+y 

kopier til den “sædvanlige” udklipsholderbuffer (så du kan indsætte ved hjælp af Ctrl + V, højreklik og vælg “Indsæt” osv.), mens

"*y 

kopier til X11-markeringen – du kan indsætte fra denne buffer ved hjælp af mellemklik.

Bemærk, at "* og "+ arbejde begge veje. Så hvis du har valgt noget tekst i et andet program, kan du indsætte det i vim ved hjælp af "*p, og hvis du har kopieret noget tekst (ved hjælp af f.eks.Ctrl-C), kan du indsætte det til vim ved hjælp af "+p.

Kommentarer

  • @Tshepang det fungerer ikke fra kitt. hvad skal jeg gøre?
  • @RahulPatil ved jeg ikke; måske stille et separat spørgsmål, måske til Superbruger (da det ‘ et Windows-værktøj, ville det være mere velkommen der).
  • @RahulPatil – hvis du bruger kit, redigerer du filen på en ekstern server, ikke på din lokale maskine. Generelt vil fjernserveren ‘ ikke vide om udklipsholderen på din lokale maskine. Hvis du brugte et Linux-skrivebord, kan du ssh med X-videresendelse (forudsat at du har installeret X-bibliotekerne på serveren), men når kittet kører på windows, har du ikke ‘ t har X kører, så du kan ‘ t videresende det.
  • Hej alle sammen, Hvordan skriver man ” + y? skal jeg skrive det i visuel tilstand eller i kommandotilstand? Dumme ting, men jeg kan ikke finde ud af det.
  • @AlindBillore: I kommandotilstand. Tryk bogstaveligt tasterne shift' og derefter shift= og derefter y (ikke alle på én gang, en efter den anden, undtagen skift naturligvis).

Svar

Hvis du bruger vim> = 7.3 .74, så kan du faktisk sætte dette i din vimrc:

set clipboard=unnamedplus 

Som automatisk bruger + buffer (systemets udklipsholder) som standard. For at rykke (kopiere) skal du bare bruge den almindelige y kommando osv.

Jeg fandt denne adfærd dog ret irriterende som kommandoer som d læg teksten, de arbejder på, i standardbufferen, hvilket betød, at jeg ikke kunne lave en hurtig dd og indsætte en linje fra internettet f.eks.

Kommentarer

  • + er en udklipsholderregistrering
  • Med hensyn til dit sidste punkt, dd betyder ” klip en linje “, så det ville være den forventede adfærd. I sjældne tilfælde, når du vil for faktisk at slette en linje i glemsel, "_dd gør tricket.
  • også som @HamishDowner bemærker i sit svar: Følgende fungerer kun, hvis vim --version angiver, at du har +xterm_clipboard -funktion. Hvis ikke, skal du installere ekstra pakker eller kompilere vim med den tilføjede funktion.

Svar

Hold skiftet nede -tasten og vælg tekst med musemarkøren.
Tekst kopieres til udklipsholderen.

Dette fungerer også til at indsætte fra udklipsholderen i til vim.

For at være klar fungerer dette for vim, der kører i en terminal såsom xterm.

Kommentarer

  • @LoopSpace til valg af flere linjer, dette kopierer også linjenumre, når set nu er aktiveret . Så du vil sandsynligvis skifte linjenumre med en eller anden genvej eller køre :set nonu -kommandoen før hvert valg
  • På MAC hold valgtasten nede og vælg tekst med musemarkør
  • Fungerer ‘ ikke for mig ved hjælp af vim 8.0 + gnome-terminal
  • Løsning er ikke kompatibel med flervis termer som tmux.
  • Dette kopieres ikke til udklipsholderen, dette kopieres til det primære .Se forskellen i Wiki-artikel for udklipsholder Arch .

Svar

Jeg finder standardkommandoerne "+gP og "+y meget vanskelige at bruge. Så jeg har genoptaget Ctrl-Y for at have rykket ind i udklipsholderen og Ctrl-P for at indsætte fra udklipsholderen. Føj dette til .vimrc

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

Svar

Da jeg tjekkede min vim understøttede ikke udklipsholder:

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

Jeg installerede vim-gnome og tjekkede derefter igen

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

Nu er jeg i stand til at kopiere og indsætte med henholdsvis “+ y og” + p.

Svar

Husk det, Jeg fandt svaret – det står skrevet i vims menuer.

"+y 

Meget intuitivt.

Kommentarer

  • Bruger du gvim?
  • @ nozimica- ja
  • At ‘ er også tilgængelig i vim, der kører i en xterm eller lignende terminalemulator under X (hvis vim er kompileret med +xterm_clipboard -funktionen).

Svar

Bare for at tilføje et ikke-vim-specifikt svar: Du kan bruge Ctrl+Shift+C til at kopiere til systemets udklipsholder i Ubuntu (hvis funktionaliteten leveres af din terminalemulator, gnome-terminal for en giver det). Ctrl+Shift+V indsættes i et andet terminalvindue, regelmæssigt Ctrl+V indsættes i en GUI-app.

Desuden, hvis du vælger tekst i terminalen, klik derefter midt på, den indsættes fra X11-udklipsholderen.

Kommentarer

  • Af en eller anden grund ‘ t arbejde. Vælg bare med visuel tilstand, kopier med ctrl-shift-C, og indsæt derefter i en anden app ved hjælp af Ctrl-shift-V? Teksten ‘ kopieres ikke til mig.
  • @ ripper234: dette fungerer ikke, hvis du bruger gvim. Som crazy2be sagde, er denne funktionalitet fra din terminalemulator.
  • @ ripper234: 1) Det er funktionalitet, der leveres af din terminalemulator (gnome-terminal for en giver det), 2) Ctrl + Shift + V er For at indsætte til terminalen bruger GUI-apps stadig Ctrl + V som normalt. Jeg ‘ Jeg redigerer svaret for at gøre det mere klart.
  • Hvis du bruger shift-control mousedrag – vælg tekst, kopi-indsættelse fra et buffervindue bliver let.

Svar

Hold SHIFT-tasten nede, og vælg musen med tekst for at kopiere den.

Indsæt derefter et andet program med CTRL + v.

Arbejder i terminal på min Ubuntu 16.04. Ikke sikker på gvim og andre systemer.

indtast billedebeskrivelse her

Kommentarer

  • Det fungerer ikke.
  • kreativt svar

Svar

Som standard, hvis du installerer den lette version af vim, har du ikke +xterm_clipboard -funktion på (vim --version | grep xterm), som er nødvendig for at bruge * og + registrerer uden for vim.

For at aktivere det skal du enten kompilere vim selv eller installere en version af vim, der følger med den forudindstillet. Jeg brugte vim-gnome: sudo apt-get install vim-gnome. Hvis du udfører vim --version | grep xterm, vil du se, at det nu er +xterm_clipboard.

Prøv nu at kopiere til + og * og det skal fungere.

Svar

Bare for at tilføje, hvis noget fungerer, så prøv at skifte terminalen, der omslutter vim (hvis du bruger vim fra terminalen). Jeg fandt ud af, at f.eks. Udklipsholderen er utilgængelig med guake, mens den er tilgængelig fra gnome-terminal.

Svar

For Ubuntu 14.04 Og derover:

  • Vælg bare den tekst, som du vil kopiere. Og klik derefter på den midterste rulleknap med musen, og gå til udklipsholder

  • Og gør det samme også der (klik på den midterste rulleknap med musen).

Det fungerer 100% i begge vim og tail på Ubuntu.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *