neovimで:terminalを快適に移動する設定&設定ファイルの場所の注意

TL;DR

neovimは最近のリリースでデフォルトで読み込む設定ファイルの場所と名前を$HOME/.nvimrcからXDG標準に変更した*1*2.従ってタイトルの目的を達成するには

"terminal window

tnoremap <C-w>h <C-><C-n><C-w>h

tnoremap <C-w>j <C-><C-n><C-w>j

tnoremap <C-w>k <C-><C-n><C-w>k

tnoremap <C-w>l <C-><C-n><C-w>l

~/.config/nvim/init.vimにファイルを作って書き込む必要がある. (~/.nvimrcじゃないことに注意)

詳細

はまった点と原因

:terminalを快適に使うために上のような最低限のnvimrcをかいたけどうまく動かなかった.

原因はどうやら最新版のnvimは設定ファイルの置き場所と名前が変更されたからのようだ.これは過去のvimの慣習を大きく変更する重大な決断だろう. 起動時になんらかの警告などがないとこのような重大な変更に際しては混乱が生じるのではないだろうか?

neovim/nvim_from_vim.txt at 42047acb4f07c689936b051864c6b4448b1b6aa1 · ZyX-I/neovim · GitHub

Build and use neovim files · Issue #26 · neovim/neovim · GitHub

変更の理由は

a.) $HOME ディレクトリを汚くしない

b.) この変更が嫌ならsymlinkを使って簡単に対処できる.

c).新しい環境を試すのに便利

XDG標準とは

XDGディレクトリ:Linux/Unixにおけるデスクトップ環境における標準的なフォルダー構造を規定した仕様.

XDG Base Directory Specification

多くのLinux/Unixで標準のデスクトップ環境として採用されているGNOMEもこれに準拠している

Unix ライクのシステムでは、伝統的に、ユーザーごとのアプリケーションやユーザーのデータの保存方法の標準を欠いていました。結果として、そうしたデータは、ユーザーのホームディレクトリの"ドットファイル"という形で、アドホックに、一貫性もなく、問題の多い方法で保存されることが多くありました。 XDG Base Directory Specification に準拠

OS X

今のところLinuxと同じで~/.config/nvim以下を使う これには結構反対意見も多いが ...

Support XDG directory specification · Issue #78 · neovim/neovim · GitHub

今後,他の候補としては ~/Library/Preferencesとかか?

https://github.com/neovim/neovim/pull/3198#issuecomment-145234480

vim-devでの過去の議論

追記 : 観測

結構、初めて使う人にとっては混乱の元担ってる模様. nvimのgithubを眺めてると割と頻繁に,nvimrcが認識されないことに関する質問が飛んでる

machiner.hatenablog.com

*1:https://github.com/neovim/neovim/wiki/Following-HEAD

*2:see :h vim-to-nvim, :h vim-differences