インフラエンジニアの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
winget install --id Microsoft.VisualStudio.2022.BuildTools -e


Windowsのスタートメニューから、「Visual Studio Installer」を開きます。
Visual Studio Build Tools 2022 の右側にある、「変更」をクリックしてください。
「ワークロード」タブで、次を選択します。
「C++によるデスクトップ開発」
右側のインストール詳細では、少なくとも次が選択されていることを確認します。
「MSVC v143 - VS 2022 C++ x64/x86 ビルドツール」
「Windows 11 SDK または Windows 10 SDK」


スタートメニューから次を開きます。
「Developer PowerShell for VS 2022」
その中で確認します。
「cl」
Microsoft C/C++ Compilerのバージョンが表示されれば正常です。

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
現在のディレクトリがプロジェクト
現在のプロジェクト(ディレクトリ)の確認 :pwd
プロジェクトの変更 :cd 対象ディレクトリ
プロジェクトの変更
(LazyVimのProjects機能)
Space f p 過去のプロジェクトから選択できる
終了 <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
:bd
Buffer Delete
バファーを保存 <leader>w LazyVimの設定
バファーを保存 :w
終了する(未保存ならエラー) :q
保存して終了する :wq
保存せず終了する :q!
全バファーを閉じる :qa
左のバッファに移動 <S-h> LazyVimの設定
右のバッファに移動 <S-l> LazyVimの設定
バファー一覧 Space ,
検索
プロジェクト内のファイル検索(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> gg


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`
検索 /
新規作成 `a` 新規作成
名前変更 `r` 名前変更
削除 `d` 削除
コピー `y` コピー
移動 `x` 移動
貼り付け `p` 貼り付け
更新 `R` 更新

設定

隠しファイルや.gitignoreの無視されるファイルも表示する。
現在編集中のファイルにExplorerが自動で追従する。

~/.config/nvim/lua/plugins/snacks.lua
"$env:LOCALAPPDATA\nvim/lua/plugins/snacks.lua"

return {
  {
    "folke/snacks.nvim",
    opts = {
      picker = {
        sources = {
          explorer = {
            hidden = true,
            ignored = true,
            follow_file = true,
          },

          files = {
            hidden = true,
            ignored = true,
          },
        },
      },
    },
  },
}


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ファイル名のリネーム


設定

diffview(diffが見やすく可視化できるプラグイン)

diffをLazyVimで diffview.nvim を使用する
LazyVimで diffview.nvim を使用する

~/.config/nvim/lua/plugins/diffview.lua
"$env:LOCALAPPDATA\nvim/lua/plugins/diffview.lua"

return {
  {
    "sindrets/diffview.nvim",
    cmd = { "DiffviewOpen", "DiffviewClose", "DiffviewToggleFiles", "DiffviewFocusFiles" },
    keys = {
      { "<leader>gd", "<cmd>DiffviewOpen<cr>", desc = "Diffview Open" },
      { "<leader>gD", "<cmd>DiffviewClose<cr>", desc = "Diffview Close" },
    },
    opts = {
      enhanced_diff_hl = true,
    },
  },
}

render-markdown.nvim

~/.config/nvim/lua/plugins/render-markdown.lua
"$env:LOCALAPPDATA\nvim/lua/plugins/render-markdown.lua"

return {
  {
    "MeanderingProgrammer/render-markdown.nvim",
    opts = {
      heading = {
        enabled = true,
        sign = false,
        icons = { "# ", "## ", "### ", "#### ", "##### ", "###### " },
        width = "full",
        left_pad = 1,
        right_pad = 1,
      },

      anti_conceal = {
        enabled = true,
      },

      latex = {
        enabled = false,
      },
    },
  },
}

gitsigns.nvim

行単位の差分表示


参考


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

ページ用ツール