インフラエンジニアのPC環境

インフラエンジニアは常に効率環境を目指している

ユーザ用ツール

サイト用ツール


サイドバー

目次

ホーム

AI
OS


CUIソフト

今はほぼ未使用

操作を覚える必要のあるおすすめソフト

software:editor:neovim:index.html


Neovim(LazyVim/AstroNvim)の使い方

Neovim概要

Neovimとは、Vimをベースに開発されたモダンなテキストエディタです。

  • モダンな機能が標準で搭載されている
  • プラグインの開発が活発で、最新の機能を利用しやすい

LazyVimとAstroNvimの比較

項目 LazyVim AstroNvim
学習コスト ◎ 低い ○ やや高い
初期設定 ◎ シンプル ○ 多機能
カスタマイズ ◎ Luaで素直 ◎ 非常に高い
プラグイン追加 ◎ 簡単 ○ AstroCommunity経由が多い
動作速度 ◎ とても速い ◎ 速い
IDEらしさ ○ 必要十分 ◎ VS Codeに近い
初心者向け
長期運用

LazyVim

特徴は「必要なものだけ最初から入っていて、あとから自分で足せる」という思想です。

  • 起動が速い
  • 設定ファイルが分かりやすい
  • `lazy.nvim`の作者が作っているので相性が非常に良い
  • 最近のNeovim界隈では最も人気が高く、情報量も多いです。([LazyVim][1])

こんな人向けです。

  • Python開発
  • Terraform
  • Bash
  • Markdown
  • Git
  • AI(Codex/ChatGPT)に設定を書いてもらう

AstroNvim

AstroNvimは最初からかなりIDEに近い環境です。

  • UIが豪華
  • 言語ごとの設定が豊富
  • AstroCommunityという追加パッケージが充実
  • その代わり内部構造は少し複雑です。([AstroNvim Documentation][2])

こんな人向けです。

  • VS Codeから移行したい
  • 最初から全部入りがいい
  • 多言語開発を頻繁にする


インストール

Windows

winget install Neovim.Neovim
winget install Git.Git
winget install BurntSushi.ripgrep.MSVC  #Pickerで使う
winget install sharkdp.fd
winget install JesseDuffield.lazygit
JetBrainsMono Nerd Font
winget install Microsoft.PowerShell #PowerShell 7

Mac

brew install neovim

nvim --version

Linux, WSL

sudo apt update
sudo apt install neovim

nvim --version

Appimageを利用する方法

LazyVimのプラグインがNeovim >= 0.8を要求してきたため、バイナリーおAppimageを利用する。

参考:https://github.com/neovim/neovim/blob/master/INSTALL.md#appimage-universal-linux-package

cd /tmp
curl -L https://github.com/neovim/neovim/blob/master/INSTALL.md#appimage-universal-linux-package -o  nvim.appimage
chmod u+x nvim.appimage
mv nvim.appimage /usr/local/bin/nvim

nvim -v


プラグインマネージャーの設定

LazyVim

プラグインマネージャ
Lazy.nvim を入れてしまえば、数行書けば他のプラグインを入れられるようになります。

mv ~/.config/nvim ~/.config/nvim.bak
git clone https://github.com/LazyVim/starter ~/.config/nvim
nvim
Windows
C:\Users\<ユーザー>\AppData\Local\nvim

cd "$env:LOCALAPPDATA"

ls nvim
Rename-Item "$env:LOCALAPPDATA\nvim" nvim.bak  #既にある場合バックアップ

git clone https://github.com/LazyVim/starter "$env:LOCALAPPDATA\nvim"

Remove-Item "$env:LOCALAPPDATA\nvim\.git" -Recurse -Force

キー操作

プロジェクト
プロジェクトを開く cd 対象ディレクトリ
nvim
現在のディレクトリがプロジェクト
プロジェクトの変更 :cd 対象ディレクトリ
プロジェクトの変更
(LazyVimのProjects機能)
Space f p 過去のプロジェクトから選択できる
現在のプロジェクト(ディレクトリ)の確認 :pwd
終了 <Space>qq
コマンドラインモード
コマンドライン : CmdLineが開く
コマンドラインを閉じる Esc
進む TabかCtrl + n
戻る Shift + TabかCtrl + pで
ウィンドウ
左側のウィンドウに移動 <C-h> Neovimの設定
右側のウィンドウに移動 <C-l> Neovimの設定
下側のウィンドウに移動 <C-j> Neovimの設定
上側のウィンドウに移動 <C-k> Neovimの設定
バファー
バファーの削除 <space>bd Buffer Delete
全バファーを閉じる :qa
左のバッファに移動 <S-h> LazyVimの設定
右のバッファに移動 <S-l> LazyVimの設定
検索
プロジェクト内のファイル検索(Snacks.picker.files) <space><space>
プロジェクト全体の文字列検索(Grep) <space>fg
git ルートからのファイル検索 <space>fF
開いているバッファ(ファイル)の検索 <space>fb
最近使ったファイル(旧履歴)の検索 <space>fR

コード編集

クリップボードからの貼り付け Ctrl + v
定義へジャンプ g + d
参照を表示 g + r
ドキュメント表示 K
コードアクション <Space> + c + a
リネーム <Space> + c + r
ターミナルウィンドウの開閉 <C-/> LazyVimの設定
LazyGit起動 <Space> g


Neovimのファイラーの比較

ファイラー タイプ 特徴
Snacks Explorer モダン LazyVim標準。高速・シンプル
Neo-tree IDE型 VS Codeに最も近い
Oil.nvim ディレクトリ編集型 「ディレクトリもテキスト」として編集
mini.files Ranger風 シンプルで軽量

Snacks Explorerの操作

LazyVimの標準的なワークフロー

  1. Space e:プロジェクト全体の構造を眺める
  2. Space Space(または Space ff):目的のファイルをすばやく検索して開く
  3. Explorer:新規作成・リネーム・コピーなどのファイル操作
  4. LazyGit:Git操作
操作 キー 設定
Explorerを開く/閉じる <leader>e (通常は Space e)
ファイルを開く Enter
ディレクトリを開く/閉じる Enter
親ディレクトリをルートに変更 <BS>
対象ディレクトリをルートに変更 . (ドット)
親ディレクトリへ `h` または `-`(設定による)
更新 `R`
隠しファイル/ディレクトリの表示・非表示切り替え
※gitignoreしているファイルはこの操作でも見えない
H snacks.nvim/explorerの設定
終了 `q`
左側のウィンドウに移動 <C-h> Neovimの設定
右側のウィンドウに移動 <C-l> Neovimの設定
下側のウィンドウに移動 <C-j> Neovimの設定
上側のウィンドウに移動 <C-k> Neovimの設定
キー 操作
`Space e` Explorer開く/閉じる
`Enter` 開く
`a` 新規作成
`r` 名前変更
`d` 削除
`y` コピー
`x` 移動
`p` 貼り付け
`R` 更新
`q` 閉じる


oil.nvim(ファイル操作の効率化)

~/.config/nvim/lua/plugins/oil.lua

return {
  -- Neo-treeを無効化(LazyVimのデフォルトファイルツリー)
  { "nvim-neo-tree/neo-tree.nvim", enabled = false },

  -- oil.nvimプラグインを追加
  {
    "stevearc/oil.nvim",
    dependencies = { "nvim-tree/nvim-web-devicons" },
    keys = {
      { "<leader>e", function() require("oil").open() end, desc = "Open parent directory" },
    },
    opts = {},
  },
}

操作

<space>eカレントディレクトリを開く
iまたはaファイル名の編集、新規作成(挿入モードでファイル名を入力し、Enterで確定)
ddファイルを削除(削除後に:wで確定)
rファイル名のリネーム


設定


参考


software/editor/neovim/index.html.txt · 最終更新: by kurihara

ページ用ツール