💭

【2024/1】開発環境(デバッガ,Ansible)

2024/01/03に公開

前回:
https://zenn.dev/pluck/articles/b48783efae3612

前回から変わったところとか下記忘れてたところを書く.

エディタ

プラグインとかはあんまり新しいのが増えてないので軽く.

デバッガ

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からソースを持ってきてビルド&インストールした.
https://github.com/tmux/tmux/wiki/Installing#from-source-tarball

tmuxinator

tmuxのレイアウトをカスタマイズ・保存するツールであるtmuxinatorをいれた.
https://github.com/tmuxinator/tmuxinator

yaml形式の設定ファイルを書くことで,プロジェクトごとにtmuxのセッション内でウィンドウやペインを自由に定義することができる.
https://user-images.githubusercontent.com/289949/44366875-1a6cee00-a49c-11e8-9322-76e70df0c88b.gif

ペインのサイズや位置などは,main-verticalなどの事前に定義されたものか,tmuxのlist-windowsコマンドで以下のように確認でき,その中の[layout ...]で...の部分のみを抜き出して定義することも可能.

list-windowsの結果
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
.tmuxinator.yamlの一部
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を使うようにした.
https://zenn.dev/pluck/articles/3e9ee44824f363

リポジトリは↓で,rolesの中に環境構築用のコードが書いてある.
https://github.com/IwasakiYuuki/dotfiles

現時点では(おそらく)Ubuntuでしか動かないようになっているので,今後大体のOSで動くように改善していきたいとおもっている.また,まだここにかけていないツールの設定も多くあるので,それも対応していきたい.

Discussion