Snažím se zkopírovat a vložit nějaký text z vim. Dělám v přejdete do vizuálního režimu a poté y jakmile vyberu svůj blok.

Zdá se, že zkopíruje text do schránky vim, protože p jej vloží. V jiném programu (např. Chrome) však kliknutí pravým tlačítkem-> vložení nevloží správný text. Jak zkopíruji text do správné schránky?

Odpovědět

Následující text bude fungovat, pouze pokud vim --version označuje, že máte +xterm_clipboard funkci. Pokud ne, budete muset nainstalovat další balíčky nebo překompilovat vim s přidanou funkcí.


Ve skutečnosti existují dvě možnosti:

"+y 

zkopíruje do „obvyklého“ vyrovnávací paměti schránky (můžete jej vložit pomocí Ctrl + V, kliknout pravým tlačítkem a vybrat „Vložit“ atd.), zatímco

"*y 

zkopíruje do výběru X11 – z tohoto bufferu můžete vložit prostředním kliknutím.

Pamatujte, že "* a "+ fungují oběma směry. Pokud jste tedy vybrali nějaký text v jiné aplikaci, můžete jej vložit do vim pomocí "*p a pokud jste zkopírovali nějaký text (například řekněme Ctrl-C), můžete jej vložit to do vim pomocí "+p.

Komentáře

  • @Tshepang nefunguje z tmelu. co mám dělat?
  • @RahulPatil nevím; možná položit samostatnou otázku, možná na Super User (protože ‚ sa Windows nástroj, bylo by to více vítáno tam).
  • @RahulPatil – používáte-li tmel, upravujete soubor na vzdáleném serveru, nikoli na místním počítači. Vzdálený server obecně ‚ neví o schránce na místním počítači. Pokud jste používali plochu Linuxu, můžete ssh přeposlat X (za předpokladu, že jste nainstalovali X knihovny na serveru), ale jak tmel běží na Windows, nemáte ‚ X běží, takže jej ‚ nemůžete předat dál.
  • Ahoj všichni, jak napsat “ + y? mám to psát ve vizuálním režimu nebo v příkazovém režimu? Hloupá věc, ale nemohu na to přijít.
  • @AlindBillore: V příkazovém režimu. Doslova stiskněte klávesy shift' pak shift= pak y (ne všechny najednou, jedna za druhým, samozřejmě kromě posunů).

Odpověď

Pokud používáte vim> = 7.3 .74, pak to můžete skutečně vložit do svého vimrc:

set clipboard=unnamedplus 

Který automaticky použije + vyrovnávací paměť (systémová schránka) ve výchozím nastavení. Potom k vytržení (kopírování) stačí použít běžný příkaz y atd.

Toto chování mi však připadalo docela nepříjemné, protože příkazy jako d vložil text, na kterém pracují, do výchozí vyrovnávací paměti, což znamenalo, že jsem nemohl rychle dd vložit řádek z internetu například.

Komentáře

  • + je správce schránky
  • Pokud jde o váš poslední bod, dd znamená “ oříznout jeden řádek „, což by bylo očekávané chování. Ve výjimečných případech, kdy chcete Chcete-li skutečně smazat řádek do zapomnění, "_dd to udělá.
  • také jako @HamishDowner uvádí ve své odpovědi: Následující bude fungovat, pouze pokud vim --version označuje, že máte +xterm_clipboard funkci. Pokud ne, budete muset nainstalovat další balíčky nebo překompilovat vim s přidanou funkcí.

Odpověď

Podržte klávesu a vyberte text kurzorem myši.
Text bude zkopírován do schránky.

Toto funguje také pro vložení ze schránky do vim.

Aby bylo jasno, funguje to pro vim běžící v terminálu, jako je xterm.

Komentáře

  • @LoopSpace pro víceřádkové výběry, tím se zkopírují také čísla řádků, pokud je povolen set nu . Pravděpodobně byste tedy chtěli přepínat čísla řádků pomocí nějaké zkratky nebo před každým výběrem spustit příkaz :set nonu
  • Na MAC podržte klávesu možností a vyberte text pomocí kurzor myši
  • nefunguje mi ‚ pomocí vim 8.0 + gnome-terminal
  • řešení, které není kompatibilní s vícepanelovými výrazy, jako je tmux.
  • Toto se nezkopíruje do schránky, toto se zkopíruje do primární .Rozdíly naleznete v článku Archiv schránky Wiki .

Odpovědět

Standardní příkazy "+gP a "+y považuji za velmi obtížné používat. Přemapoval jsem tedy Ctrl-Y na trhání do schránky a Ctrl-P na vložení ze schránky. Přidat do .vimrc

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

odpověď

Když jsem zkontroloval svůj vim nepodporoval schránku:

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

Nainstaloval jsem si vim-gnome a znovu zkontroloval

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

Nyní mohu kopírovat a vkládat pomocí „+ y“ a „+ p.“

Odpověď

Nevadí, Našel jsem odpověď – je napsána v nabídkách vim.

"+y 

Velmi intuitivní.

Komentáře

  • Používáte gvim?
  • @ nozimica- yeah
  • To ‚ s k dispozici také ve vim běžícím v xtermu nebo podobném emulátoru terminálu pod X (pokud je vim kompilován s funkcí +xterm_clipboard).

Odpověď

Stačí přidat odpověď, která není specifická pro vim: Pomocí Ctrl+Shift+C můžete zkopírovat do systémové schránky v Ubuntu (pokud tuto funkci poskytuje poskytuje váš emulátor terminálu, gnome-terminal pro jednoho). Ctrl+Shift+V se vloží do jiného okna terminálu, běžné Ctrl+V se vloží do aplikace s grafickým uživatelským rozhraním.

Navíc pokud vyberete text v terminálu, pak klikněte prostředním tlačítkem, bude vložen ze schránky X11.

Komentáře

  • Z nějakého důvodu to není ‚ nefunguje. Stačí vybrat pomocí vizuálního režimu, zkopírovat pomocí ctrl-shift-C a poté vložit do jiné aplikace pomocí Ctrl-shift-V? Text se mi ‚ nezkopíruje.
  • @ ripper234: toto nefunguje, pokud používáte gvim. Jak řekl crazy2be, tato funkce pochází z vašeho emulátoru terminálu.
  • @ ripper234: 1) Je to funkce poskytovaná emulátorem vašeho terminálu (poskytuje ji gnome-terminal), 2) Ctrl + Shift + V je pro vložení do terminálu aplikace GUI stále používají Ctrl + V jako obvykle. ‚ Upravím odpověď tak, aby byla jasnější.
  • pokud použijete shift-control mousedrag – vyberte text, kopírování z jednoho okna vyrovnávací paměti bude snadné.

Odpověď

Podržte klávesu SHIFT a vyberte text, který chcete zkopírovat.

Poté vložte do jiného programu s CTRL + v.

Pracuje v terminálu na mém Ubuntu 16.04. Nejste si jisti gvim a dalších systémech.

zde zadejte popis obrázku

Komentáře

  • To nefunguje.
  • kreativní odpověď

Odpověď

Ve výchozím nastavení, pokud nainstalujete odlehčenou verzi vim, nebudete mít +xterm_clipboard funkce na (vim --version | grep xterm), která je nutná pro použití * a + registruje se mimo vim.

Chcete-li to povolit, musíte buď vim zkompilovat sami, nebo nainstalovat předem povolenou verzi vim, která je s ním dodávána. Použil jsem vim-gnome: sudo apt-get install vim-gnome. Pokud provádíte vim --version | grep xterm, uvidíte, že je nyní +xterm_clipboard.

Nyní zkuste zkopírovat do + a * a mělo by to fungovat.

Odpovědět

Stačí přidat, pokud něco funguje, zkuste přepnout terminál, který zabalí vim (pokud používáte vim z terminálu). Zjistil jsem, že například schránka je nepřístupná guake, zatímco je přístupná z terminálu gnome.

Odpověď

Pro Ubuntu 14.04 a výše:

  • Stačí vybrat text, který chcete kopírovat. Poté klikněte myší na prostřední rolovací tlačítko a přejděte do schránky

  • A udělejte to samé také (klikněte myší na prostřední rolovací tlačítko).

100% funguje v obou vim a tail na Ubuntu.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *