# NeoVim

**URL:** <https://forum.dmz.rs/t/neovim/489>\
**Category:** General\
**Created:** [April 2, 2024, 11:11pm UTC](https://forum.dmz.rs/t/neovim/489 "2024-04-02T23:11:48Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![He4eT](https://forum.dmz.rs/user_avatar/forum.dmz.rs/he4et/32/1860_2.png) [@He4eT](https://forum.dmz.rs/u/He4eT)\
**Post date:** [April 2, 2024, 11:11pm UTC](https://forum.dmz.rs/t/neovim/489/1 "2024-04-02T23:11:49Z")

</div>

# NeoVim: Build Your Own Personal IDE

Let’s start a never-ending thread about customising and tuning the NeoVim editor.  
Feel free to ask anything, share your own configs or links to plugins!

## How to Vim?

- vimtutor
- [Learn Vim (the Smart Way)](https://github.com/iggredible/Learn-Vim)

## Where to Start?

- [kickstart.nvim](https://github.com/nvim-lua/kickstart.nvim)
- [My config](https://github.com/He4eT/dotfiles/blob/master/nvim/init.lua)
- See minimal config in the next comment

## Where to Dig?

- [This Week in Neovim](https://dotfyle.com/this-week-in-neovim)
- [GitHub/Awesome Neovim](https://github.com/rockerBOO/awesome-neovim)
- [r/neovim](https://reddit.com/r/neovim)
- [https://programming.dev/c/neovim](https://programming.dev/c/neovim)
- [https://sopuli.xyz/c/neovim](https://sopuli.xyz/c/neovim)

## For Video Fans

- [ThePrimeagen: Neovim From Scratch](https://youtu.be/w7i4amO_zaE?si=21nA7oM79oL4bihQ)

---

<div class="post-metadata">

**Author:** ![He4eT](https://forum.dmz.rs/user_avatar/forum.dmz.rs/he4et/32/1860_2.png) [@He4eT](https://forum.dmz.rs/u/He4eT)\
**Post date:** [April 2, 2024, 11:16pm UTC](https://forum.dmz.rs/t/neovim/489/2 "2024-04-02T23:16:34Z")

</div>

This is the copy of kickstart.nvim config without extra bloat and with some additional (missing?) parts.

```lua
-- Set <space> as the leader key
vim.g.mapleader = ' '
vim.g.maplocalleader = ' '

-- [[Setting options]]
-- See `:help vim.opt`
vim.opt.number = true
vim.opt.mouse = 'a'
vim.opt.showmode = false
vim.opt.clipboard = 'unnamedplus'
vim.opt.breakindent = true
vim.opt.undofile = true
vim.opt.ignorecase = true
vim.opt.smartcase = true
vim.opt.signcolumn = 'yes'
vim.opt.updatetime = 250
vim.opt.splitright = true
vim.opt.splitbelow = true
vim.opt.list = true
vim.opt.listchars = { tab = '» ', trail = '·', nbsp = '␣' }
vim.opt.inccommand = 'split'
vim.opt.cursorline = true
vim.opt.scrolloff = 10

-- [[Basic Keymaps]]
-- See `:help vim.keymap.set()`

vim.opt.hlsearch = true
vim.keymap.set('n', '<Esc>', '<cmd>nohlsearch<CR>')

-- Diagnostic keymaps
vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, { desc = 'Go to previous [D]iagnostic message' })
vim.keymap.set('n', ']d', vim.diagnostic.goto_next, { desc = 'Go to next [D]iagnostic message' })
vim.keymap.set('n', '<leader>e', vim.diagnostic.open_float, { desc = 'Show diagnostic [E]rror messages' })
vim.keymap.set('n', '<leader>q', vim.diagnostic.setloclist, { desc = 'Open diagnostic [Q]uickfix list' })

vim.keymap.set('t', '<Esc><Esc>', '<C-\\><C-n>', { desc = 'Exit terminal mode' })

-- [[Basic Autocommands]]
-- See `:help lua-guide-autocommands`

-- Highlight when yanking (copying) text
vim.api.nvim_create_autocmd('TextYankPost', {
  desc = 'Highlight when yanking (copying) text',
  group = vim.api.nvim_create_augroup('kickstart-highlight-yank', { clear = true }),
  callback = function()
    vim.highlight.on_yank()
  end,
})

-- [[Install `lazy.nvim` plugin manager]]
-- See `:help lazy.nvim.txt` or https://github.com/folke/lazy.nvim for more info
local lazypath = vim.fn.stdpath 'data' .. '/lazy/lazy.nvim'
if not vim.loop.fs_stat(lazypath) then
  local lazyrepo = 'https://github.com/folke/lazy.nvim.git'
  vim.fn.system { 'git', 'clone', '--filter=blob:none', '--branch=stable', lazyrepo, lazypath }
end ---@diagnostic disable-next-line: undefined-field
vim.opt.rtp:prepend(lazypath)

-- [[Configure and install plugins]]
require('lazy').setup({
  'tpope/vim-sleuth', -- Detect tabstop and shiftwidth automatically

  { 'numToStr/Comment.nvim', opts = {} }, -- "gc" to comment visual regions/lines

  { -- Adds git related signs to the gutter, as well as utilities for managing changes
    'lewis6991/gitsigns.nvim',
    opts = {
      signs = {
        add = { text = '│' },
        change = { text = '│' },
        delete = { text = '_' },
        topdelete = { text = '‾' },
        changedelete = { text = '│' },
      },
    },
  },

  { -- LSP Configuration & Plugins
    'neovim/nvim-lspconfig',
    dependencies = {
      'williamboman/mason.nvim',
      'williamboman/mason-lspconfig.nvim',
      'WhoIsSethDaniel/mason-tool-installer.nvim',
      { 'j-hui/fidget.nvim', opts = {} },
      { 'folke/neodev.nvim', opts = {} },
    },
    config = function()
      vim.api.nvim_create_autocmd('LspAttach', {
        group = vim.api.nvim_create_augroup('kickstart-lsp-attach', { clear = true }),
        callback = function(event)
          local map = function(keys, func, desc)
            vim.keymap.set('n', keys, func, { buffer = event.buf, desc = 'LSP: ' .. desc })
          end

          map('gd', vim.lsp.buf.definition, '[G]oto [D]efinition')
          map('gD', vim.lsp.buf.declaration, '[G]oto [D]eclaration')
          map('<leader>rn', vim.lsp.buf.rename, '[R]e[n]ame')
          map('<leader>ca', vim.lsp.buf.code_action, '[C]ode [A]ction')
          map('K', vim.lsp.buf.hover, 'Hover Documentation')

          local client = vim.lsp.get_client_by_id(event.data.client_id)
          if client and client.server_capabilities.documentHighlightProvider then
            vim.api.nvim_create_autocmd({ 'CursorHold', 'CursorHoldI' }, {
              buffer = event.buf,
              callback = vim.lsp.buf.document_highlight,
            })

            vim.api.nvim_create_autocmd({ 'CursorMoved', 'CursorMovedI' }, {
              buffer = event.buf,
              callback = vim.lsp.buf.clear_references,
            })
          end
        end,
      })

      local capabilities = vim.lsp.protocol.make_client_capabilities()
      capabilities = vim.tbl_deep_extend('force', capabilities, require('cmp_nvim_lsp').default_capabilities())

      local servers = {
        tsserver = {},
      }

      require('mason').setup()

      local ensure_installed = vim.tbl_keys(servers or {})
      require('mason-tool-installer').setup { ensure_installed = ensure_installed }

      require('mason-lspconfig').setup {
        handlers = {
          function(server_name)
            local server = servers[server_name] or {}
            server.capabilities = vim.tbl_deep_extend('force', {}, capabilities, server.capabilities or {})
            require('lspconfig')[server_name].setup(server)
          end,
        },
      }
    end,
  },

  { -- Autocompletion
    'hrsh7th/nvim-cmp',
    event = 'InsertEnter',
    dependencies = {
      {
        'L3MON4D3/LuaSnip',
        build = (function()
          return 'make install_jsregexp'
        end)(),
      },
      'saadparwaiz1/cmp_luasnip',
      'hrsh7th/cmp-nvim-lsp',
      'hrsh7th/cmp-path',
    },
    config = function()
      local cmp = require 'cmp'
      local luasnip = require 'luasnip'
      luasnip.config.setup {}

      cmp.setup {
        snippet = {
          expand = function(args)
            luasnip.lsp_expand(args.body)
          end,
        },
        completion = { completeopt = 'menu,menuone,noinsert' },

        mapping = cmp.mapping.preset.insert {
          ['<CR>'] = cmp.mapping.confirm {
            behavior = cmp.ConfirmBehavior.Insert,
            select = true,
          },
          ['<C-n>'] = cmp.mapping.select_next_item(),
          ['<C-p>'] = cmp.mapping.select_prev_item(),
          ['<C-b>'] = cmp.mapping.scroll_docs(-4),
          ['<C-f>'] = cmp.mapping.scroll_docs(4),
          ['<C-y>'] = cmp.mapping.confirm { select = true },
          ['<C-Space>'] = cmp.mapping.complete {},
          ['<C-l>'] = cmp.mapping(function()
            if luasnip.expand_or_locally_jumpable() then
              luasnip.expand_or_jump()
            end
          end, { 'i', 's' }),
          ['<C-h>'] = cmp.mapping(function()
            if luasnip.locally_jumpable(-1) then
              luasnip.jump(-1)
            end
          end, { 'i', 's' }),
        },
        sources = {
          { name = 'nvim_lsp' },
          { name = 'luasnip' },
          { name = 'path' },
        },
      }
    end,
  },

  { -- You can easily change to a different colorscheme.
    'folke/tokyonight.nvim',
    priority = 1000, -- Make sure to load this before all the other start plugins.
    init = function()
      vim.cmd.colorscheme 'tokyonight-night'
    end,
  },

  { -- Highlight, edit, and navigate code
    'nvim-treesitter/nvim-treesitter',
    build = ':TSUpdate',
    opts = {
      ensure_installed = { 'bash', 'c', 'html', 'lua', 'luadoc', 'markdown', 'vim', 'vimdoc' },
      auto_install = true,
      highlight = {
        enable = true,
      },
      indent = { enable = true },
    },
    config = function(_, opts)
      require('nvim-treesitter.configs').setup(opts)
    end,
  },
})

-- vim: ts=2 sts=2 sw=2 et

```

---

<div class="post-metadata">

**Author:** ![He4eT](https://forum.dmz.rs/user_avatar/forum.dmz.rs/he4et/32/1860_2.png) [@He4eT](https://forum.dmz.rs/u/He4eT)\
**Post date:** [April 2, 2024, 11:47pm UTC](https://forum.dmz.rs/t/neovim/489/3 "2024-04-02T23:47:49Z")

</div>

My [list of plugins](https://github.com/He4eT/dotfiles/blob/master/nvim/init.lua) (sorted from favourites to must-haves):

- [He4eT/desolate.nvim](https://github.com/He4eT/desolate.nvim)
- [ggandor/leap.nvim](https://github.com/ggandor/leap.nvim)
- [ibhagwan/fzf-lua](https://github.com/ibhagwan/fzf-lua)
- [nvim-lualine/lualine.nvim](https://github.com/nvim-lualine/lualine.nvim)
- [lewis6991/gitsigns.nvim](https://github.com/lewis6991/gitsigns.nvim)
- [norcalli/nvim-colorizer.lua](https://github.com/norcalli/nvim-colorizer.lua)
- [numToStr/Comment.nvim](https://github.com/numToStr/Comment.nvim)
- [nomnivore/ollama.nvim](https://github.com/nomnivore/ollama.nvim)
- [hrsh7th/nvim-cmp](https://github.com/hrsh7th/nvim-cmp)
- [neovim/nvim-lspconfig](https://github.com/neovim/nvim-lspconfig)
- [nvim-treesitter/nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter)
- [tpope/vim-sleuth](https://github.com/tpope/vim-sleuth)

[![](https://forum.dmz.rs/uploads/default/original/1X/a9831144def133b652f55130e4a137ccb6eeecca.png) ](https://raw.githubusercontent.com/He4eT/desolate.nvim/develop/screenshots/default.png)

I’d also want to mention the popular NeoVim “distributions” (AstroVim, LazyVim, NvChad, etc). They look like the easy way to go, but I would recommend you create your own config from scratch. It will help you be more familiar with the tool you want to create and use =) The only exception is [mini.nvim](https://github.com/echasnovski/mini.nvim). It’s not a “distribution” but a library of independent Lua modules that require a deep understanding and can be used independently.

---

<div class="post-metadata">

**Author:** ![nostre55](https://forum.dmz.rs/user_avatar/forum.dmz.rs/nostre55/32/350_2.png) [@nostre55](https://forum.dmz.rs/u/nostre55)\
**Post date:** [April 7, 2024, 3:41pm UTC](https://forum.dmz.rs/t/neovim/489/4 "2024-04-07T15:41:18Z")

</div>

I’ve been wanting to do this and putting it off for months, but you helped me bite the bullet, thank you 🙂

---

<div class="post-metadata">

**Author:** ![He4eT](https://forum.dmz.rs/user_avatar/forum.dmz.rs/he4et/32/1860_2.png) [@He4eT](https://forum.dmz.rs/u/He4eT)\
**Post date:** [April 7, 2024, 6:14pm UTC](https://forum.dmz.rs/t/neovim/489/5 "2024-04-07T18:14:57Z")

</div>

Glad to hear that!  
Maybe you can share your config (or screenshots) to inspire someone else =)

---

<div class="post-metadata">

**Author:** ![Malin](https://forum.dmz.rs/user_avatar/forum.dmz.rs/malin/32/26_2.png) [@Malin](https://forum.dmz.rs/u/Malin)\
**Post date:** [April 7, 2024, 8:00pm UTC](https://forum.dmz.rs/t/neovim/489/6 "2024-04-07T20:00:14Z")

</div>

More vim is always good.

---

<div class="post-metadata">

**Author:** ![txrpe](https://forum.dmz.rs/user_avatar/forum.dmz.rs/txrpe/32/1860_2.png) [@txrpe](https://forum.dmz.rs/u/txrpe)\
**Post date:** [April 9, 2024, 10:35pm UTC](https://forum.dmz.rs/t/neovim/489/7 "2024-04-09T22:35:36Z")

</div>

Hey here is one resource that helped me learn vim motions the first time

> **[Learn Vim For the Last Time](https://danielmiessler.com/p/vim/)**
>
> Why Vim? Approach Configuration vim as Language Working With Your File Searching Your Text Moving Around Your Text Changing Text Deleting Text Undo and Redo Rep

---

<div class="post-metadata">

**Author:** ![coja](https://forum.dmz.rs/user_avatar/forum.dmz.rs/coja/32/1856_2.png) [@coja](https://forum.dmz.rs/u/coja)\
**Post date:** [June 28, 2024, 8:53pm UTC](https://forum.dmz.rs/t/neovim/489/8 "2024-06-28T20:53:09Z")

</div>

> **[Neovim Config Switcher](https://yewtu.be/watch?v=LkHjJlSgKZY)**
>
> In this video, I show a new feature of Neovim nightly that allows for quickly switching between configurations so that you can experiment with new configs or swap between special setups.
> 
> Here is the script from my ~/.zshrc file...

> **[Switching Configs in Neovim](https://michaeluloth.com/neovim-switch-configs/)**
>
> How to maintain multiple Neovim configurations and switch between them

---

<div class="post-metadata">

**Author:** ![disu1950](https://forum.dmz.rs/user_avatar/forum.dmz.rs/disu1950/32/1867_2.png) [@disu1950](https://forum.dmz.rs/u/disu1950)\
**Post date:** [July 4, 2024, 3:26am UTC](https://forum.dmz.rs/t/neovim/489/9 "2024-07-04T03:26:48Z")

</div>

kad san u terminalu vim mi je view a nano editor…  
nano je malo laksi za zahvatit i zapamtit komande, dok vim ima bolji preglet al komplicirano malo za editor… bar sta se tice na android uredajima…  
jedino sta znam od vim.a jest:  
:w :qa!  
ovakav post mnogo znaci +

---

<div class="post-metadata">

**Author:** ![coja](https://forum.dmz.rs/user_avatar/forum.dmz.rs/coja/32/1856_2.png) [@coja](https://forum.dmz.rs/u/coja)\
**Post date:** [July 11, 2024, 9:01pm UTC](https://forum.dmz.rs/t/neovim/489/10 "2024-07-11T21:01:16Z")

</div>

> **[Neovide - Neovide](https://neovide.dev/)**
>
> A Simple, No Nonsense, Cross-Platform, Graphical User Interface for Neovim

---

<div class="post-metadata">

**Author:** ![disu1950](https://forum.dmz.rs/user_avatar/forum.dmz.rs/disu1950/32/1867_2.png) [@disu1950](https://forum.dmz.rs/u/disu1950)\
**Post date:** [July 11, 2024, 11:32pm UTC](https://forum.dmz.rs/t/neovim/489/11 "2024-07-11T23:32:57Z")

</div>

@coja radi li na win7 32bit znas li?  
hh a jest ancient OS al stas hh…

evo malo studiram ovaj naovim na liuxu  
i mogao bih rec jako opsiran editor ima mogucnosti masu… malo kad uvatis komande kao hjkl za kretnju i komande za edit text nvim jako dobro…

nego @coja znas li mozda kako ovaj split screen da mi bude na pola ekrena ovo di je bila traka spustit malo doli…znaci dijezuta linija da bude di je poluzelena kao…  
ako koristis na androidu, i jel se stavlja .vimrc u .vim folder il … nvim isto poteze config iz .vimrc…

 ![Screenshot_20240712_012157_Termux](https://forum.dmz.rs/uploads/default/original/1X/0791fed51317265375453d83f421853eba469634.jpeg)

ono sta nisan skuzija prije jest da ovi vim editor ima 4moda kao view/insert/ex/command hh kasnije se uigras s komandama…

---

<div class="post-metadata">

**Author:** ![disu1950](https://forum.dmz.rs/user_avatar/forum.dmz.rs/disu1950/32/1867_2.png) [@disu1950](https://forum.dmz.rs/u/disu1950)\
**Post date:** [July 11, 2024, 11:38pm UTC](https://forum.dmz.rs/t/neovim/489/12 "2024-07-11T23:38:11Z")

</div>

@coja  
e kako se installira ovaj fajl za linx:

`neovide.AppImage`

ova appImage za neovide

---

<div class="post-metadata">

**Author:** ![He4eT](https://forum.dmz.rs/user_avatar/forum.dmz.rs/he4et/32/1860_2.png) [@He4eT](https://forum.dmz.rs/u/He4eT)\
**Post date:** [July 11, 2024, 11:55pm UTC](https://forum.dmz.rs/t/neovim/489/13 "2024-07-11T23:55:57Z")

</div>

> [@disu1950](#):
>
> appImage za neovide

You need to set up the execution permission for the AppImage file:

```auto
chmod +x ./filename.appimage

```

After that you could run it with `./filename.appimage` or with a doubleclick.

> [@disu1950](#):
>
> split screen da mi bude na pola ekrena

- `Ctrl+W +/-` increase/decrease **height** (ex. `20<C-w>+`)
- `Ctrl+W >/<` increase/decrease **width** (ex. `30<C-w><`)
- `Ctrl+W =` equalize **width**  **and**  **height** of all windows

See also `:help CTRL-W` or [this chapter](https://github.com/iggredible/Learn-Vim/blob/master/ch02_buffers_windows_tabs.md) for basic introduction.

Hope it helps! =)

---

<div class="post-metadata">

**Author:** ![He4eT](https://forum.dmz.rs/user_avatar/forum.dmz.rs/he4et/32/1860_2.png) [@He4eT](https://forum.dmz.rs/u/He4eT)\
**Post date:** [July 12, 2024, 12:08am UTC](https://forum.dmz.rs/t/neovim/489/14 "2024-07-12T00:08:07Z")

</div>

Did you try it?

I like the cursor animation and smooth scrolling, but kitty still much more suitable for my workflow: I’m too lazy to switch working directory inside of the vim, old good `cd + nvim` still works 😃

---

<div class="post-metadata">

**Author:** ![coja](https://forum.dmz.rs/user_avatar/forum.dmz.rs/coja/32/1856_2.png) [@coja](https://forum.dmz.rs/u/coja)\
**Post date:** [July 12, 2024, 9:25am UTC](https://forum.dmz.rs/t/neovim/489/15 "2024-07-12T09:25:13Z")

</div>

@disu1950 Ne znam za win7 32bita, preporucujem da ga oboris i instalias debian 32bita, poslednju verziju, imaces mng vise mogucnosti i bice znatno brzi.

Za split terminala nzm, vidim da je to termux. Mozes da probas sa tmux, sa njim moze split kako zelis.

---

<div class="post-metadata">

**Author:** ![coja](https://forum.dmz.rs/user_avatar/forum.dmz.rs/coja/32/1856_2.png) [@coja](https://forum.dmz.rs/u/coja)\
**Post date:** [July 12, 2024, 9:32am UTC](https://forum.dmz.rs/t/neovim/489/16 "2024-07-12T09:32:17Z")

</div>

I did, added some neovide config to init.lua, like window size, transperentcy, zoom, cursor is more fun… looks cool and seems to be a faster.

---

<div class="post-metadata">

**Author:** ![disu1950](https://forum.dmz.rs/user_avatar/forum.dmz.rs/disu1950/32/1867_2.png) [@disu1950](https://forum.dmz.rs/u/disu1950)\
**Post date:** [July 12, 2024, 7:20pm UTC](https://forum.dmz.rs/t/neovim/489/17 "2024-07-12T19:20:15Z")

</div>

@coja

> instalias debian 32bita, poslednju verzij

ako moze link di mogu skinit i koliko GB je potrebo ?

@He4eT  
thx for info, ill try … just came online… +

---

<div class="post-metadata">

**Author:** ![coja](https://forum.dmz.rs/user_avatar/forum.dmz.rs/coja/32/1856_2.png) [@coja](https://forum.dmz.rs/u/coja)\
**Post date:** [July 12, 2024, 7:55pm UTC](https://forum.dmz.rs/t/neovim/489/18 "2024-07-12T19:55:49Z")

</div>

[https://cdimage.debian.org/debian-cd/current/i386/iso-cd/debian-12.6.0-i386-netinst.iso](https://cdimage.debian.org/debian-cd/current/i386/iso-cd/debian-12.6.0-i386-netinst.iso)

---

<div class="post-metadata">

**Author:** ![disu1950](https://forum.dmz.rs/user_avatar/forum.dmz.rs/disu1950/32/1867_2.png) [@disu1950](https://forum.dmz.rs/u/disu1950)\
**Post date:** [July 13, 2024, 4:39am UTC](https://forum.dmz.rs/t/neovim/489/19 "2024-07-13T04:39:46Z")

</div>

yees this one i needed:

```auto
Ctrl+W +/- increase/decrease height (ex. 20<C-w>+)

```

thx for this  
sad je to ovako pola-pola screen

 ![Screenshot_20240713_020433_Termux](https://forum.dmz.rs/uploads/default/original/1X/46bb67d967f7a4071bd14dc4350ba17a588e0e4d.png)

while testing these also found out we can split screen on many ways to open many files…

using these  
navigate between windows, use these shortcuts:

```vim
Ctrl-W H Moves the cursor to the left window 
Ctrl-W J Moves the cursor to the window below 
Ctrl-W K Moves the cursor to the window upper 
Ctrl-W L Moves the cursor to the right window

```

\*_premda je lakse na android mos tap da pribaci kurson stoga bolje i brze nego ovi gori shortcuts…_

useful normal-mode window commands:

```vim
Ctrl-W V Opens a new vertical split 
Ctrl-W S Opens a new horizontal split 
Ctrl-W C Closes a window 
Ctrl-W O Makes the current window the only one on screen and closes other windows 

```

And here is a list of useful window command-line commands:

```vim
:vsplit filename Split window vertically 
:split filename Split window horizontally 
:new filename Create new window

```

 ![Screenshot_20240713_015736_Termux](https://forum.dmz.rs/uploads/default/original/1X/71f749bbd7cb28fb3c5d6efd4cf2e94b1b97dd2c.jpeg)

---

<div class="post-metadata">

**Author:** ![coja](https://forum.dmz.rs/user_avatar/forum.dmz.rs/coja/32/1856_2.png) [@coja](https://forum.dmz.rs/u/coja)\
**Post date:** [July 13, 2024, 7:08pm UTC](https://forum.dmz.rs/t/neovim/489/22 "2024-07-13T19:08:21Z")

</div>

Ovo je thread za Neovim, zaprljali smo ga sa postovima koji se ne ticu te teme, odgovoricu ti u inbox.

[Next page](https://forum.dmz.rs/t/neovim/489.md?page=2)
