Neovimとは?
Neovimは、Vimをベースにした非常に拡張性の高いテキストエディタで、クラシックなVimの体験を現代化し、向上させることを目指しています。2014年にVimのフォークとして開始されたNeovimは、その後、独自のアイデンティティと開発の進路を持つスタンドアロンプロジェクトへと進化しました。Vimの編集モデルとの完全な互換性を維持しながら、Neovimはよりメンテナンスしやすいコードベース、より良いデフォルト設定、および非同期実行を活用した堅牢なプラグインアーキテクチャを導入しています。
Neovimの中心では、開発者やパワーユーザーの間でVimを伝説的なものとしたモーダル編集の哲学が保持されています。このアプローチは、テキスト編集を異なるモードに分けています - 主に、ナビゲーションとコマンドのためのノーマルモード、テキスト入力のためのインサートモード、テキストブロックを選択および操作するためのビジュアルモードです。この分離により、マスターすると非常に効率的なテキスト操作が可能になり、ユーザーはキーストロークの速度ではなく思考の速度でテキストを編集することができます。
Neovimは、伝統的なテキストエディターとは異なる点で拡張性があります。Language Server Protocol (LSP)を介した言語サーバーのファーストクラスサポート、組み込みのターミナルエミュレーション、そして開発者が最小のオーバーヘッドで強力なプラグインを作成できるLuaスクリプティングインターフェースを提供しています。これらの機能は、Neovimを単なるテキストエディタではなく、個々のワークフローに合わせてカスタマイズ可能な開発環境として位置づけています。
先に進む前に、Apidogを紹介したいと思います。これは包括的なAPI開発プラットフォームで、多くの開発者にとって急速にPostmanの代替として好まれるようになっています。

NeovimでコーディングしながらAPIを頻繁に扱う場合、ApidogはAPI設計、デバッグ、およびドキュメントのためのシームレスな体験を提供します。

ApidogはAPIドキュメント、自動テスト、およびモックサーバーを1つの統合されたツールにまとめており、個別の開発者とチーム双方にとって完璧です。その直感的なインターフェースと強力な機能により、APIワークフローを効率化し、既存のPostmanコレクションとの互換性を維持します。Neovimのセットアップと一緒にApidogを試してみることをお勧めします - これらの強力なツールの組み合わせは、あなたの開発プロセスを革命的に変える可能性があります。
では、重要なNeovimコマンドに入りましょう!
なぜNeovimを使うべきか
パフォーマンスと効率
Neovimのアーキテクチャはスピードを考慮して設計されています。非同期I/Oを活用することで、コードインデクシングやgit操作のような集中的なタスクを実行しているときでも応答性を維持します。これにより、大きなファイルや複雑なプロジェクトで作業しているときのフリーズや遅延が解消されます。モーダル編集アプローチは手の動きを最小限に抑えるため、数時間コーディングする開発者に共通する反復的なストレス障害のリスクが減ります。
カスタマイズ性と拡張性
多くの現代的なエディタがカスタマイズオプションを提供していますが、Neovimのアプローチは独特の強力さがあります。エディタのあらゆる側面は、キー割り当てから外観まで、あなたの好みに応じて設定できます。強力なプラグインエコシステムにより、あなたは機能をほぼ任意に拡張することができます - Neovimを好みのプログラミング言語用のIDE、ドキュメンテーション用の執筆環境、またはその中間に変えることができます。
未来に向けたスキル
Neovimを学ぶことで、特定のツールや環境を超えた編集スキルが身につきます。Vimスタイルの編集は、VS CodeやIntelliJ IDEA、さらにはブラウザを含むほぼ全ての人気のあるエディタやIDEでプラグインまたはモードとして利用可能です。これらのコマンドをマスターすることで、複数のプラットフォームにおける生産性を向上させる転用可能なスキルが得られます。
リソース効率
Neovimは非常に少ないリソースフットプリントを持っているため、リモートワークや低スペックデバイスに最適です。即座に起動し、グラフィカルエディタよりも大幅に少ないメモリを消費し、実際の開発タスクに利用できるリソースをより多く確保します。
コミュニティとエコシステム
Neovimは、常に改善に寄与する活発なコミュニティを育ててきました。プラグインエコシステムは豊富で多様であり、ほぼすべての開発ニーズに対応するツールがあります。ファジーファインディングやファイルナビゲーションからgit統合や構文ハイライトまで、コミュニティは商業的なIDEに匹敵するか、それを超えるソリューションを生み出しています。
オープンソースの精神
Neovimを選ぶことで、透明な開発プロセスを持つ完全なオープンソースツールを受け入れることになります。あなたのエディタは、企業の気まぐれやライセンスや価格モデルの突然の変変更に左右されることはありません。
Windows、Mac、LinuxにNeovimをインストールする方法
Windowsインストール
Windowsパッケージマネージャー(winget)を使用
winget install Neovim.Neovim
Chocolateyを使用
choco install neovim
Scoopを使用
scoop install neovim
手動インストール
- NeovimのGitHubリリースページにアクセスします。
- 最新の安定したWindows ZIPアーカイブをダウンロードします。
- 任意の場所(例:
C:\Program Files\Neovim
)に内容を解凍します。 bin
ディレクトリをPATH環境変数に追加します。- コマンドプロンプトを開き、
nvim --version
と入力してインストールを確認します。
macOSインストール
Homebrewを使用
brew install neovim
MacPortsを使用
sudo port install neovim
手動インストール
- NeovimのGitHubリリースページから最新のmacOSアーカイブをダウンロードします。
- アプリケーションをApplicationsフォルダに解凍します。
- オプションとして、シェル設定ファイルにエイリアスを追加します:
alias nvim='/Applications/Neovim.app/Contents/MacOS/nvim'
Linuxインストール
Ubuntu/Debian
sudo apt update
sudo apt install neovim
Fedora
sudo dnf install -y neovim python3-neovim
Arch Linux
sudo pacman -S neovim
ソースからのビルド
最新の機能や最新のパッケージがないディストリビューションのため:
git clone https://github.com/neovim/neovim
cd neovim
make CMAKE_BUILD_TYPE=RelWithDebInfo
sudo make install
インストールの確認
インストール後、ターミナルまたはコマンドプロンプトを開き、以下を入力します:
nvim --version
Neovimのバージョンとビルド情報が表示されれば成功です。Neovimを起動するには、以下を入力します:
nvim
初期設定
Neovimは次の場所に設定を保存します:
- Windows:
%LOCALAPPDATA%\nvim\
- macOS/Linux:
~/.config/nvim/
このディレクトリにVimscript設定用のinit.vim
ファイルまたはLua設定用のinit.lua
ファイルを作成します。多くのユーザーは最小限の設定から始め、学ぶにつれて構築します:
基本のinit.vimの例:
" 基本設定
set number " 行番号を表示
set relativenumber " 相対行番号を表示
set expandtab " タブの代わりにスペースを使用
set tabstop=4 " タブ幅を4スペースに設定
set shiftwidth=4 " シフト幅を4スペースに設定
set autoindent " 自動インデントを有効化
set smartindent " スマートインデントを有効化
set termguicolors " 真の色のサポートを有効化
初心者のためのトップ100 Neovimコマンド
Neovimは、開発者やパワーユーザーのための強力で拡張性のあるテキストエディタとして確立されています。Vimの基盤をもとに、Neovimはパフォーマンスの向上、プラグインアーキテクチャの改善、そして常にその機能を強化している活気あるコミュニティを提供します。Vimのベテランでもモーダル編集に初めて触れる方でも、全面的なコマンドリファレンスを手元に置いておくことは、効率とワークフローを大幅に改善するでしょう。
このチートシートは、すべてのユーザーが知っておくべき100の必須Neovimコマンドをカテゴリ別に編纂しています。基本的なナビゲーションから高度なテキスト操作に至るまで、これらのコマンドはNeovimを強力な編集環境として機能させるツールキットを表しています。これらのコマンドの一部をマスターすることにより、生産性が大幅に向上し、Neovimの潜在能力を最大限に引き出すことができるでしょう。
基本ナビゲーション
h
,j
,k
,l
- カーソルを左、下、上、右に移動(Neovimでの基本的な移動キー)w
- 次の単語の先頭にジャンプ(句読点は単語として考慮)W
- 次のWORDの先頭にジャンプ(スペースで区切られた単語)b
- 前の単語の先頭にジャンプB
- 前のWORDの先頭にジャンプe
- 単語の終端にジャンプE
- WORDの終端にジャンプ0
- 行の先頭にジャンプ(最初の列)^
- 行の最初の非空白文字にジャンプ$
- 行の終端にジャンプgg
- ドキュメントの最初の行に移動G
- ドキュメントの最後の行に移動{number}G
- 特定の行番号に移動{
- 前の段落/コードブロックにジャンプ}
- 次の段落/コードブロックにジャンプCtrl-u
- 画面の半分分上に移動Ctrl-d
- 画面の半分分下に移動Ctrl-b
- 1画面分上に移動Ctrl-f
- 1画面分下に移動zz
- カーソルを画面の中央に配置(現在の行が中央行となる)zt
- カーソルを画面の上部に配置zb
- カーソルを画面の下部に配置
編集コマンド
i
- カーソルの前でインサートモードに入る(テキストを挿入するため)I
- 行の先頭でインサートモードに入るa
- カーソルの後ろでインサートモードに入る(追加)A
- 行の終端でインサートモードに入るo
- 現在の行の下に新しい行を挿入してインサートモードに入るO
- 現在の行の上に新しい行を挿入してインサートモードに入るr
- カーソルの下の1文字を置き換える(インサートモードに入らずに)R
- 置き換えモードに入る(既存のテキストを上書き)x
- カーソルの下の文字を削除X
- カーソルの前の文字を削除dd
- 行全体を削除(レジスタに格納){number}dd
- 複数行を削除D
- カーソルから行の終端まで削除yy
またはY
- 行全体をヤンク(コピー){number}yy
- 複数行をヤンクy$
- カーソルから行の終端までヤンクp
- カーソルの後ろにペーストP
- カーソルの前にペーストu
- 直前の変更を元に戻すCtrl-r
- やり直し(元に戻すのを元に戻す)~
- カーソルの下の文字の大文字・小文字を切り替え>>
- 行をインデント<<
- 行のインデントを解除.
- 最後のコマンドを繰り返す(反復的な編集に強力)cc
またはC
- 行全体を変更する(行を削除してインサートモードに入る)cw
- 単語を変更する(単語を削除してインサートモードに入る)c$
またはC
- 行の終わりまで変更するJ
- 現在の行を次の行に結合
検索と置換
/pattern
- パターンを前方に検索?pattern
- パターンを後方に検索n
- 同じ方向で検索を繰り返すN
- 反対方向で検索を繰り返す*
- カーソルの下の単語を前方に検索#
- カーソルの下の単語を後方に検索:%s/old/new/g
- 'old'のすべての出現を'new'で置換する:%s/old/new/gc
- 確認付きで置換:s/old/new/g
- 現在の行のすべての出現を置換:noh
- 検索ハイライトをクリアgd
- カーソルの下の単語のローカル定義に移動gD
- カーソルの下の単語のグローバル定義に移動
ビジュアルモード
v
- 文字単位のビジュアルモードに入る(文字を選択)V
- 行単位のビジュアルモードに入る(行全体を選択)Ctrl-v
- ブロック単位のビジュアルモードに入る(矩形ブロックを選択)gv
- 前回のビジュアル選択を再選択するo
- ビジュアルモードで選択範囲の他端へ移動O
- ビジュアルブロックモードでブロックの他の角に移動aw
- 単語を選択する(ビジュアルモードで)ab
- ()でブロックを選択する(ビジュアルモードで)aB
- {}でブロックを選択する(ビジュアルモードで)at
- HTML/XMLタグでブロックを選択する(ビジュアルモードで)
ファイル操作
:e filename
- ファイルを編集(存在しない場合は作成):w
- ファイルに書き込む(保存):w filename
- 指定したファイル名に書き込む(名前を付けて保存):q
- 終了する(未保存の変更がある場合は失敗):q!
- 保存せずに終了(変更を破棄):wq
または:x
- 書き込んで終了:saveas filename
- ファイルを指定したファイル名で保存:r filename
- カーソルの下にファイルの内容を挿入:r !command
- カーソルの下にシェルコマンドの出力を挿入
ウィンドウとタブの操作
:split
または:sp
- ウィンドウを横に分割:vsplit
または:vs
- ウィンドウを縦に分割Ctrl-w h/j/k/l
- ウィンドウ間を移動(左/下/上/右)Ctrl-w +/-
- ウィンドウの高さを増減Ctrl-w </>
- ウィンドウの幅を増減Ctrl-w =
- すべてのウィンドウのサイズを等しくするCtrl-w o
- 現在のウィンドウのみを残す:tabnew
- 新しいタブを作成gt
- 次のタブに移動gT
- 前のタブに移動:tabclose
- 現在のタブを閉じる:tabonly
- 他のすべてのタブを閉じる
バッファ管理
:ls
- すべてのバッファをリスト表示:b number
- 番号でバッファを切り替える:bn
- 次のバッファ:bp
- 前のバッファ:bd
- バッファを削除(ファイルを閉じる):bufdo command
- すべてのバッファでコマンドを実行:e #
- 代替ファイルを編集(通常は前に編集したファイル)
マークとジャンプ
m{a-z}
- 現在の位置にマークを設定(小文字はファイルローカルのため)m{A-Z}
- 現在の位置にマークを設定(大文字はグローバルのため)'{mark}
- マークの行にジャンプ`{mark}
- マークの位置にジャンプCtrl-o
- ジャンプリスト内の古い位置にジャンプCtrl-i
- ジャンプリスト内の新しい位置にジャンプ'.
- 最後の変更の位置にジャンプ`.
- 最後の変更の正確な位置にジャンプ
テキストオブジェクトとモーション
ci(
- 括弧内を変更di"
- ダブルクオート内を削除yi]
- 中括弧内をヤンクva{
- 中括弧を含めて選択(ビジュアルモードで)dap
- 段落を削除cit
- HTML/XMLタグ内を変更diw
- 単語内を削除daw
- 単語周辺を削除(スペースを含む)dab
- ブロック(括弧)周辺を削除daB
- ブロック(波括弧)周辺を削除
折りたたみコマンド
zf
- 折りたたみを作成(ビジュアルモードで)zo
- カーソルの下の折りたたみを開くzc
- カーソルの下の折りたたみを閉じるza
- カーソルの下の折りたたみを切り替えるzR
- すべての折りたたみを開くzM
- すべての折りたたみを閉じるzj
- 次の折りたたみに移動zk
- 前の折りたたみに移動
Neovim特有の機能
:terminal
または:term
- 統合ターミナルを開くCtrl-\ Ctrl-n
- ターミナルモードからノーマルモードに戻る:checkhealth
- Neovimの診断ツールを実行:lua require('telescope.builtin').find_files()
- Telescopeプラグインを使用してファイルを検索:TSInstall language
- 特定の言語のtreesitterパーサーをインストール:LspInfo
- Language Server Protocolのステータスを表示:TSBufToggle highlight
- treesitterハイライトを切り替える:highlight
- 現在のハイライトグループを表示:Tutor
- Neovimの組み込みチュートリアルを開始:help nvim-features
- Neovimの特有の機能を表示
高度な機能
q{a-z}
- マクロをレジスタに記録@{a-z}
- レジスタからマクロを再生@@
- 最後に再生したマクロを繰り返すg&
- 最後の置換をすべての行で繰り返す:norm cmd
- 選択した行にノーマルモードコマンドを実行gf
- カーソルの下のファイルに移動Ctrl-a
- カーソルの下の数値をインクリメントCtrl-x
- カーソルの下の数値をデクリメント:sort
- 選択した行をソート!motion command
- 外部コマンドを通してテキストをフィルター
結論
Neovimの力は、その広範なコマンドセットにあります。これらのコマンドをマスターすれば、編集効率が大幅に向上します。習熟は練習によって得られることを忘れずに - 毎日少しずつ新しいコマンドをワークフローに組み込んでいけば、すぐにそれらは自然なものになるでしょう。
Neovimのモーダル編集の哲学は、これらのコマンドについて筋肉記憶を築けば、極めて正確で効率的なテキスト操作を可能にします。頻繁に行う操作に対してカスタムキーのマッピングを作成することを検討すれば、更に生産性を向上させることができます。
あなたのスキルが向上するにつれて、プラグインエコシステムを探求し、Neovimの機能を拡張したくなるかもしれません。ファジーファインディングのためのTelescopeや、コードインテリジェンスのためのLSP設定、改善された構文ハイライトのためのTreesitterなどの人気プラグインは、Neovimをあなたの特定のニーズに合わせた強力な統合開発環境へと変えることができます。
APIを扱う際にNeovimを使用している方は、包括的なPostmanの代替としてApidogを試してみることを忘れないでください。その洗練されたインターフェースと強力な機能は、Neovimの効率重視のアプローチと相まって最適な開発環境を提供します。
コードを書くにしても、プロジェクトを文書化するにしても、設定ファイルを編集するにしても、これらのNeovimコマンドは、あなたのニーズに応じて成長し、個人のワークフローに適応するテキスト編集体験の基礎を提供します。時間と練習を重ねることで、Neovimの最初の学習曲線が長期的な生産性と編集の喜びに驚くべき利益をもたらすことを発見するでしょう。
楽しい編集を!