User Tools

Site Tools


neovim

This is an old revision of the document!


neovim

My notes on nvim.

Installation

tl;dr: Prefer the tarball to snap or default package manager.

The regular apt-get repo is too out-of-date. When 0.9.5 was stable, Ubuntu 20.04 was providing 0.3 or 0.4.

I could use snap on my work (Ubuntu) and personal frame.work laptop computers to get 0.9.5. (However, GitHub recommends against snap for gh, so maybe snap is problematic.)

sudo snap install nvim --classic
ln -s /snap/bin/nvim $HOME/.local/bin/nvim

But in WSL2, although I had snap, it didn't work, so I downloaded the tarball. (If you click Linux, it'll download the tarball. Otherwise scroll down and find/expand "Assets".) Then I extracted it into $HOME/.local/bin/.

cd ~/.local/bin/
wget https://github.com/neovim/neovim/releases/latest/download/nvim-linux64.tar.gz
tar -xvf nvim-linux64.tar.gz
ln -s nvim-linux64/bin/nvim nvim

Copilot

You need Node for the Copilot plugin (Getting Started instructions). It also works with Vim 9.0.0.0185+.

  1. Install Node.
  2. Get nvim (see above)
  3. Install plugin (used –filter=blob:none)
    1. git clone --filter=blob:none https://github.com/github/copilot.vim.git ~/.config/nvim/pack/github/start/copilot.vim
  4. read docs.

taglist

The old taglist I have isn't working as expected in tmux. Opening the window would wrap neovim windows. The fix is to disable auto-resizing the winwidth.

let Tlist_Inc_Winwidth = 0

Along the way, I tried getting the latest release (since head auto runs tests). Maybe I should keep it.

git clone --filter=blob:none -b v4.6 https://github.com/yegappan/taglist ~/.local/share/nvim/site/plugin/

cscope

Cscope has been removed from neovim. If you want it back, install dhananjaylatkar/cscope_maps.nvim into .config/nvim/pack/cscope_maps/start/. (This may also work in ~/.local/share/nvim/site/pack/cscope_maps/start/, but you have to get the path right.)

Your hierarchy would look something like:

~/.config/nvim/pack/cscope_maps/
└── start
    └── cscope_maps.nvim
        └── lua
            ├── cscope
            │   └── pickers
            └── utils

Run the following commands:

mkdir -p ~/.config/nvim/pack/cscope_maps/start/
cd ~/.config/nvim/pack/cscope_maps/start/
git clone --filter=blob:none https://github.com/dhananjaylatkar/cscope_maps.nvim.git

Then in your init.vim, add the following snippet:

init.vim
lua << EOF
require("cscope_maps").setup()
EOF

Mappings

The easiest way to find out where a mapping came from is to run this command:

  :verbose imap <key sequence>
neovim.1712635428.txt.gz · Last modified: 2024/04/08 21:03 by dblume