Neovimでvim-deviconsをiTerm2で使うときにハマったこと

3 min read読了の目安(約2900字

Neovim で Defx.nvim を使っていましたが、アイコンはあんまり気にしていなかったので、今回 vim-devicons を入れてみようとしてハマった内容になります。

いきなり結論

ぼくは iTerm2Arrangement という機能を使って画面の状態を保存していました。

iTerm2で現在の画面の状態を保存して起動時設定する - Qiita

この Arrangement という機能が画面だけの保存なのかなーと思って使っていたのですが、どうやらそれ以外の状態、今回でいうと Profiles -> Text -> Font or Non-ASCII Font ですが、このような設定も保存しているようでした。

これにより、 Preferences でフォント情報を更新しても一向に反映されませんでした。

なので、タブなどを複数作って画面情報を Arrangement に保存する場合は、タブの情報を Edit する必要があります。

タブの設定を変更する

タブを右クリックし、 Edit Session... をクリックします。

ここで、フォントの設定を変更します。

ハマった〜😭

これより以下は Neovim で vim-devicons を使う方法を備忘録のためメモしておきます。

NeovimのDefxでvim-deviconsを使う

基本的には以下の記事のとおりなのですが、少し違いがあったので、メモメモ。

【Vim】defx.nvimで高速でリッチなファイラを実現する(アイコン、git status表示) - Qiita

vim-deviconsで格好いいvimを作ろう。 - Qiita

Nerd Fontをインストールする

brew tap homebrew/cask-fonts
brew cask install font-hack-nerd-font
cd ~/Library/Fonts && curl -fLo "Droid Sans Mono for Powerline Nerd Font Complete.otf" https://github.com/ryanoasis/nerd-fonts/raw/master/patched-fonts/DroidSansMono/complete/Droid%20Sans%20Mono%20Nerd%20Font%20Complete.otf

ryanoasis/nerd-fonts: Iconic font aggregator, collection, & patcher. 3,600+ icons, 50+ patched fonts: Hack, Source Code Pro, more. Glyph collections: Font Awesome, Material Design Icons, Octicons, & more

iTerm2のNon-ASCII Fontを指定する

DroidSansMono Nerd Font を指定します。

vim-deviconsをdefx-iconsをインストールする

ryanoasis/vim-devicons: Adds file type icons to Vim plugins such as: NERDTree, vim-airline, CtrlP, unite, Denite, lightline, vim-startify and many more

kristijanhusak/defx-icons: Filetype icons for https://github.com/Shougo/defx.nvim

Neovim

[[plugins]]
repo = 'ryanoasis/vim-devicons'

[[plugins]]
repo = 'kristijanhusak/defx-icons'

この時点で、

:Defx -columns=icons:indent:filename:type をするとアイコンが表示されるのを確認します。

init.vimでcolumnsを指定する

call defx#custom#option('_', {
"  \ 'winwidth': 50,
"  \ 'split': 'vertical',
"  \ 'direction': 'topleft',
"  \ 'buffer_name': 'exproler',
  \ 'toggle': 1,
  \ 'resume': 1,
  \ 'show_ignored_files': 1,
  \ 'columns': 'git:icons:indent:filename:mark',
  \ })

上記の columns の icons という箇所が重要です。

こちらを参考にしてください。

neovim/dein.toml at master · hisasann/neovim

最後に

iTerm2Arrangement に結構ハマってしまいましたが、すごく勉強になりました 😎