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.
GitHub recommends against snap for gh, and 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+.
- Install Node.
- Get nvim (see above)
- Install plugin (used
–filter=blob:none
)git clone --filter=blob:none https://github.com/github/copilot.vim.git ~/.config/nvim/pack/github/start/copilot.vim
- 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({ disable_maps = true, -- Mapping C-] to :Cstag <cword> worse than :tag <cword> -- Alternatively, if we liked the mappings, then customise these two: -- skip_input_prompt = true, -- cscope = { skip_picker_for_single_result = true }, }) EOF
Mappings
The easiest way to find out where a mapping came from is to run this command:
:verbose imap <key sequence>