Încerc să copiez-lipesc un text din vim. Îl fac pe v pentru a intra în modul vizual, apoi y odată ce am selectat blocul meu.

Se pare că copiați textul în clipboard-ul vim, deoarece p îl va lipi. Dar într-un alt program (de exemplu Chrome), faceți clic dreapta-> lipiți nu lipiți textul corect. Cum pot copia textul în clipboard corect?

Răspunde

Următoarele vor funcționa numai dacă vim --version indică faptul că aveți caracteristica +xterm_clipboard. Dacă nu, va trebui să instalați pachete suplimentare sau să recompilați vim cu această caracteristică adăugată.


Există de fapt două opțiuni pentru acest lucru:

"+y 

copiază în memoria tampon „obișnuită” (astfel încât să puteți lipi folosind Ctrl + V, faceți clic dreapta și selectați „Lipire” etc), în timp ce

"*y 

copiază în selecția X11 – puteți lipi din acest buffer folosind clic mediu.

Rețineți că "* și "+ funcționează în ambele sensuri. Deci, dacă ați selectat un anumit text într-o altă aplicație, îl puteți lipi în vim folosind "*p și dacă ați copiat un anumit text (folosind, să zicem, Ctrl-C), atunci puteți lipi în vim folosind "+p.

Comentarii

  • @Tshepang nu funcționează din chit. ce ar trebui să fac?
  • @RahulPatil nu știu; poate puneți o întrebare separată, poate pe Super User (din moment ce este ‘ în instrumentul Windows, ar fi mai binevenit acolo).
  • @RahulPatil – dacă utilizați chit, atunci editați fișierul pe un server la distanță, nu pe mașina dvs. locală. În general, serverul la distanță nu a știut ‘ despre șablonul de pe mașina dvs. locală. Dacă utilizați un desktop Linux, atunci puteți ssh cu redirecționarea X (cu condiția să fi instalat bibliotecile X pe server), dar pe măsură ce chitul rulează pe Windows, nu aveți ‘ rulează astfel încât să nu poți ‘ să-l redirecționezi.
  • Bună ziua tuturor, Cum să tastați ” + y? ar trebui să-l introduc în modul vizual sau în modul de comandă? Lucru prostesc, dar nu reușesc să-mi dau seama.
  • @AlindBillore: În modul de comandă. Literal, apăsați tastele shift' apoi shift= apoi y (nu toate dintr-o dată, una după cealaltă, cu excepția schimbărilor, desigur).

Răspuns

Dacă utilizați vim> = 7.3 .74, atunci puteți pune acest lucru în vimrc:

set clipboard=unnamedplus 

Care va utiliza automat + (clipboard-ul sistemului) în mod implicit. Apoi, pentru a extrage (copia), trebuie doar să folosiți comanda obișnuită y etc.

Am considerat că acest comportament este destul de enervant, totuși, ca comenzi precum d pune textul pe care îl operează în buffer-ul implicit, ceea ce însemna că nu puteam să fac un dd rapid și să lipesc o linie de pe internet , de exemplu.

Comentarii

  • + este un regizor de clipboard
  • În ceea ce privește ultimul dvs. punct, dd înseamnă ” tăiați o linie „, astfel încât acesta ar fi comportamentul așteptat. În cazul rar când doriți pentru a șterge de fapt o linie în uitare, "_dd va face trucul.
  • de asemenea, așa cum notează @HamishDowner în răspunsul său: Următoarele vor funcționa numai dacă vim --version indică faptul că aveți funcția +xterm_clipboard. Dacă nu, va trebui să instalați pachete suplimentare sau să recompilați vim cu acea caracteristică adăugată.

Răspuns

Țineți apăsată tasta tasta și selectați textul cu cursorul mouse-ului.
Textul va fi copiat în clipboard.

Acest lucru funcționează și pentru lipirea din din clipboard în vim.

Pentru a fi clar, acest lucru funcționează pentru vim care rulează într-un terminal precum xterm.

Comentarii

  • @LoopSpace pentru selecții pe mai multe linii, acesta va copia și numerele de linie atunci când set nu este activat . Deci, probabil că ați dori să comutați numerele de linie cu o scurtătură sau să executați comanda :set nonu înainte de fiecare selecție. cursorul mouse-ului
  • Nu ‘ funcționează pentru mine folosind vim 8.0 + gnome-terminal
  • Soluția nu este compatibilă cu termeni multipani precum tmux.
  • Aceasta nu se copiază în clipboard, aceasta se copiază în principal .Vedeți distincția în articolul Clipboard Arch Wiki .

Răspundeți

Mi se pare foarte dificil de utilizat comenzile standard "+gP și "+y. Așa că am „remapat Ctrl-Y pentru a fi lansat în clipboard și Ctrl-P pentru a-l lipi din clipboard. Adăugați acest lucru la .vimrc

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

Răspuns

Când mi-am verificat vim nu suporta clipboard:

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

Am instalat vim-gnome și apoi am verificat din nou

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

Acum pot copia și lipi folosind „+ y și respectiv„ + p.

Răspuns

Nu contează, Am găsit răspunsul – este scris în meniurile vim.

"+y 

Foarte intuitiv.

Comentarii

  • Folosiți gvim?
  • @ nozimica- yeah
  • s sunt disponibile și în vim care rulează într-un xterm sau un emulator de terminal similar sub X (dacă vim este compilat cu funcția +xterm_clipboard).

Răspuns

Doar pentru a adăuga un răspuns non-specific vim: Puteți utiliza Ctrl+Shift+C pentru a copia în clipboardul sistemului în Ubuntu (dacă funcționalitatea este furnizată de emulatorul de terminal, gnome-terminal pentru unul îl oferă). Ctrl+Shift+V lipiți într-o altă fereastră a terminalului, Ctrl+V lipiți regulat într-o aplicație GUI.

În plus, dacă selectați text în terminal, apoi faceți clic cu butonul din mijloc, acesta va fi lipit din clipboardul X11.

Comentarii

  • Din anumite motive nu ‘ t funcționează. Doar selectați cu modul vizual, copiați cu ctrl-shift-C, apoi lipiți într-o altă aplicație folosind Ctrl-shift-V? Textul ‘ nu este copiat pentru mine.
  • @ ripper234: acest lucru nu funcționează dacă utilizați gvim. După cum a spus crazy2be, această funcționalitate provine de la emulatorul dvs. de terminal.
  • @ ripper234: 1) Este funcționalitate furnizată de emulatorul dvs. de terminal (gnome-terminal pentru unul îl oferă), 2) Ctrl + Shift + V este pentru a lipi la terminal , aplicațiile GUI folosesc în continuare Ctrl + V ca de obicei. ‘ voi edita răspunsul pentru a-l face mai clar.
  • dacă utilizați mousedrag cu control shift – selectați text, copierea lipirii dintr-o fereastră tampon devine ușoară.

Răspuns

Țineți apăsată tasta SHIFT și selectați textul mouse-ului pentru a-l copia.

Apoi lipiți în alt program cu CTRL + v.

Funcționează în terminal pe Ubuntu 16.04. Nu sunt sigur despre gvim și alte sisteme.

introduceți descrierea imaginii aici

Comentarii

  • Acest lucru nu funcționează.
  • răspuns creativ

Răspuns

În mod implicit, dacă instalați versiunea simplă a vim, atunci nu veți avea +xterm_clipboard caracteristică activată (vim --version | grep xterm), care este necesară pentru utilizarea * și + se înregistrează în afara vim.

Pentru a-l activa, trebuie fie să compilați vim, fie să instalați o versiune de vim care vine cu acesta pre-activată. Am folosit vim-gnome: sudo apt-get install vim-gnome. Dacă efectuați vim --version | grep xterm, veți vedea că acum este +xterm_clipboard.

Acum, încercați să copiați în + și * și ar trebui să funcționeze.

Răspunde

Doar pentru a adăuga, dacă ceva funcționează, încercați să comutați terminalul care înfășoară vim (dacă utilizați vim din terminal). Am constatat că, de exemplu, clipboard-ul este inaccesibil de către guake în timp ce este accesibil de la gnome-terminal.

Răspuns

Pentru Ubuntu 14.04 Și mai sus:

  • Doar selectați textul pe care doriți să îl copiați. Și apoi faceți clic pe butonul de rulare centrală cu mouse-ul și accesați lipul div

  • Și faceți același lucru și acolo (faceți clic pe butonul de rulare centrală cu mouse-ul).

  • Funcționează 100% în ambele vim și tail pe Ubuntu.

    Lasă un răspuns

    Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *