Neovim: Difference between revisions

From miki
Jump to navigation Jump to search
Line 118: Line 118:
== Troubleshooting ==
== Troubleshooting ==
=== True color and italic support ===
=== True color and italic support ===
See [[xterm]].
There are '''lot''' of discussion about true color and italic support in the terminal. Below the list of relevant posts.

* [https://github.com/morhetz/gruvbox/wiki/Terminal-specific morhetz/gruvbox wiki -- Terminal specific]
* [https://github.com/neovim/neovim/wiki/FAQ neovim/neovim -- FAQ]
* [https://gist.github.com/XVilka/8346728 XVilka/TrueColour.md -- Colours in terminal]
* [http://bruinsslot.jp/2016/05/29/how-to-enable-true-color-for-neovim-tmux-and-gnome-terminal/ How to enable true-color for neovim, tmux, and gnome-terminal]
* [https://github.com/neovim/neovim/issues/3461 neovim/neovim -- Italics aren't displaying properly #3461]
* [https://github.com/neovim/neovim/issues/3462#issuecomment-148729580 neovim/neovim -- Get funny chars on terminal #3462]

All in all the solution for me involved to at least:
* Upgrade to Ubuntu Xenial 16.04, to get newest Gnome Terminal and Terminator/gtk3 on recent VTE.
* Upgrade to tmux 2.2 (only if using tmux).
* Do a total reset of the account configuration.
* Fiddle a bit with the terminfo (still not sure what was the exact recipe though).
* Use ''gruvbox'' as theme (not ''solarized'', which does not work in terminal).

To test, first verify that the color theme works correctly in gvim.


== To Do ==
== To Do ==

Revision as of 10:04, 30 November 2016

References

Install

See the guide Installing Neovim.

On Ubuntu, we install from repository:

sudo add-apt-repository ppa:neovim-ppa/unstable
sudo apt-get update
sudo apt-get install neovim

Default ini files are located at ~/.config/nvim/init.vim. To import Vim settings (FAQ :help nvim-from-vim)

mkdir ~/.config
ln -s ~/.vim ~/.config/nvim
ln -s ~/.vimrc ~/.config/nvim/init.vim

Configure nvim as default vim alternative:

sudo update-alternatives --install /usr/bin/vi vi /usr/bin/nvim 60
sudo update-alternatives --config vi
sudo update-alternatives --install /usr/bin/vim vim /usr/bin/nvim 60
sudo update-alternatives --config vim
sudo update-alternatives --install /usr/bin/editor editor /usr/bin/nvim 60
sudo update-alternatives --config editor


Ruby support

Must install neovim rubygem:

sudo apt install ruby-dev
sudo gem install neovim

Python support

sudo pip install neovim

Plugin manager

We install vim-plug:

curl -fLo ~/.config/nvim/autoload/plug.vim --create-dirs \
    https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

Plugins

Content of ~/.config/nvim/init.vim:

Reload the init script and install plugins:

:so $MYVIMRC
"... or ':so %' if it is current file
:PlugInstall

To update plugins:

:PlugUpdate
To test
  • vim-airline, vs powerline, vs vim-bufferline
  • Color theme solarized.

NeoVim GUI

There is no equivalent to gvim for neovim so far. The best I could do so far is to create a script gnvim that uses gnome-terminal as window, sets title to NeoVim, and sets icon using xseticon.

To install gnvim:

  • Copy neovim icon to /usr/local/icons/neovim.png. For instance, there is an icon in neovim-qt.git:
git clone https://github.com/equalsraf/neovim-qt.git
sudo mkdir -p /usr/local/icons
sudo cp neovim-qt/third-party/neovim.png /usr/local/icons
  • Create file gnvim, and make it executable:
#! /bin/bash
# We add a sleep 1 because of race condition between xseticon and echo
gnome-terminal --geometry 132x50 --hide-menubar -x bash -c "echo -ne '\033]0;NeoVim\007'; ((sleep 1; xseticon -name NeoVim /usr/local/icons/neovim.png)&); exec nvim $*"
  • To add NeoVim GUI as a desktop application, create the file ~/.local/share/applications/neovim.desktop:
#!/usr/bin/env xdg-open

[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Exec=/home/peetersm/bin/ngvim
Name=NeoVim
Comment=The future of Vim
Icon=/usr/local/icons/neovim.png

Then

chmod a+x ~/.local/share/applications/neovim.desktop

Troubleshooting

True color and italic support

See xterm.

To Do

True color
Gui
Color scheme
  • Solarized
  • gruvbox
Linters
  • neomake
  • syntactics