有馬総一郎のブログ

(彼氏の事情)

2018年05月04日 00:41:22 JST - 5 minute read - Vim

にわかVimmerがNeovimに乗り換えたら戸惑ったという話

Ubuntu 18.04に乗り換えたついでにVim/GvimからNeovim/Neovim-Qtに乗り換えた。

それまでも乗り換えようかと画策して GitHub - equalsraf/neovim-qt: Neovim client library and GUI, in Qt5.を参照してNeovim-Qtをビルドして、試そうとしていたのだけど、

Neovim-Qtが起動できない

小さな窓が表示されたかと思うと Error: Neovim is taking too long to respondのようにエラーメッセージが表示されて動かなかった。

真っ新なUbuntuインストールした状態なら動くと思って、 Ubuntu – Package Download Selection – neovim-qt_0.2.7-3_amd64.debから neovim-qt_0.2.7-3_amd64.debをダウンロードしてきて

sudo apt install ./neovim-qt_0.2.7-3_amd64.deb 

してインストールした。するとあっさり起動した。というか、それまで動かないと思っていたのは、~/.config/nvim/init.vimの書き方でエラー構文があったので、動かなかったようだ。

とりあえず起動できるようになった。

クリップボードのコピーペイストができない…

neovimでクリップボード(ubuntu) - Qiitaを参照して解決。

sudo apt-get install xsel

あと、 neovimの挙動なのか、Shift+Insertでペイストできてたのが<S-Insert>と入力されてしまう。 【gVim】S-Insertで貼付け(ペースト)できない - The jonkiには

set nopaste

で直るとあるけど、直らない。 Inserting in insert mode inserts · Issue #253 · equalsraf/neovim-qt · GitHubで書かれているように

" Shift + Insertでペイスト
noremap! <S-Insert> <C-R>+

とキーマップすることで対処。本当はこういう対処するの好きでないのだけど…

カラースキーマが適用できない

solarizedのカラースキーマが適用できない… NeoVimを入れてみたんだよっ - ちゃっくのメモ帳など読んで

export TERM=xterm-color256

ターミナルが256色表示できるようにする。

そして、 solarizedでも、 NeoSolarizedなので、そこには

set termguicolors

しろとある。 tmux 上で Vim を True Color (24 bit color) で使う - Qiitaなど読むがイマイチ、ピンと分からないがそうしておく。

それでも適用が上手くいかなかったりしたのだが、なんてことはないカラースキーマプラグインを格納する

~/.config/nvim/colors

ディレクトリ名にsが付いてないというクソみたいなミスだった。まあ、私なんてこんなもんよ。

pythonで書かれたvimプラグインが動かない

echo has('python3')

0が帰る。

Pythonのパッケージ管理ツールをインストールして、 neovim用パッケージをインストールする。

sudo apt install python-pip
pip install neovim

init.vim

let g:python3_host_prog ='/usr/bin/python3'

とする。1が帰るように。

vim-singletonが使えない

singleton.vim 作った - 永遠に未完成これ。一つのインスタンスで使うためのプラグイン。これを知るまえまでは Windows7でgvimで常にタブで開く - めも帖みたいにgvim --remote-tab-silentで開くようにレジストリだの、あれこれやっていた。

しかし、 neovimではそもそも clientserverのフラグがない?--remote系のコマンドオプションがなくなっている?

GitHub - mhinz/neovim-remote: Support for –remote and friends.なるnvrコマンドというのがあるようでそこで同等?の機能を使うことができる。

pip3 install neovim-remote 

なのでインストールする。が、nvrコマンドが見付からないと出る。 -bash: nvr: command not found · Issue #64 · mhinz/neovim-remote · GitHub

nvrコマンドが$HOME/.local/bin直下にあるので、 .bashrcに以下を追記する。

export PATH="$HOME/.local/bin:$PATH"

これでネストして(一つのインスタンスで)使えるように。これ、

NVIM_LISTEN_ADDRESS=/tmp/nvimsocket nvim

だけでなく、

NVIM_LISTEN_ADDRESS=/tmp/nvimsocket nvim-qt

Neovim-Qtでもちゃんとネストされるように起動できる。

と、大分変更があるなと面喰らった。Neovimは、GUIのテキストエディター使いから移行してきた私には、使い勝手が悪くなったと思ってしまう。

NeoVimを端末として使うためにしたこと - Qiita

だけど、そもそものvimの使い方、本質を考えれば上の記事のようにterminalコマンドを使って、emacsのようにvim世界でテキストをガンガン開いていくように使うのが正しいのかな。

Neovimに乗り換えて困ったという情報がないのは、gvimよりは端末でvimを使う人が多いのかな。GUIなんて飾りってやつかな。

うぶんちゅ!
1
いやぁ、使う人減っちゃうよ

うぶんちゅ!
2
さすがにWindowsでNeovim使うのはもうちょっと先かな

これからはこうした使い方に慣れていくとしよう。タブよりはバッファを使うようにしたりとか、プラグインとかneobundleとかまだ使っているから、変えていこう。


  1. クレジット:
    ● マンガ/瀬尾浩史
    ● デザイン/シオズミタロウ
    ● 初出 /株式会社アスキー・メディアワークス「 Ubuntu Magazine Japan vul.07 」
    2012 年 3 月 9 日発行 ↩︎

  2. クレジット:
    ● マンガ/瀬尾浩史
    ● デザイン/シオズミタロウ
    ● 初出 /株式会社アスキー・メディアワークス「 Ubuntu Magazine Japan vul.06 」
    2011 年 12 月 10 日発行 ↩︎