vim環境の更新など
ちょっとしたテキストファイル(jsonなど)の編集にいちいちVSCodeを起動するのがだるくなってきたので、vimでサクッとできるように環境を整えることにした。
環境はMacOSです。
neovimから本家のvimへ
vimはneovimの2.xがインストールされてたんだけど、neovimの活動状況があまり活発でないように見えたので本家のvimに変更した。
$ brew uninstall neovim $ brew install vim
本家のvimのインストールの際に --with-lua
をつけると入力補完の機能が使えるようになるという記事を見たんだけど、いまは --with-lua
オプションはなく、標準でインストールされた。
neobundleからdein.vimへ
neobundleの公式にdein.vimへの移行が推奨されていたので、dein.vimに移行した。
インストール手順はこのあたり。
https://github.com/Shougo/dein.vim#unixlinux-or-mac-os-x
$ curl https://raw.githubusercontent.com/Shougo/dein.vim/master/bin/installer.sh > installer.sh $ sh ./installer.sh ~/.cache/dein
neobundleでインストールしていたパッケージは、call dein#add('リポジトリ名など')
と書く。
" Add or remove your plugins here like this: call dein#add('Shougo/neosnippet.vim') call dein#add('Shougo/neosnippet-snippets') " ディレクトリツリー call dein#add('scrooloose/nerdtree') " マルチカーソル call dein#add('terryma/vim-multiple-cursors')
そして、vimを起動して :call dein#install()
を実行するとパッケージがインストールされる。
以下のように起動時にインストールチェックをするようにしても良い。
if dein#check_install() call dein#install() endif
nerdtree
vimにIDEのようなファイルツリーを表示してくれるパッケージ。 操作方法を覚えるのは結構大変だけど慣れるしかない。 キーマップは以下を設定した。
" Toggle NERDTree map <C-t> :NERDTreeToggle<CR> " move left Tab "map <C-[> gT " 有効にすると起動時に置換モードになってしまう " move right Tab map <C-]> gt
ところがコメントにもある通り、 map <C-[> gT
を設定すると起動時に置換モードになるという事象に遭遇し未解決状態。個人的にタブの切替は [
と ]
以外に使いたくないので解決したい。
vim-multiple-cursors
マルチカーソル機能を提供してくれるパッケージ。 これを使う以前にvimのVisualモードなどを使いこなす必要があり、全く速度が出ない。
Insertモードでdeleteキーが効かない問題
ずっと前からおかしいなと思いつつ放置していたが、vim-multiple-cursorsを使いこなすためにも必要なので調べてみたら一瞬で解決した。
vimで文字が削除出来ないと思ったらバックスペースが効かなくなった - Qiita
gitのcommitコメントを書くときとかもdeleteキーが効かなくて煩わしかったので解決できてよかった。
fish shellでnodeのcompletionエラーが出る問題
vimとは関係ないけど気になっていたので直した。
症状
$ node [ここでTabキーを入力] __fish_not_contains_opt: Unknown option --version __fish_not_contains_opt: Unknown option --version __fish_not_contains_opt: Unknown option --version __fish_not_contains_opt: Unknown option --eval
調べたらだいたいすぐ解決方法は見つかった。
https://fishshell.com/docs/current/commands.html#fish_update_completions
$ fish_update_completions
これだけ。fish shellは ~/.config/fish/completions/
にcompletionファイルを配置するようになっている。 fish_update_completions
コマンドは、それを最新にするコマンド。要するにcompletionファイルが古かっただけだった。このコマンドは定期的に実行するように仕組み化しておきたい。自動で差分更新してくれればいいんだけどな。
dotfile
ほとんどいじってないけどdotfileはこちらに公開しています。