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 dereftershift=
og dereftery
(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
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.
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.
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.vim --version
angiver, at du har+xterm_clipboard
-funktion. Hvis ikke, skal du installere ekstra pakker eller kompilere vim med den tilføjede funktion.