it-swarm-eu.dev

Zkopírujte všechny řádky do schránky

Existuje nějaký způsob, jak kopírovat všechny řádky z otevřeného souboru do schránky v editoru VI. zkusil jsem yG ale nepoužívá schránku pro ukládání těchto řádků.

Takže je to možné?

487
Xinus

Text by měl být vložen do * nebo +registrů :

gg"*yG

Vysvětlení:

  • gg dostat kurzor na první znak souboru
  • "*y pro spuštění příkazu yank do registru * z prvního řádku, dokud ...
  • G přejde na konec souboru
564
CMS

Použití:

:%y+

všechny linky.

Vysvětlení:

  • % odkázat na další příkaz pro práci na všech řádcích
  • y pro tyto řádky
  • + zkopírovat do systémové schránky

NB: V systému Windows jsou + a * ekvivalentní viz tato odpověď .

612
Rook

na počítačích Mac

  • kopírování vybrané části: vizuálně vyberte text (typ v nebo V v normálním režimu ) a zadejte :w !pbcopy

  • zkopírujte celý soubor :%w !pbcopy

  • minulost ze schránky :r !pbpaste

68
Brian

Schránka je vyrovnávací paměť +. Chcete-li kopírovat do schránky, proveďte to "+y a [pohyb].

Tak, gg"+yG zkopíruje celý soubor.

Podobně pro vložení ze schránky "+p

48
Tordek

Další snadný způsob, jak kopírovat celý soubor, pokud máte problémy s použitím VI, je jen zadáním "cat filename". Bude echo soubor na obrazovku a pak můžete jen posouvat nahoru a dolů a kopírovat/vložit.

33
Zack

To je to, co dělám, abych vytrhl celý soubor:

ggVGy
25
EmilianoGNFNR

(v odpovědi na @rshdev, a vyhnout se nutnosti rekompilovat vim s + xterm_clipboard na @nelstrom v komentářích k OP)

je zde program nazvaný xclip, který funguje jako Ucuntu 11:

:%!xclip -sel clip
u

není ve výchozím nastavení nainstalována. k instalaci použijte:

Sudo apt-get install xclip
10
Stew

Na Ubuntu 12

můžete zkusit nainstalovat balíček vim-gnome:

Sudo apt-get install vim-gnome

Zkoušel jsem to, protože vim --version mi řekl, že by měl vlajku xterm_clipboard disabled (označeno - ), což je nutné pro použití funkce schránky.

-> instalace balíku vim-gnome na Ubuntu 12 také nainstalovala verzi vimu založenou na konzole, která má tuto možnost zapnutou (označeno příznakem + before xterm_clipboard)

Na Arch Linuxu

můžete nainstalovat vim-clipboard ze stejného důvodu.

9
Arch Linux Tux

Vyzkoušel jsem několik příkazů, které lidé zmínili výše. Žádný nepracoval. Pak jsem se zmocnil těch nejjednodušších z nich. 

Krok 1: vi <filename>
Krok 2: Klikněte pravým tlačítkem myši na záhlaví okna PuTTY
Krok 3: Vyberte možnost Vymazat zpětné zobrazení (aby se zabránilo kopírování zbytku relace SSH)
Krok 4: Klikněte znovu pravým tlačítkem myši a vyberte možnost Kopírovat vše do schránky. 

5

Pokud používáte Vim ve vizuálním režimu, platí také standardní klávesy pro vyjmutí a vložení, alespoň s Windows.

  • CTRLA znamená "Označte celý soubor.
  • CTRLC znamená "Kopírovat výběr.".
  • ESC znamená "De-select, takže další stisk klávesy nenahradí celý soubor :-)

Minimálně v terminálu Ubuntu (Gnome) funguje také standardní kopie (CTRLSHIFTC, i když se nejeví standardní klávesová zkratka pro select all (jiná než ALTE následován A).

5
paxdiablo

můžete stisknout gg najít kurzor na začátek souboru, pak stiskněte yG kopírovat veškerý obsah od začátku do konce (G se nachází) na buffer.good štěstí!

5
gameboy90

K otevření souboru můžete použít příkaz "cat" a kopírovat pomocí myši 

5
Luan Pham

gVim:

:set go=a

ggVG

Viz :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.
3
kev

:%y a Vloží veškerý obsah do vyrovnávací paměti vimu, Stiskem p v příkazovém režimu vložíte stržený obsah za řádek, na kterém kurzor právě stojí.

3
Ma'moon

Všechny tyto přístupy jsou zajímavé, ale jako líný programátor používám všechny řádky pomocí kombinace čísla + y

máte například soubor zdrojového kódu s celkem 78 řádky, můžete postupovat takto:

  1. gg dostat kurzor na první řádek 
  2. vložit 78 + y -> zařadí 78 řádků pod kurzor a aktuální řádek 
2
arfo

Pokud jsou vaše prsty nastaveny na CTRL-A CTRL-C, zkuste mapování z $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

Mám je mapován na <Leader><C-a> a <Leader><C-c>.

2
go2null

V knize Bill Joy to nebyl koncept „schránky“, takže si nemyslím, že by to bylo možné.

funkce gVim pro automatické kopírování-cokoliv-zvýrazněný-na-schránku je nejjednodušší nebo pomocí externího programu:!

Pro Cygwin vim používám 

:%!putclip
u

Možná, že Ubuntu má CLI aplikaci jako putclip?

2
rshdev

Zkopírujte celý soubor uvnitř vim nebo jeho záložek 

y G 

pak přejděte na kartu a vložte ji 

p

a vyříznutí celého souboru

d G
2
Abdul Basit

Zde je příkaz map pro výběr všech do schránky CTRL+a:

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

Přidejte ji do svého .vimrc a vy jste hodni jít ...

1
jahroy

Vytvořil (a) jsem funkci pro provedení této akce, umístěte ji na ~/.vimrc.

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

OBS: Pokud používáte neovim, potřebujete také správce schránky jako xclip. pro více informací v neovim :h checkhealth

Je také důležité zmínit, že ne vždy jednoduché y bude kopírovat do schránky, aby se každý kopírovací zdroj +, který je "Register schránky", pokusil nastavit: :set clipboard=unnamed,unnamedplus. Pro více informací viz: :h unnamed.

Zde více informací o wiki wiki.

0
SergioAraujo

Vím, že deset let na to by mělo být vyřešeno, ale první dvě odpovědi nepracovaly pro mě, takže jsem stále kopal. Pokud na serveru Redhat (vzdálený server) - Windows 10 (lokální počítač) nemůžete vybrat celou věc pomocí myši, uvíznete, protože obvyklé kopie nefungují mezi vzdálenou a místní schránkou počítače.

Chcete-li kopírovat na vzdáleném Linuxu a vložit do lokálního Windows, zadejte primární vyrovnávací paměť pomocí * a udělat pěkný dvojitý výkřik

Použití gg"*yy.

0
Lefty G Balogh

Přidal jsem následující řádek do mého .vimrc

nnoremap <F5> :%y+<CR>

To mi umožňuje kopírovat veškerý text ve Vimu do schránky stisknutím F5 (v příkazovém režimu).

0
aks