Neovim
目次
概要
vimの拡張版
公式サイト
インストール
brew instal neovim
which nvim
nvim -v
起動
nvim
終了は「:q」
設定
plugin
lsp
テーマ(カラースキーマ)
端末/GUI
だいたいは端末上で起動させれば良いが GUIを利用するのもあるようだ。たいがいMacで正常に稼動しないので、端末を利用するのが良いと思う
端末
GUIで利用する場合は、端末起動してnvim で起動するのでなく、nvim直接起動するようなスクリプトを作成しておくと良い
GUI
以下のページに一覧がある
開発が停止していたり、M2 Macだと結構挙動しなかったりする
- VimR: https://github.com/qvacua/vimr
- Mac専用。Mac、wsl、Linuxで利用するので、専用ツールは一旦保留
- 日本語IME経由で日本語入力すると、変な挙動の所があるようだ。SKK(not AquaSKK)を利用すれば日本語はまあ大丈夫。AquaSKKを利用したい場合はAquaSKK側に設定が必要
- Neovim Qt: https://github.com/equalsraf/neovim-qt
- M2チップ非対応。M2 Macで起動はするようだが、Rosetta経由
- goneovim: https://github.com/akiyosi/goneovim
- M2 Mac macOS Sequoia でv0.6.14が起動しなかった(壊れている表示)
- vscode-neovim: https://github.com/vscode-neovim/vscode-neovim
- おそらく基本挙動はしている。一部pluginが挙動しない
- neovide: https://github.com/neovide/neovide
- brew install --cask neovide
- .zshenv にPATH設定しておかないと nvim が呼べない
日本語入力
環境によってはIMEが微妙な場合もある模様
変種関連
矩形操作
各種tips
WSL上での実行
wsl上のnvimを利用する場合は、最初windows terminal内で利用してみるのが良い
terminalを起動して、nvimと打つのがいやな場合は
プロファイルをコピー
コマンドの所を以下のようにする
C¥Windows¥Ssytem32¥wsl.exe ~ -d Ubuntu-24.04 bash -c /path/to/nvim
bashrc は実行されていない。-c の後はフルパスにする、sourceを実行後にnvimを実行する、等で対応する(.profileは読むか未実験)
このプロファイルを実行するとnvimが起動状態のterminalが開き、nvimを終了するとterminalが閉じる状態にできる
別のterminalを利用したい時に注意すべきなのは、WSL内にterminalをインストールする事はできない、という事
windowsのexe版terminalをインストールして、wsl対応の設定をする必要がある
- Weztermは設定ファイルで「config.default_domain = 'WSL:Ubuntu'」等の記載で対応可能
- neovideのような実質内部がterminalのようなアプリもexeでインストールする必要がある。neovide.exe には -wsl引数がある、また設定にwslである事を記載できる
shellの中で、nvimの変数等を取りたい
たとえばconfigのpathを取得したい場合は以下のようにする
nvim -v1 -es "echo stdpath('config')" -cq
Macでnvimを直接起動したい
普通のアプリの様に起動したい場合があるかと思います
- まず「nvim.sh」というファイルを作成します
この例は、ghosttyを利用した例ですが、他のターミナルでも同じ事ができると思います
#!/usr/bin/env bash
cd ~
open -n -a /Applications/Ghostty.app --args -e nvim
exit 0
実行権限を付与します
chmod 755 nvim.sh
この時点で動作するか確認します
./nvim.sh
起動しない場合はスクリプトの内容を確認してください
- 次にapp用のディレクトリやファイルを作成します
最初は「Sample.app」という名前にしておきます。(別の名前でも良いですが、最終的な名前と違う名前にしておきます)
mkdir Sample.app
mkdir Sample.app/Contents
mkdir Sample.app/Contents/MacOS
mkdir Sample.app/Contents/Resources
mv nvim.sh Sample.app/Contents/MacOS
touch Sample.app/Contents/Resources/Info.plist
Info.plistの中は以下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleExecutable</key>
<string>nvim.sh</string>
</dict>
</plist>
これでダブルクリックして起動するようになります
- アイコン
アイコン付けたい場合はneovim本家から icnsファイルを取得します
https://github.com/neovim/neovim/blob/master/cmake.packaging/neovim.icns
「Contents/Resources」の下に配置
└── Contents
├── Info.plist
├── MacOS
│ └── nvim.sh
└── Resources
└── neovim.icns
Info.plist に CFBundleIconFile を追加
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleExecutable</key>
<string>nvim.sh</string>
<key>CFBundleIconFile</key>
<string>neovim</string>
</dict>
</plist>
app 名を変更します
mv Sample.app Neovim.app
アイコンが反映されます。
appの名前を変更しないと、キャッシュの影響でアイコンがすぐに反映されません
これで起動しますが、このスクリプトだと最終的にghosttyが起動するので、ghosttyのアイコンがDocに増える事になります
これはおそらく回避できないです
