Vim: Szöveg másolása és beillesztése a rendszer vágólapjára és a vágólapról.
Ismerd meg a Vim konfigurálását úgy, hogy a rendszer vágólapján keresztül másolhasd a másolt szöveget a Vim és a Vimen kívüli egyéb eszközök között. Azaz ahogy a grafikus programok közt ment eddig is, de a Vin, NVim a vágólap kezelése miatt nem így tette. Ahogy az ember jár a megszokott Vim úton, és elkezdi egyre gyakrabban használni a Vim-et, észreveheti, hogy bosszankodni kezd a Vim vágólapja és a rendszere közötti integráció hiánya miatt. Beállíthatjuk a Vim-et, hogy a szöveget a rendszer vágólapjára másolja, és a Vim-en kívülre illessze be.
Ehhez futtasd a következő Vim parancsot az aktuális Vim-munkamenetből:
:set clipboard+=unnamedplus
És most, ha a yanking paranccsal másolsz szöveget a Vim-ben, a rendszer vágólapjára is átmásolja. Ezután a szokásos módon beillesztheted (Ctrl+V).
Emlékszel a másolás "rángatási" (yanking) parancsaira, nem? Nyomjd meg az Esc billentyűt a normál módba lépéshez, és használd a következő billentyűk egyikét, amely megfelel a másolási igényeidnek.
yiw
- másolja ki az aktuális szótyw
- másolja a kurzor aktuális helyéről a következő szó elejéigyb
- másolja a kurzor aktuális helyéről az előző szó végéigyy
- másolja ki az egész sort (az újsor karakterrel együtt)4yy
- másolja a következő 4 sort (az újsor karakterrel együtt)y$
- másolja a kurzor aktuális helyéről a sor végére
A fenti parancs futtatása a Vimben arra készteti a Vimet, hogy a rendszer vágólapját használja _az adott munkamenethez. változtatás véglegesítéséhez add hozzá a következő sort a ~/.vimrc
fájlhoz:
set clipboard+=unnamedplus
Nézzük meg hogyan is működik ez!
A vágólap-szolgáltató módosítása
Ahhoz, hogy a Neovim/Vim a rendszer vágólapját használja, csak hozzá kell fűznünk az unnamedplus
értéket az clipboard
opcióhoz. Ideiglenesen vagy véglegesen engedélyezhetjük ezt a funkciót.
Lássuk, hogyan készül mindkettő!
A rendszer vágólapjának ideiglenes engedélyezése
A rendszer vágólapjának egy adott munkamenethez való használatához futtasd a következő parancsot:
:set clipboard+=unnamedplus
A rendszer vágólap végleges engedélyezése
Ha azt szeretnéd, hogy a Vim mindig a rendszer vágólapját használja (Linux és macOS rendszeren működik), add hozzá a következő sort a fájlhoz .vimrc
:
set clipboard+=unnamedplus
Vagy add hozzá ezt a Neovim konfigurációdhoz:
vim.opt.clipboard:append('unnamedplus')
Mit csinál ez?
A CPU-hoz hasonlóan a Vim is rendelkezik regiszterekkel, amelyeket a műveletek eredményeinek tárolására használ. Van egy +
-nak nevezett regiszter, amely a kirántott (másolt) vagy törölt szöveget vágólapként tárolja.
Bár technikailag nem egy „belső vágólap”, a +
regiszter úgy működik, mint egy belső vágólap a Vim számára, elkülönítve a "kirángatások"-at és a törléseket a rendszer vágólapjának elérésétől.
A unnamedplus
név hozzáadásával a clipboard
listaértékhez azt mondjuk a Vimnek, hogy helyette másik regisztert használjon. Ennek a regiszternek a neve *
.
Ez *
a regisztráció a rendszer vágólapja.
Ennek a TL;DR-je az, hogy Linuxon a Vimnek van egy "belső" vágólapja (nem vágólap, hanem regiszter). A unnamedplus
-t hozzáfűzve clipboard
parancshoz azt mondjuk a Neovimnak/Vimnek, hogy "Hé, kérjük, mindig másolja át a rendszer vágólapjára, és illessze be onnan."
Hibaelhárítás
Ha a másolás beillesztése továbbra sem működik, ellenőrizd, hogy telepítve vannak-e az adott platformhoz és környezethez tartozó vágólap-segédprogramok.
A Linux rendszerű Wayland-felhasználók ellenőrizzék, hogy wl-clipboard
telepítve van-e. Ha az X11-et használsz, telepítsed xsel
és xclip
. Ha felváltva használod a két környezetet, akkor mindhármat telepítsd, mert nincs bosszantóbb, mint amikor nem müködik váltás után a másolás.
Következtetés
Ebben a rövid cikkben megvizsgáltuk, hogyan használhatjuk közvetlenül a rendszer vágólapját, ha hozzáfűzzük az unnamedplus
értéket a Vim clipboard
opcióhoz.