[[oktatas:linux|< Linux]] ====== Neovim ====== * **Szerző:** Sallai András * Copyright (c) 2019, Sallai András * Szerkesztve: 2024 * Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC BY-SA 4.0]] * Web: https://szit.hu ===== Bevezetés ===== A Neovim a vim agresszív módon újraírt változata. ===== Beszerzés ===== Telepítés csomagból: apt install neovim Webhely: * https://neovim.io/ ===== Indítás ===== nvim nvim . ===== Használat ===== Mozgás körbe: Használhatjuk a kurzor billentyűket vagy a "h"-t a balra mozgáshoz, a "j"-t a lefele mozgáshoz, a "k"-t a felfelé mozgáshoz és "l"-t a jobbra mozgáshoz. Ennek az ablaknak a bezárása: :q Kilépés a szerkesztőből: :qa! Vigyázat, minden változtatás törlődik. Ugrás egy tárgyra: * Pozíciónáld a kurzort egy tag-re, majd Ctrl+] ===== Fülek használata ===== Indításkor nyissunk meg egy fájlt: vim . Új fül megnyitása, fájlválasztással: :tabe . Váltás a fülek között: :tabn :tabp vagy: gt gT Fül bezárása: :q ===== Ablak felosztása ===== :sp Váltás: Ctrl+w majd egy nyíl billentyűvel válasszunk részt Vagy: Ctrl+w majd w a következőre visz ===== Fájl megnyitása ===== :e . Váltás a megnyitott fájlok között: :b myfile Utoljára megnézett fájl: :b# ===== Új buffer ===== Új split ablak: :new Ugyanabban az ablakban: :enew Új vertikálisan felosztva: :vnew Új fülön: :tabnew Pufferek listázása: :ls Váltás: Ctrl+I Ctrl+O ===== Parancs végrehajtás ===== :terminal {command} Utána meg például: :b# ===== Beállítás ===== mkdir -p ~/.config/nvim touch ~/.config/nvim/init.lua nvim ~/.config/nvim/init.lua vim.cmd("set expandtab") vim.cmd("set tabstop=2") vim.cmd("set softtabstop=2") vim.cmd("set shiftwidth=2") Aktualizálás: :source % ===== Bővítménkezelő ===== Két bővítménykezelő: * https://github.com/wbthomason/packer.nvim * https://github.com/folke/lazy.nvim A Lazy-t fogjuk használni. A fenti weblapról másoljuk a vágólapra a következőt: local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" if not (vim.uv or vim.loop).fs_stat(lazypath) then vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", "--branch=stable", -- latest stable release lazypath, }) end vim.opt.rtp:prepend(lazypath) Illesszük be az init.lua fájlba. Töltsük újra az init.lua tartalmát: :source % Most már elérhető a Lazy. Írjuk be: :Lazy Egészítsük ki: local plugins = {} local opts = {} require("lazy").setup(plugins, opts) ===== Színséma ===== -- ... local plugins = { {"catppuccin/nvim", name = "catppuccin", priority = 1000 }, } local opts = {} require("lazy").setup(plugins, opts) require("catppuccin").setup({ flavour = "mocha" }) vim.cmd.colorscheme "catppuccin" ===== Neotree ===== Fontok Windowson: choco install nerd-fonts-hack Fontok Debian GNU/Linuxon: sudo apt install ttf-ancient-fonts Az neo-tree: * https://github.com/nvim-neo-tree/neo-tree.nvim { "nvim-neo-tree/neo-tree.nvim", branch = "v3.x", dependencies = { "nvim-lua/plenary.nvim", "nvim-tree/nvim-web-devicons", -- not strictly required, but recommended "MunifTanjim/nui.nvim", --"3rd/image.nvim", -- Optional image support in preview window: --See `# Preview Mode` for more information } } -- ... vim.keymap.set('n', '', ':Neotree filesystem reveal left', {}) A teljes init.lua kód: vim.cmd("set expandtab") vim.cmd("set tabstop=2") vim.cmd("set softtabstop=2") vim.cmd("set shiftwidth=2") local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" if not (vim.uv or vim.loop).fs_stat(lazypath) then vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", "--branch=stable", -- latest stable release lazypath, }) end vim.opt.rtp:prepend(lazypath) local plugins = { {"catppuccin/nvim", name = "catppuccin", priority = 1001 }, { "nvim-neo-tree/neo-tree.nvim", branch = "v3.x", dependencies = { "nvim-lua/plenary.nvim", "nvim-tree/nvim-web-devicons", -- not strictly required, but recommended "MunifTanjim/nui.nvim", --"3rd/image.nvim", -- Optional image support in preview window: --See `# Preview Mode` for more information } } } local opts = {} require("lazy").setup(plugins, opts) require("catppuccin").setup({ flavour = "mocha" }) vim.cmd.colorscheme "catppuccin" vim.keymap.set('n', '', ':Neotree filesystem reveal left', {}) Néhány billentyűkombináció: * a - fájl hozzáadása * A - könyvtár hozzáadása * d - törlés * r - átnevezés * . - a könyvtár beállítása root könyvtárként * q - tree ablak bezárása * z - csomópontok bezárása * - megnyitás ===== Linkek ===== * https://neovim.io/ (2024) * https://github.com/neovim/neovim/blob/master/INSTALL.md#linux (2024) * https://www.jackfranklin.co.uk/blog/executing-tasks-in-neovim/ (2024) * https://dotfyle.com/neovim/plugins (2024) * https://www.chiarulli.me/Neovim/02-vim-general-settings/ (2024) * https://www.youtube.com/watch?v=fFHlfbKVi30&t=11s * https://github.com/cpow/neovim-for-newbs.git (2024; Kész beállítások typecraft-tól)