【2024/1】開発環境(デバッガ,Ansible)
前回:
前回から変わったところとか下記忘れてたところを書く.
エディタ
プラグインとかはあんまり新しいのが増えてないので軽く.
デバッガ
nvimのDAP(Debug Adapter Protocol)をサポートするプラグインと,DAPをMasonで管理・設定するプラグインを入れている.
nvim-dap
だけではブレークポイントの設定や実行や軽い表示くらいしかできないが,nvim-dap-ui
によって表示がりっちになり,変数の監視などが容易に行えるようになっている.また,それらだけだと各言語のDAPのライブラリやサーバを別途管理しなくてはならないが,mason-nvim-dap
を入れることでMasonによりDAPの管理も行える.
mason-nvim-dap
の設定は以下のようにすると,Masonで入れたDAPがいい感じに動く.特定のDAPのみ設定を変えたいときは,configの部分をifで変更するようにすると良さそう.
{
-- https://github.com/mfussenegger/nvim-dap/wiki/Debug-Adapter-installation
"jay-babu/mason-nvim-dap.nvim",
dependencies = {
"williamboman/mason.nvim",
"mfussenegger/nvim-dap",
},
config = function()
require("mason").setup()
require("mason-nvim-dap").setup({
handlers = {
function(config)
require('mason-nvim-dap').default_setup(config)
end,
},
})
end,
}
Linter, Formatter
Masonで入れたLinter,Formatterをnull-lsのソースに登録するようにするmason-null-ls.nvim
というプラグインも追加した.これを追加しないとnull-lsの設定に言語ごとのLinter,Formatterを列挙しないといけない上に,それらがインストールされた前提となってしまう.
Copilot
Github copilotをvimから使用できるようにするプラグイン.(Githubが出してる)
ターミナル
tmux 3.3
以前からtmuxは使っていたがバージョンが古かったため上げた.
Ubuntu 20.04では確か3.0だったため,設定ファイルを~/.tmux.conf
にするしかなかった気がするけど,3.2以降ではXDGに準拠した~/.config/tmux/tmux.conf
にすることもできるようになった.最近ディレクトリを整理してXDGに準拠させるようにしているので3.3までアップデートした.
ちなみに,Ubuntu 20.04, 22.04だとaptでいれられないので,githubからソースを持ってきてビルド&インストールした.
tmuxinator
tmuxのレイアウトをカスタマイズ・保存するツールであるtmuxinatorをいれた.
yaml形式の設定ファイルを書くことで,プロジェクトごとにtmuxのセッション内でウィンドウやペインを自由に定義することができる.
ペインのサイズや位置などは,main-vertical
などの事前に定義されたものか,tmuxのlist-windows
コマンドで以下のように確認でき,その中の[layout ...]
で...の部分のみを抜き出して定義することも可能.
1: editor* (3 panes) [261x54] [layout a1bb,261x54,0,0[261x37,0,0,0,261x16,0,38{212x16,0,38,2,48x16,213,38,8}]] @0 (active)
2: shell (3 panes) [261x54] [layout 2839,261x54,0,0[261x33,0,0,1,261x20,0,34{130x20,0,34,3,130x20,131,34,4}]] @1
windows:
- editor:
layout: a1bb,261x54,0,0[261x37,0,0,0,261x16,0,38{212x16,0,38,2,48x16,213,38,8}]
panes:
- vim
-
- tmux clock-mode
- shell:
layout: 2839,261x54,0,0[261x33,0,0,1,261x20,0,34{130x20,0,34,3,130x20,131,34,4}]]
環境構築周り
この記事で紹介したように環境構築をAnsibleを使うようにした.
リポジトリは↓で,roles
の中に環境構築用のコードが書いてある.
現時点では(おそらく)Ubuntuでしか動かないようになっているので,今後大体のOSで動くように改善していきたいとおもっている.また,まだここにかけていないツールの設定も多くあるので,それも対応していきたい.
Discussion