はじめに
vimを勉強したいと思いました。とてもかっこいいからです。
操作方法を覚えました。i
で編集して、:wq
で閉じて...。さあ、vimが編集できるようになりました。
そして...、次に何をすればいいのか分からなくなってしまいました。
そこで、vimを練習し、IDEにした際の記録をまとめます。苦労もしますがIDEになった時の感動とスムーズな編集は最高です。
これが、こうなります(neovim as an IDE)
環境
windows wsl(ubuntu linux)
neovim 0.9.1
概要
- nvimの初期設定
- コマンドを覚える編(記事紹介 & 学習方法)
- IDEの設定編とハマりポイントの解決方法
到達点
- Vimの基本操作が分かる
- 日常のマウス操作を8割減らせる(ブラウジング、コード編集)
- neovimがVSCodeみたいなIDEになる
1. nvimの初期設定
neovimの最新バージョンのインストール
いきなりハマりポイントです。neovimの最新バージョンは以下では入りません。
sudo apt install neovim
以下の記事で紹介した方法で入れます。
2. コマンドを覚える編(記事紹介 & 学習方法)
Vimの概要をつかむ
最初にVimの全体的な概要をつかみます。
この記事はVimのコマンドだけでなく、Vimの思想や考え方が入ってきます。神です。
ボリュームがあるのでざっと読みました。
基本コマンドを習得する
ここはvimtutorで耐えようと思いましたが、15分で飽きてしまいました。
vimgeniusなら、タイピングゲーム感覚でvimのコマンドが覚えられます!
Tips: 出てきたコマンドのメモを取っておくといいです
記事を読み、コマンドをまとめる
以下の記事を読み、コマンドもメモしました。
脱マウス(vimium)
直接関係はありません。
chromeのショートカットを覚えるのとvimiumの導入をしました。
vimiumはキーバインドでブラウジングができるchrome拡張です
操作方法はgithubにあります。
3. IDEの設定編(neovim as an IDE)
これを見ました。動画とセットです。
非常によくまとまっているので最高でした。
最終的な設定ファイル周りはこうなりました。便利にするために一部いじっています。
2023/11/02追記
Packer nvimの公式によると、Packerは2023/08-メンテナンスされなくなってしまったそうです。
This repository is currently unmaintained. For the time being (as of August, 2023), it is recommended to use one of the following plugin managers instead:
そこで、プラグインマネージャをlazy.nvimに変えました。記事で紹介のあるプラグインは入れているはずなので参考にしてください。
ハマったところ
wslとnvim間でのクリップボード共有
wslからwindowsのクリップボード間のコピー・ペーストがしたい場合は以下の記事で紹介した方法が使用できます。設定しない人は飛ばしてください。
なぜかlspで言語パッケージがインストールできない
そもそも対象言語をインストールしていませんでした。
コマンドラインからインストールします。
mason-lspの自動インストールと有効化
これをやらないと、環境を変えたときにいちいち:MasonInstall
しなければいけなくなります。そのため、自動インストールと設定の有効化をします。以下の記事にまとめました。
ensuredへの追記と、setup_handlersの設定をするとできます。
なお、デバッガのdelveは自動インストールできませんでした。
そのため、:MasonInstall delve
する必要があります。
pylspを入れるとerror failed to create python3 virtual environment
が出る
以下の記事にまとめました。:checkhealth
で確認し、仮想環境を整えたら治りました。
nvim-treeを自動で開く設定にする
nvim-treeを自動で開く設定を書きます。nvim hoge.lua
で自動でtreeが開きます。
以下の記事にまとめました。
参考
fontの変え方
nard-fontが使用できないと、nvim-treeのアイコンが表示されません。
フォントをインストールします。wslではなくpowershell上の設定でフォントを変える必要があります。以下の記事にまとめました。
nvim-treeで、開いた先のファイルのディレクトリツリーを表示したい
nvim hoge.txtをした際に、開いたファイル先のディレクトリツリーを表示してほしかったのでその設定方法をまとめました。
例えばカレントディレクトリが~/path/to/currentだったとして、nvim ~/config/nvim/init.lua
を開いた場合、currentをディレクトリツリーに表示するのではなく、nvimの方を表示することができます。
syntax-highlight
を全ての対応言語に適応させたい(all)
syntax-highlight
で全ての言語に対応させられます。
設定ファイルの最後に以下を追加します。
require'nvim-treesitter.configs'.setup {
-- 最後に追記
-- A list of parser names, or "all"
ensure_installed = 'all', -- sameas :TSInstall all
}
require'nvim-treesitter.configs'.setup {
-- A list of parser names, or "all"
--ensure_installed = { "go", "lua", "rust" },
-- Install parsers synchronously (only applied to `ensure_installed`)
sync_install = false,
-- Automatically install missing parsers when entering buffer
-- Recommendation: set to false if you don't have `tree-sitter` CLI installed locally
auto_install = true,
highlight = {
-- `false` will disable the whole extension
enable = true,
},
indent = {
enable = true,
},
ensure_installed = 'all', -- sameas :TSInstall all
}
bufferlineを入れて、ファイルをヘッダーに表示して便利にする
これです。現在開いているファイルを上に表示します。おすすめです。
bufferlineの設定やキー配置は下記の記事にまとめました。
終わりに
以上です。エディタがかっこいいから、がりがりコード書いていくぞー!!
今後こうしたい
便利なプラグインを入れたいです。copilotなども使えるそうです。
copilot.vim
あとGo以外のデバッガを入れたいですね
python debuggerの記事
C++ debuggerの記事
vscodeのごとく、長いかっこを折り畳みたいですね
Dockerでdotfilesをまとめてどこからでもneovimを使えるようにしたいです。あと、プラグインも作りたいですね。