580 Views
March 28, 25
スライド概要
#12 札幌開催:はじめてのIT勉強会 in 札幌(2024)
プログラミング初心者高校生が NeoVim+AstroNvimで VimをIDE化した話 のじしん (twitter: @noji_shin_) 2025.03.27 #12 札幌開催:はじめてのIT勉強会 in 札幌 (C) 2025 Nojishin All rights reserved
目次 のじしん @noji_shin_ 1. 自己紹介 2. きっかけ 3. Vim、NeoVimとは? 4. AstroNvimとは? (設計思想、内部的に使っているプラグイン) 5. インストール方法 6. コード補完機能の導入 7. メリット・デメリット (C) 2025 Nojishin All rights reserved
自己紹介 のじしん @noji_shin_ のじしん twitter: @noji_shin_ 17歳 高校2年生 プログラミング歴: 1年3ヶ月 初心者なのでお手柔らかにお願いします。 触れてきた言語: JavaScript, Python, C 42Tokyoという学校を目指してC言語を勉強しています。 趣味: KPOP(NJZ(旧NewJeans))、東海オンエア、効率化 最近は自作キーボード界隈、Keyball界隈が気になっています。 (C) 2025 Nojishin All rights reserved
VimをIDE化しようとしたきっかけ のじしん @noji_shin_ 現在42Tokyoという学校を目指しています。 どんな学校? 経歴不問 学費完全無料 問題解決型学習 教科書や授業はない 24時間オープン ピアラーニング 学生同士で教え合って課題に取り組む Piscineという1ヶ月間の入試試験がある Piscineの中でのテストはVimで回答するらしい(噂) Vimに慣れよう! VimにVSCodeみたいな機能が欲しくなってきた... (C) 2025 Nojishin All rights reserved
Vimとは? のじしん @noji_shin_ ・キーボードだけでテキスト編集をするテキストエディタ ・たくさんの便利なコマンドが仕込まれている →覚えれば最小限のキー入力で編集作業が 行えるので非常に効率の良いエディタ ・ノーマルモード、ビジュアルモード、 挿入モードなどのモードを切り替えながら操作する (C) 2025 Nojishin All rights reserved
Vimとは? のじしん @noji_shin_ ・ほとんどのLinuxディストリビューションで 標準でインストールされている(Macでも) ・ターミナル上で使う →サーバーにSSHで接続して使える ・プラグインを追加して便利な機能を増やせる (C) 2025 Nojishin All rights reserved
NeoVimとは? のじしん @noji_shin_ ・Vimを派生、forkして作られたエディタ ・複数人で分担して開発を高速化していて、先進的な機能の導入に積極的 ・目標は「Vim の置き換え」ではなく「Vim 拡大」not「IDE化」 (NeoVim上で作られたサードパーティ製アプリケーション、IDEを制限するわけではない) ・標準で有効になっている機能が多い ・より強力なプラグインが使える 参考 (C) 2025 Nojishin All rights reserved
AstroNvimとは? のじしん @noji_shin_ こんな感じのIDEをほとんど設定いらずで使えるようになるNeoVimのプラグイン どちらかというとプラグインというよりかはプラグインの詰め合わせパック的なイメージ (C) 2025 Nojishin All rights reserved
AstroNvimとは? のじしん @noji_shin_ 設計思想 他のNeoVimのIDEプラグインは.... ・デフォルト設定ではパワフルだがカスタマイズが難しい ・カスタマイズは簡単だがデフォルト設定では最小限の機能しかない AstroNvimでは... 中間点を見つける デフォルト設定で素晴らしい体験ができること + ユーザーの好きなところに手を加えられるようにすること を目指している (C) 2025 Nojishin All rights reserved
AstroNvimとは? のじしん @noji_shin_ 内部的に使っているプラグイン プラグインマネージャー LSP server, DAP server, linter, formatter のパッケージマネージャー ファイルエクスプローラー 自動補完 lazy.nvim mason.nvim 検索 Telescope ステータスライン、winbar、タブ Heirline シンタックスハイライト Treesitter LSP機能拡張 none-ls LSP設定 nvim-lspconfig Neo-tree Cmp gitの統合 Gitsigns ターミナル Toggleterm (C) 2025 Nojishin All rights reserved
インストール方法 のじしん @noji_shin_ 必要なもののインストール・確認 参考 1. 使っているターミナルが true color に対応しているか確認 true colorとは24, 32ビットカラーのこと。 Microsoft Terminal, iTerm2, Kitty, WezTermは対応しています。 Macのデフォルトのターミナルは対応していないので別のターミナルを入れる必要があります。 2. Nerd Fonts のインストール 開発者向けのたくさんのアイコンを追加したフォント 私はCascadia Code NFを使用しています。 使っているターミナルに適応させます。 3. Neovim v0.9.5+ のインストール NeoVim本体 WindowsならWinget, Chocolateyなどで、MacならHomebrewなどで、Linuxならcurl, aptなどで 詳細 インストールした後、ターミナルで nvim と打ち起動してみてください。 4. clipboard-tool の確認 NeoVim側とシステムのクリップボードを共有させるためのもの。 Macでは追加ソフトウェア不要、Windowsではwin32yankのインストールをしてPATHを通す、Linuxではxsel, xclipを使うらしい 適応させる設定は自動でやってくれます。 (C) 2025 Nojishin All rights reserved
インストール方法 のじしん @noji_shin_ AstroNvim本体のインストール 参考 1. NeoVimの.configとその他フォルダのバックアップ Linux / MacOS Windows mv ~/.config/nvim ~/.config/nvim.bak Move-Item $env:LOCALAPPDATA\nvim $env:LOCALAPPDATA\nvim.bak mv ~/.local/share/nvim ~/.local/share/nvim.bak Move-Item $env:LOCALAPPDATA\nvim-data $env:LOCALAPPDATA\nvim-data.bak mv ~/.local/state/nvim ~/.local/state/nvim.bak mv ~/.cache/nvim ~/.cache/nvim.bak 念の為バックアップをしておきます。 2. AstroNvim/template で個人用リポジトリを作成(おすすめ) 参考 AstroNvim/template にアクセスし、「Use this template」で個人用リポジトリを作成 設定はGitで管理すると楽です。 3. ~./config/nvim に clone 個人用リポジトリを作成した場合(おすすめ) テンプレートをそのまま使う場合 Linux / MacOS Linux / MacOS git clone https://github.com/<your_user>/<your_repository> ~/.config/nvim git clone --depth 1 https://github.com/AstroNvim/template ~/.config/nvim Windows # gitフォルダの削除 git clone https://github.com/<your_user>/<your_repository> $env:LOCALAPPDATA\nvim Windows 後はお好みの方式でgit管理してください。 rm -rf ~/.config/nvim/.git git clone --depth 1 https://github.com/AstroNvim/template $env:LOCALAPPDATA\nvim # gitフォルダの削除 Remove-Item $env:LOCALAPPDATA\nvim\.git -Recurse -Force 4. 起動 nvim 自動でプラグインマネージャーが動きダウンロードが始まります。 (C) 2025 Nojishin All rights reserved
コード補完機能の導入 のじしん @noji_shin_ AstroCommunityを使う方法 参考 AstroCommunityとは? AstroNvim用のカスタマイズされた追加用プラグインがまとめられているコミュニティ主導のGitHubのリポジトリ 欲しいプラグインが対応していたらこちらから持ってきたほうが楽。 上画像の例はC++,C用の記述です。 1行目をコメントアウトして、11行目に astrocommunity.pack.cpp をimportする記述を追加しています。 他の言語は astrocommunity/pack を見て追加してください。 上画像はTemplateのフォルダ構成です。 プラグインを導入するときには主に lua/community.lua lua/plugins/* を編集します。 これでIDE化完了 (C) 2025 Nojishin All rights reserved
メリット・デメリット メリット ・設定不要で即使える →ハードルが低い ・カスタマイズ性が高い →欲しいプラグインは自分で持ってこれる のじしん @noji_shin_ デメリット ・決まりきっている →0からカスタマイズしたい人には不向き ・中身はnvimなのでカスタマイズが出来すぎ ちゃうから気になり出すと時間が溶けすぎる ・AstroCommunityが楽 ・公式ドキュメントが見やすい ・keybindとかで悩む必要なし ・coc.nvimなどに比べて軽い(らしい) (C) 2025 Nojishin All rights reserved
ご清聴ありがとうございました のじしん (twitter: @noji_shin_) (C) 2025 Nojishin All rights reserved