Vim/Nvim: Szöveg másolása és beillesztése a rendszer vágólapjára és a vágólapról

Vim
Vim
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ót
  • yw- másolja a kurzor aktuális helyéről a következő szó elejéig
  • yb- másolja a kurzor aktuális helyéről az előző szó végéig
  • yy- 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 ~/.vimrcfá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 clipboardopció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-clipboardtelepí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.