Kopieer alle regels naar het klembord

Is er een manier om alle regels van het geopende bestand naar het klembord te kopiëren in de VI-editor. Ik heb yGgeprobeerd, maar het gebruikt geen klembord om die regels op te slaan.

Dus is het mogelijk?


Antwoord 1, autoriteit 100%

Je moet de tekst naar de *of +registreert:

gg"*yG

Uitleg:

  • ggom de cursor naar het eerste teken van het bestand te brengen
  • "*yom een ruk-commando naar het register *te starten vanaf de eerste regel, tot…
  • Gom naar het einde van het bestand te gaan

Antwoord 2, autoriteit 92%

Gebruik:

:%y+

om alle regels te rukken.

Uitleg:

  • %om naar het volgende commando te verwijzen om op alle regels te werken
  • yom aan die regels te trekken
  • +om naar het systeemklembord te kopiëren

NB: In Windows zijn +en *equivalent zie dit antwoord.


Antwoord 3, autoriteit 13%

op Mac

  • kopieer geselecteerd onderdeel: selecteer visueel tekst (type Vof Vin normaal
    modus) en typ :w !pbcopy

  • kopieer het hele bestand :%w !pbcopy

  • verleden van het klembord :r !pbpaste


Antwoord 4, autoriteit 8%

Het klembord is buffer +. Om naar het klembord te kopiëren, doe je "+yen [beweging].

Dus gg"+yGkopieert het hele bestand.

Evenzo, om vanaf het klembord te plakken, "+p


Antwoord 5, autoriteit 8%

Een andere gemakkelijke manier om het hele bestand te kopiëren als je problemen hebt met VI, is door gewoon “cat bestandsnaam” te typen. Het echoot het bestand naar het scherm en dan kun je gewoon op en neer scrollen en kopiëren/plakken.


Antwoord 6, autoriteit 5%

Dit is wat ik doe om het hele bestand te rukken:

ggVGy

Antwoord 7, autoriteit 4%

U kunt de opdracht “cat” gebruiken om het bestand te openen en de muis gebruiken om te kopiëren


Antwoord 8, autoriteit 2%

(in antwoord op @rshdev, en om te voorkomen dat vim opnieuw moet worden gecompileerd met +xterm_clipboard per @nelstrom in reacties op OP)

er is een programma genaamd xclip dat werkt als putclip op Ubuntu 11:

:%!xclip -sel clip
u

het is niet standaard geïnstalleerd. om te installeren, gebruik:

sudo apt-get install xclip

Antwoord 9, autoriteit 2%

Op Ubuntu 12

je zou kunnen proberen het pakket vim-gnomete installeren:

sudo apt-get install vim-gnome

Ik heb het geprobeerd, omdat vim --versionme vertelde dat de vlag xterm_clipboarduitgeschakeld zou zijn (aangegeven door ), wat is nodig om de klembordfunctionaliteit te gebruiken.

-> het installeren van het vim-gnomepakket op Ubuntu 12 installeerde ook een console-gebaseerde versie van vim, die deze optie heeft ingeschakeld (aangegeven door een +voor de xterm_clipboard vlag)

Op Arch Linux

u mag om dezelfde reden vim-clipboardinstalleren.

Als u neovim gebruikt, moet u xclipinstalleren (zoals uitgelegd door help clipboard-tool)


Antwoord 10

je kunt op gg drukken om je cursor naar het begin van het bestand te lokaliseren, druk dan op yG om alle inhoud van het begin tot het einde (G te vinden) naar buffer.good luck te kopiëren!


Antwoord 11

Als je Vim in de visuele modus gebruikt, zijn de standaard knip- en plaktoetsen ook van toepassing, in ieder geval met Windows.

  • CTRLAbetekent “Markeer het hele bestand.
  • CTRLCbetekent “Kopieer de selectie.
  • ESCbetekent “Deselecteer, zodat uw volgende toetsaanslag niet het hele bestand vervangt 🙂

Tenminste onder Ubuntu-terminal (Gnome) werkt de standaardkopie ook (CTRLSHIFTC, hoewel er geen een standaard sneltoets zijn voor select all(behalve ALTEgevolgd door A).


Antwoord 12

:%y aRoept alle inhoud naar de buffer van vim,
Als u in de opdrachtmodus op pdrukt, wordt de verwijderde inhoud geplakt achter de regel waar uw cursor op dat moment staat.


Antwoord 13

gVim:

:set go=a

ggVG

Zie :help go-a:

'a' Autoselect:  If present, then whenever VISUAL mode is started,
 or the Visual area extended, Vim tries to become the owner of
 the windowing system's global selection.  This means that the
 Visually highlighted text is available for pasting into other
 applications as well as into Vim itself.  When the Visual mode
 ends, possibly due to an operation on the text, or when an
 application wants to paste the selection, the highlighted text
 is automatically yanked into the "* selection register.
 Thus the selection is still available for pasting into other
 applications after the VISUAL mode has ended.
     If not present, then Vim won't become the owner of the
 windowing system's global selection unless explicitly told to
 by a yank or delete operation for the "* register.
 The same applies to the modeless selection.

Antwoord 14

Ik heb een paar van de commando’s geprobeerd die mensen hierboven hebben genoemd. Geen werkte.
Toen kreeg ik de eenvoudigste van allemaal te pakken.

Stap 1: vi <filename>
Stap 2: Klik met de rechtermuisknop op de titelbalk van het Putty-venster
Stap 3: Selecteer “Scrollback wissen” (om te voorkomen dat u de rest van uw SSH-sessie kopieert)
Stap 4: Klik nogmaals met de rechtermuisknop en selecteer “Alles naar klembord kopiëren”.


Antwoord 15

Kopieer het hele bestand in de vim of de tabbladen

y G 

verplaats vervolgens naar een tabblad en plak door

p

en om het hele bestand te knippen, gebruik

d G

Antwoord 16

Er was geen concept van “klembord” in Bill Joy’s vi, dus ik denk niet dat er een ingebouwde manier is om het te doen.

gVim’s automatische kopieer-alles-gemarkeerde-naar-het-klembord-functie is het gemakkelijkst of gebruik een extern programma via :!

Voor Cygwin’s vim gebruik ik

:%!putclip
u

Misschien heeft Ubuntu een CLI-app zoals putclip??


Antwoord 17

Nou, al deze benaderingen zijn interessant, maar als luie programmeur gebruik ik yank all line door een combinatie van nummer + y

te gebruiken

je hebt bijvoorbeeld een broncodebestand met in totaal 78 regels, je kunt het als volgt doen:

  1. ggom de cursor op de eerste regel te krijgen
  2. voeg 78 + yin –> het trekt 78 regels onder je cursor en huidige regel

Antwoord 18

Ik heb de volgende regel toegevoegd aan mijn .vimrc

nnoremap <F5> :%y+<CR>

Hierdoor kan ik alle tekst in Vim naar het klembord kopiëren door op F5te drukken (in opdrachtmodus).


Antwoord 19

Als uw vingers standaard op CTRL-A CTRL-Cstaan, probeer dan de toewijzingen van $VIMRUNTIME/mswin.vim.

" CTRL-C and CTRL-Insert are Copy
vnoremap <C-C> "+y
" CTRL-A is Select all
noremap <C-A> gggH<C-O>G
inoremap <C-A> <C-O>gg<C-O>gH<C-O>G
cnoremap <C-A> <C-C>gggH<C-O>G
onoremap <C-A> <C-C>gggH<C-O>G
snoremap <C-A> <C-C>gggH<C-O>G
xnoremap <C-A> <C-C>ggVG

Ik heb ze toegewezen aan <Leader><C-a>en <Leader><C-c>.


Antwoord 20

Ik weet dat dit over tien jaar geregeld zou moeten zijn, maar de eerste twee antwoorden werkten niet voor mij, dus ik bleef graven. Op een Redhat (remote server) – Windows 10 (lokale machine), als je niet alles met een muis kunt selecteren, zit je vast omdat de gebruikelijke kopieën niet werken tussen de klemborden van de externe en de lokale machine.

Dus, om te kopiëren op de externe Linux en te plakken op de lokale Windows, specificeer de primaire buffer met de *en doe een mooie dubbele ruk

Gebruik gg"* yy.


Antwoord 21

Hier is een kaartcommando om alles naar het klembord te selecteren met CTRL+a:

"
" select all with control-a
"
nnoremap <C-a> ggmqvG"+y'q

Voeg het toe aan uw .vimrcen u kunt aan de slag...


Antwoord 22

U kunt een afkorting gebruiken, zoals deze:

noremap <F6> :%y+<CR>

Het betekent dat wanneer je op F6 drukt in de normale modus, het het hele bestand zal kopiëren en aan het klembord zal toevoegen.
Of u kunt gewoon in de normale modus :%y+typen en vervolgens op Enterdrukken.


Antwoord 23

Hoewel veel van de bovenstaande antwoorden uitstekend zijn, werkte geen van die oplossingen voor mij omdat ik de standaard VIM-installatie gebruik die bij Ubuntu 16.04 werd geleverd en de klembordoptie niet standaard was geïnstalleerd. Ik wilde de tekst ook in een extern programma plakken.

Oplossing die werkte: met de standaardterminal van Ubuntu kunt u de volledige inhoud markeren door op Editte drukken en vervolgens op select all.


Antwoord 24

Ik heb een functie gemaakt om deze actie uit te voeren, plaats deze op uw ~/.vimrc.

fun! CopyBufferToClipboard()
    %y+
endfun
nnoremap <Leader>y :call CopyBufferToClipboard()<CR>
command! -nargs=0 CopyFile :call CopyBufferToClipboard()

OBS: als je neovim gebruikt, heb je ook een klembordmanager nodig, zoals xclip. typ voor meer informatie neovim :h checkhealth

Het is ook belangrijk om te vermelden dat niet altijd een eenvoudige ynaar het klembord zal kopiëren, om elke kopie-feed +die "Clipboard Register" is, te proberen in te stellen: :set clipboard=unnamed,unnamedplus. Voor meer informatie zie: :h unnamed.

Hiermeer informatie over vim wikia.


Antwoord 25

Ik kon geen bestanden kopiëren met de bovenstaande antwoorden, maar ik heb stopverf en ik heb een oplossing gevonden voor Quora.

  1. Wijzig de instellingen van uw PuTTY-sessie, ga naar logboekregistratie en wijzig het in "afdrukbare tekens". Stel het logbestand in
  2. Doe een kat van het betreffende bestand
  3. Ga naar het bestand dat je in stap #1 hebt ingesteld en je hebt je inhoud in het logbestand.

Opmerking: het kopieert alle afgedrukte karakters van die sessie naar het logbestand, zodat het uiteindelijk groot wordt. Verwijder in dat geval het logbestand en cat het doelbestand zodat u de inhoud van dat specifieke bestand naar uw computer kopieert.


Antwoord 26

Klik met de linkermuisknop, sleep over het gedeelte dat u wilt kopiëren en laat los. De code wordt automatisch naar het klembord gekopieerd.

Other episodes