Snažím se kopírovat-vložit nějaký text z vim. Dělám v, abych vstoupil do vizuálního režimu, poté y jakmile jsem vybral svůj blok.
Zdá se, že text zkopíruje do schránky vimu, protože ho vloží p. Ale v jiném programu (např. Chrome) klepněte pravým tlačítkem myši-> vložit nevkládá správný text. Jak mohu zkopírovat text do správné schránky?
Následující bude fungovat, pouze pokud vim --version
znamená, že máte +xterm_clipboard
Vlastnosti. Pokud ne, budete si muset nainstalovat další balíčky nebo zkompilovat vim s přidanou funkcí.
Ve skutečnosti existují dvě možnosti:
"+y
zkopíruje do "obvyklé" schránky schránky (takže můžete 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.
Všimněte si, že "*
a "+
pracovat oběma způsoby. Takže pokud jste 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ř. pomocí Ctrl-C), můžete jej vložit do vim pomocí "+p
.
Pokud používáte vim> = 7.3.74, můžete to skutečně vložit do svého vimrc:
set clipboard=unnamedplus
Který bude automaticky používat +
buffer (systémová schránka) ve výchozím nastavení. Pak na yank (copy) stačí použít běžný příkaz y
atd.
Zjistil jsem však, že toto chování je docela nepříjemné, protože příkazy jako d
vloží text, na kterém pracují, do výchozí vyrovnávací paměti, což znamenalo, že nemohu udělat rychlý dd
a vložit řádek například z internetu.
Podržte klávesu Shift a kurzorem myši vyberte text.
Text bude zkopírován do schránky.
Toto funguje také pro vložení ze schránky do vim.
Jasně to funguje pro vim
běžící v terminálu, jako je xterm
.
Najdu standardní "+gP
a "+y
příkazy velmi obtížně použitelné. Takže jsem přemapoval Ctrl-Y
za vyskočení do schránky a Ctrl-P
pro vložení ze schránky. Přidejte to do .vimrc
nnoremap <C-y> "+y
vnoremap <C-y> "+y
nnoremap <C-p> "+gP
vnoremap <C-p> "+gP
Nevadí, našel jsem odpověď - je to napsáno v menu vim.
"+y
Velmi intuitivní.
Stačí přidat odpověď, která není specifická pro VIM: Můžete použít Ctrl+Shift+C
pro zkopírování do systémové schránky v Ubuntu (pokud funkce poskytuje emulátor terminálu, poskytuje gnome-terminal pro jednoho). Ctrl+Shift+V
vloží do jiného okna terminálu, běžné Ctrl+V
vloží do aplikace GUI.
Pokud navíc vyberete text v terminálu a poté kliknete prostředním tlačítkem, bude vložen ze schránky X11.
Když jsem zkontroloval, můj vim nepodporoval schránky:
vim --version | grep clip
-clipboard +insert_expand +path_extra +user_commands
+emacs_tags -mouseshape +startuptime -xterm_clipboard
Nainstaloval jsem vim-gnome a pak znovu zkontroloval
vim --version | grep clipboard
+clipboard +insert_expand +path_extra +user_commands
+emacs_tags +mouseshape +startuptime +xterm_clipboard
Nyní jsem schopen kopírovat a vložit pomocí kláves „+ y“ a „+ p“.
Ve výchozím nastavení, pokud nainstalujete světlou verzi vim, nebudete mít +xterm_clipboard
funkce zapnuta (vim --version | grep xterm
), což je nutné pro použití *
a +
se registruje mimo vim.
Chcete-li ji povolit, musíte buď kompilovat vim sami, nebo nainstalovat verzi vim, která je dodávána s ním předvolená. Použil jsem vim-gnome: Sudo apt-get install vim-gnome
. Pokud provedete vim --version | grep xterm
, uvidíte, že je nyní +xterm_clipboard
.
Nyní zkuste kopírovat do +
a *
a mělo by to fungovat.
Stačí přidat, pokud něco funguje, zkuste přepnout terminál, který zalomí vim (pokud používáte vim z terminálu). Zjistil jsem, že například schránka je nepřístupná hádáním, zatímco je přístupná z terminálu gnome.