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
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.
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.
shift'
pakshift=
paky
(ne všechny najednou, jedna za druhým, samozřejmě kromě posunů).