重い腰を上げて Neovim ことはじめ ー Vim 環境の移行編
Neovim は Vim の未来だ ということで、そろそろ Vim 環境を Neovim に移行してみます。作業のモチベーションを上げるため、環境の移行に加えて、プラグイン管理を Neobundle から Dein.vim へ移行すること、および Neovim ニュースレターの 第6号 で紹介されている Neovim ならではの新しいプラグインをインストールすること、も目標にします。
まずは Neovim 本体を Homebrew
でインストールします。
$ brew install neovim/neovim/neovim
Neovim への移行のための情報は :help nvim-from-vim
から。基本的には下記で OK です。
$ mkdir ~/.config $ ln -s ~/.vim ~/.config/nvim $ ln -s ~/.vimrc ~/.config/nvim/init.vim
Neovim は XDG Base Directory Specification という仕様に従っているらしく、上記の ~/.config
は $XDG_CONFIG_HOME
のデフォルト値のようです。ちなみにデータの類は $XDG_DATA_HOME
である ~/.local/share
に、キャッシュの類は $XDG_CACHE_HOME
である ~/.cache
に保存すると良いようです。
あとは vim
コマンドの代わりに nvim
を実行すれば Neovim が起動します。驚くほどスムーズに移行できました。気持ち Vim よりもさくさくしているような印象です。
今時のツールは自己診断なんかもできます。Neovim 内で :CheckHealth
コマンドを実行すると環境に問題がないかをチェックしてくれます。Homebrew
を使っている人にはお馴染の brew doctor
にあたる機能ですね。Python と Ruby の環境に問題あり、と診断されたので言われたとおりに下記を実行します。
Python 2:
$ brew install python $ pip install neovim
Python 3:
$ brew install python3 $ pip3 install neovim
Ruby:
$ brew install ruby $ gem install neovim
再度 :CheckHealth
したところ診断結果は良好のようです。
まとめ。Vim から Neovim へ移行しました。次回は、Neobundle から Dein.vim への移行編です。
/etc/hosts にワイルドカードは書けますか
書けません。
はじめに
仕事に集中したいけれどネットサーフィンをして時間を無駄にしてしまう……!そんなわけで /etc/hosts
にこんなエントリを追加している人は意外に多いのではないかと思います。
127.0.0.1 www.facebook.com
そうやってどんどんエントリを増やしていくことになるわけですが、できたらこんな風に書けたら良いなあと思ったりしますよね。
127.0.0.1 *.jp
残念ながら /etc/hosts
にワイルドカードを書くことはできないようなので、代替手段を調べてみました。
Dnsmasq
どうやら Dnsmasq という(DNS forwarder 兼 DHCP server な)ものをインストールして設定すれば良いらしいです。早速やってみます。うちの環境は OS X El Capitan ですが、Linux でもある程度は同様に設定できると思われます。
インストール
$ brew install dnsmasq
Homebrew は本当に便利です。Linux で root 権限を持っていなかったりシステムを汚したくない場合は Linuxbrew を使ってみると良いです。
OS X の設定
OS に、全ての .jp リクエストの DNS lookup は Dnsmasq(127.0.0.1
)に向けるように設定します。
(もしなければ)/etc/resolver
というディレクトリを作成して、
$ sudo mkdir -p /etc/resolver
対象ドメイン(.jp)名のファイル、つまり /etc/resolver/jp
に下記の行を追加します。
nameserver 127.0.0.1
Dnsmasq の設定
続いて Dnsmasq に、受け取った全ての .jp リクエストに対して 127.0.0.1
を返すように設定します。
設定ファイルの例(ちなみにこの設定ファイルを眺めてみると Dnsmasq でできることが色々と分かりそうです)をコピーしてきて、
$ sudo cp /usr/local/opt/dnsmasq/dnsmasq.conf.example /usr/local/etc/dnsmasq.conf
下記の行を追加します。
address=/jp/127.0.0.1
起動
あとは起動すればおしまい。
$ sudo brew services start dnsmasq
まとめ
仕事しましょう。
Vim で :cstag の検索順を変更できますか
できます。C や C++ 言語のプログラムを読み書きするときに活躍する ctags
と cscope
。Vim で、どちらか一方でなく両方とも使いたいという欲張りな人が使うコマンドが :cstag
です。:cstag
はまず cscope のデータベースを検索し、マッチしなかったら ctags のタグファイルを検索してくれるという優れもの。set cscopetag
で :tag
や CTRL-]
などが :tag
でなく :cstag
を使うようになります。
今日は :cstag
の検索順を入れ替えたいなーと思ったのでどう設定するかを調べました。結果、cscopetagorder
というオプションが 0
(デフォルト値)のときは先に cscope の検索を行い、1
のときに逆順になることが分かりました。ということで set cscopetagorder=1
しましょう。