YAPC::Kyoto 2023 前日祭のLTマッチで使用した資料です
AstroNvim を使おう!YAPC::Kyoto 2023株式会社モバイルファクトリー 楠田来安(id: ybrliiu)
View Slide
自己紹介● りーう(id: _ybrliiu)● 所属 : 株式会社モバイルファクトリー● 普段はPerlで書かれたサービスの開発運用をしていますいています
みなさん Vim 使ってますか?
Vim のいいところ● キーボードだけで操作が完結する● 作業を高速で行える機能が備わっている● IDEやGUI主体のエディタと比べて利用できる環境が多い● 様々なプラグインによって機能の拡張が可能
Vim の良くないところ● 学習コストが高い● 環境構築に時間がかかる● プラグインをたくさん追加したり設定を変更していくと管理が難しくなっていく
Neovim とは● Vim派生のテキストエディタ● Vimをベースに新しい機能を積極的に取り入れている● lua でも設定が書ける、vim scripts より書きやすい
AstroNvim とはインストールするだけでNeovimでIDE並の機能が使えるように、プラグインマネージャ、プラグイン、設定をまとめたパッケージ2022/03/19 にv1.0がリリースされる
AstroNvim のいいところ● セットアップが従来の vim の開発環境構築と比較すると非常に簡単● 開発時に欲しいプラグインはだいたい入っているので管理が楽● ヘルプが充実しており、AstroNvim のキーバインドになれていない人にも親切
インストール & セットアップ● 要求条件○ Neovim v0.8+, Nerd Fonts○ ターミナルが true color をサポートしていること○ 必須ではないが, Tree-sitter CLI と ripgrep もあったほうが良い● 公式ドキュメントの方法に従ってインストール● :LspInstall で現在開いているファイルの言語のLSをインストール
基本的な使い方● 基本的に space + コマンド で AstroNvim の機能を操作していく● F7 でポップアップウィンドウでターミナル表示● コマンドの最初の文字を入力して少し放置するとそのあとにどのような文字を入力すればどのようなコマンドかを示すヘルプが表示されて初心者でも使いやすい
サイドパネル(Neo-tree)● サイドパネルにはディレクトリ、ワークスペース内の開いているバッファ、git status が表示される● space + e でタブを表示/非表示● space + o でサイドパネルに移動● サイドパネルのタブは >, < で移動する
バッファ操作● space + fb でバッファ一覧表示● ウィンドウ内から選択してそのままバッファ切り替えも可能● space + c で現在のバッファを閉じる● 他はだいたい普通の vim と同じ
検索● ウィンドウ内で検索してそのままファイルジャンプできる● space + fo で直近で開いたファイルを検索● space + ff でファイル名で検索● space + fw で単語名で検索○ 内部で ripgrep を使っているので非常に高速
LSP(Null-ls, Native LSP)● g + l でカーソル行の diagnostics を表示● shift + k でホバーする● g + d で定義元へコードジャンプ● タグジャンプと同じ操作方法が使える
git操作(Gitsigns)● space + gt でgit status を実行● space + gl でカーソル行を blame する● space + gd でgit diff して diff を表示● space + gs でバッファをステージング● space + gb でブランチ一覧を表示● space + gc でコミット一覧を表示● カーソル行のハンク操作も可能
Perl開発環境の構築● LSPの設定に関してはVSCodeとあまり変わらない● Carton で依存モジュールを管理しているプロジェクトは次のようにincludePaths に $workspaceFolder/lib,$workspaceFolder/local/lib/perl5,$workspaceFolder/local/lib/perl5/darwin-thread-multi-2levelを設定することで文法チェックが正しく動くようになる
Perl開発環境の構築● includePaths をちゃんと設定すると syntax check, 自動補完, コードジャンプが有効になる● perlcritic は Perl::Critic をインストールすると有効になる● perlimports は App::perlimports をインストールしperlimportsLintEnabled か perlimportsTidyEnabled を true に設定すると有効にできる
Perl開発環境の構築● LSを有効にした状態で ctags によるコードジャンプも機能する● perl auto use や App::PRT の機能を使えるプラグインはまだないのでターミナルから頑張って実行するしかない○ そのうち作りたい
まとめ● AstroNvim はセットアップが簡単で初心者にも使いやすい● Perl の開発環境も VSCode とほぼ同じ環境を整えることができる● 最近 vim から離れていた方や使ったこともない方も一度試してみてはどうでしょうか
モバイルファクトリーはプログラミングが好きなエンジニアを募集しています!