はじめに
Nvim の:help
ページは、生成されたもので、ソースからtree-sitter-vimdocパーサーを使用して生成されています。
Vim はテキストエディターであり、Unix プログラム "Vi" のほとんどのコマンドと、多くの新しいコマンドが含まれています。
このマニュアルの概要は、"help.txt" ファイル、
help.txt にあります。Vim 内からは、
<Help>
キーまたは
<F1>
キー、そして
:helpコマンド(「:help」と入力するだけで、バーや引用符は不要です)でアクセスできます。ヘルプファイルがデフォルトの場所にない場合は、
'helpfile'オプションを設定してヘルプファイル名を指定できます。タグを使用して、次のようにして項目にジャンプできます。カーソル下の項目にジャンプするには
CTRL-]
を使用し、戻るには
CTRL-T
を使用します。
発音 Vim は「ジム」のように、一つの単語として発音します。したがって、Nvim は「エン・ヴィム」と、二音節で発音します。
このマニュアルは、すべての Nvim エディターと API 機能のリファレンスです。入門書ではありません。初心者の方には、実践的な
チュートリアルとユーザーマニュアル
usr_toc.txtがあります。
書籍 Vi と Vim については多くの書籍があります。以下をおすすめします。
"Practical Vim" は、Vim で一般的な編集タスクを迅速に学習することに重点を置いていることで高く評価されています。"Modern Vim" は、Nvim と Vim 8 の新機能について解説しています。
Steve Oualline 著 "Vim - Vi Improved"
簡潔で完全な情報を提供してください。再現可能な例を常に提示し、バグを引き起こす設定やその他の要因を特定しようと努めてください。
Nvim がクラッシュした場合は、バックトレースを取得してみてください。
debug.txtを参照してください。
バグの修正と新機能の追加には、多くの時間と労力がかかります。作業への感謝の気持ちを示し、開発者が Vim の開発を続けるためのモチベーションを高めるために、寄付をお願いします。
寄付された資金は主にウガンダの子供たちを支援するために使用されます。
ウガンダを参照してください。同時に、寄付は開発チームのモチベーションを高め、Vim の開発を継続させる力となります!
スポンサーシップに関する最新情報については、Vim のウェブサイトをご覧ください。
Nvim の開発は、Vim とは別に資金提供されています。
ドキュメントの一部は、以下の Vi マニュアルからのものです。W.N. Joy、Alan P.W. Hewett、Mark Horton 著
Vim エディターは Stevie をベースにしており、ここで言及されている人々が取り組んだ他のソフトウェア(からのアイデア)を含んでいます。その他の人々は、パッチ、提案を送信し、Vim の良い点と悪い点についてのフィードバックを提供することで支援しました。
これらの皆様の助けがなければ、Vim は今のようにはなっていませんでした!
Ron Aaron (Win32 GUI 変更)、Mohsin Ahmed (暗号化)、Zoltan Arpadffy (VMS ポートへの作業)、Tony Andrews (Stevie)、Gert van Antwerpen (MS-DOS 上の DJGPP の変更)、Berkeley DB(3) (スワップファイル実装のアイデア)、Keith Bostic (Nvi)、Walter Briscoe (Makefile 更新、様々なパッチ)、Ralf Brown (MS-DOS 用 SPAWNO ライブラリ)、Robert Colon (多くの有用なコメント)、Marcin Dalecki (GTK+ GUI ポート、ツールバーアイコン、gettext())、Kayhan Demirel (ウガンダのニュースを送信)、Chris & John Downey (xvi (マルチウィンドウバージョンのアイデア))、Henk Elbers (最初の VMS ポート)、Daniel Elstner (GTK+ 2 ポート)、Eric Fischer (Mac ポート、
'cindent'、およびその他の改善)、Benji Fisher (多くのユーザーからの質問への回答)、Bill Foster (Athena GUI ポート (後に削除))、Google (Bram が週に一日 Vim の作業を行うための支援)、Loic Grenie (xvim (マルチウィンドウバージョンのアイデア))、Sven Guckes (Vim プロモーターおよび以前の WWW ページ管理者)、Darren Hiebert (Exuberant ctags)、Jason Hildebrand (GTK+ 2 ポート)、Bruce Hunsaker (VMS ポートの改善)、Andy Kahn (Cscope サポート、GTK+ GUI ポート)、Oezguer Kesim (Vim メーリングリストの管理者)、Axel Kielhorn (Macintosh ポートへの作業)、Steve Kirkendall (Elvis)、Roger Knobbe (Windows NT へのオリジナルポート)、Sergey Laskavy (モスクワからの Vim ヘルプ)、Felix von Leitner (Vim メーリングリストの以前の管理者)、David Leonard (Unix への Python 拡張機能のポート)、Avner Lottem (右から左へのウィンドウでの編集)、Flemming Madsen (X11 クライアントサーバー、様々な機能とパッチ)、Tony Mechelynck (多くのユーザーからの質問への回答)、Paul Moore (Python インターフェース拡張機能、多くのパッチ)、Katsuhito Nagano (マルチバイトバージョンへの作業)、Sung-Hyun Nam (マルチバイトバージョンへの作業)、Vince Negri (Win32 GUI と汎用コンソール機能強化)、Steve Oualline (最初の Vim の書籍の著者
frombook)、Dominique Pelle (Valgrind レポートと多くの修正)、A.Politz (多くのバグレポートと一部の修正)、George V. Reilly (Win32 ポート、Win32 GUI 開始)、Stephen Riehm (バグコレクター)、Stefan Roemer (様々なパッチとユーザーへのヘルプ)、Ralf Schandl (IBM OS/390 ポート)、Olaf Seibert (DICE と BeBox バージョン、正規表現の改善)、Mortaza Shiran (Farsi パッチ)、Peter da Silva (termlib)、Paul Slootman (OS/2 ポート)、Henry Spencer (正規表現)、Dany St-Amant (Macintosh ポート)、Tim Thompson (Stevie)、G. R. (Fred) Walter (Stevie)、Sven Verdoolaege (Perl インターフェース)、Robert Webb (コマンドライン補完、GUI バージョン、そして多くのパッチ)、Ingo Wilken (Tcl インターフェース)、Mike Williams (PostScript 印刷)、Juergen Weigert (Lattice バージョン、AUX の改善、Unix と MS-DOS ポート、autoconf)、Stefan 'Sec' Zehl (vim.org の管理者)、Yasuhiro Matsumoto (多くの MS-Windows 改善)、Ken Takata (修正と機能)、Kazunobu Kuriyama (GTK 3)、Christian Brabandt (多くの修正、機能、ユーザーサポートなど)、Yegappan Lakshmanan (多くのクイックフィックス機能)
バグレポートと提案を送信してくださった皆様に感謝申し上げます。リストが長すぎて、すべてをここで挙げることはできません。これらの皆様からのアイデアがなければ、Vim は今とは違っていました。皆様が Vim を生き続けています!
愛 平和 友情 国民総幸福量
ドキュメントでは、他のバージョンの Vi についても参照されている場合があります。
Vi vi Vi 「オリジナル」。特に断りのない限り、これは Sun OS 4.x に登場した Vi のバージョンです。":version" は "Version 3.7, 6/7/85" を返します。ソースコードはライセンスに基づいてのみ入手可能です。
NviNvi 「新しい」Vi。BSD 4.4 と FreeBSD に付属している Vi のバージョンです。オリジナルの Vi と非常に互換性が高く、いくつかの拡張機能が追加されています。使用されているバージョンは 1.79 です。":version" は "Version 1.79 (10/23/96)" を返します。ソースコードは自由に利用できます。
ElvisElvis Steve Kirkendall によって作成された別の Vi クローンです。非常にコンパクトですが、Vim ほど柔軟性はありません。ソースコードは自由に利用できます。
Nvim は、もともと Bram Moolenaar によって開発された Vim(「Vi IMproved」)テキストエディターのフォークです。Nvim のソースコード内で彼の名前を検索すると、彼の仕事がどれだけ Nvim に残っているかがわかります。2023年8月3日、彼は62歳で亡くなりました。もしVimやNvimがあなたの人生で役に立っていたとしたら、
ウガンダを読んで、彼の功績を称えることを検討してください。
構文ハイライトを使用してこれを読んだ場合、文字通り入力されないテキストは、多くの場合、Special グループでハイライト表示されます。これらは、[]、{}、<>、およびCTRL-X
などの項目です。
Vim はコマンドにありとあらゆる文字を使用することに注意してください。場合によっては、[]、{}、<>があなたが入力する内容の一部になることがありますが、コンテキストによって明確になります。
[] 角かっこ内の文字はオプションです。
回数 [回数] [回数] コマンドの前に付けることができるオプションの数値で、コマンドを乗算または繰り返します。数値を指定しない場合は、特に明記されていない限り、回数は 1 となります。このマニュアルでは、コマンドの説明には[回数]は記載されておらず、説明のみに記載されていることに注意してください。これは、コマンドの検索を容易にするために行われました。
'showcmd'オプションがオンになっている場合、(部分的に)入力された回数はウィンドウの下部に表示されます。
<Del>
を使用して最後の桁を消去できます(
N<Del>)。
[quotex] ["x] テキストを保存できるオプションのレジスタ指定です。
レジスタを参照してください。x は 'a' から 'z'、または 'A' から 'Z'、または '"' の間の単一文字であり、場合によっては(put コマンドを使用する場合)'0' から '9'、'%'、'#'、またはその他の文字です。大文字と小文字は同じレジスタを示しますが、小文字は以前のレジスタの内容を上書きするために使用され、大文字は以前のレジスタの内容に追加するために使用されます。"x" を省略するか、"""" を使用すると、保存されたテキストは名前のないレジスタに配置されます。
{} {} 波括弧は、コマンドの中で必ず記述する必要があるが、複数の異なる値を取りうる部分を表します。VimとViの違いも波括弧で示されています(文脈から明らかになります)。
{char1-char2}
{char1-char2}
char1からchar2までの範囲内の1文字。例えば、
{a-z}
は小文字のアルファベットです。複数の範囲を連結することもできます。例えば、
{a-zA-Z0-9}
は任意の英数字です。
{motion} 移動 {motion}
カーソルを移動するコマンド。これらについては
motion.txtで説明しています。例:次の単語の先頭へ移動するにはw、現在の単語の先頭へ移動するにはb、4行下へ移動するには4j、"The"の次の出現箇所へ移動するには/The<CR>。これは、操作対象のテキストを移動するために、
オペレータコマンドの後に使用されます。
モーションにカウントが含まれ、オペレータにもカウントが含まれる場合、2つのカウントは掛け合わされます。例えば、「2d3w」は6単語を削除します。
モーションは逆方向にすることもできます。例えば、「db」は単語の先頭まで削除します。
モーションはマウスクリックにすることもできます。ただし、すべてのターミナルでマウスがサポートされているわけではありません。
オペレータが保留中の間に文字をマッピングするには、":omap"コマンドを使用できます。
Exコマンドを使用してカーソルを移動できます。これは、複雑なモーションを行う関数を呼び出すために使用できます。":"コマンドが何であっても、モーションは常に文字単位で排他的です。つまり、改行を含まない限り、行の最後の文字を含めることはできません(
'virtualedit'が設定されている場合を除く)。Exコマンドがオペレータが開始する前のテキストを変更したり、別のバッファにジャンプしたりすると、結果は予測できません。テキストをさらに下に変更することは可能です。現在のバッファがアンロードされていない場合は、別のバッファにジャンプできます。
{Visual}
{Visual}
選択されたテキスト領域。"v"、"V"、または
CTRL-V
コマンドで開始し、任意のカーソル移動コマンドを使用して選択されたテキストの終わりを変更できます。これは、操作対象のテキストを強調表示するために、
オペレータコマンドの前に使用されます。
Visualモードを参照してください。
<character>
<character>
下の表の特殊文字(修飾子付きの場合もあります)、または修飾子付きのASCII文字1文字。
CTRL-{char}
CTRL-{char}
CTRLキーを押しながら
{char}
を入力することによって入力される制御文字。
{char}
の大文字と小文字は区別されません。そのため、
CTRL-A
と
CTRL-a
は同等です。ただし、一部のターミナルや環境では、SHIFTキーを使用すると異なるコードが生成されます(例:
CTRL-SHIFT-a
)。これらの環境では、SHIFTキーを使用しても
CTRL-A
などのコマンドはトリガーされません。
quotecommandquote "command" 入力できるコマンドへの参照は、二重引用符で囲まれています。
command
新しいスタイルのコマンドで、他の引用符で囲まれたテキストや文字列と区別されます。
表記 意味 10進値
-----------------------------------------------------------------------
<Nul>
ゼロ
CTRL-@
0 (10として保存)
<Nul> <BS>
バックスペース
CTRL-H
8
バックスペース <Tab>
タブ
CTRL-I
9
タブ タブ 改行
<NL>
改行
CTRL-J
10 (
<Nul>
に使用)
<CR>
キャリッジリターン
CTRL-M
13
キャリッジリターン <Return>
<CR>
と同じ
<Return>
<Enter>
<CR>
と同じ
<Enter>
<Esc>
エスケープ
CTRL-[
27
エスケープ <Esc> <Space>
スペース 32
スペース <lt>
小なり < 60
<lt> <Bslash>
バックスラッシュ \ 92
バックスラッシュ <Bslash> <Bar>
バーティカルバー | 124
<Bar> <Del>
デリート 127
<CSI>
コマンドシーケンスイントロ
ALT-E
sc 155
<CSI>
注意
一部のキー(<Help>
、<S-Right>
など)の可用性は、UIまたはホストターミナルに依存します。
Num Lockがオンの場合、
TUIはプレーンなASCII値を受け取るので、
<k0>
、
<k1>
、…、
<k9>
、および
<kPoint>
のマッピングは機能しません。
Nvimは、<M-ä>
などの修飾子付きマルチバイト文字のマッピングをサポートしています。実際に機能する組み合わせは、UIまたはホストターミナルによって異なります。
メタ修飾子またはオルト修飾子を使用してキーを押したときに、そのキー押下に対するマッピングが存在しない場合、Nvimはキーの前に<Esc>
が押されたかのように動作することがあります。
組み合わせた修飾子(例:
<M-C-T>
は
CTRL-ALT-T
)を表記することは可能ですが、機能させるには、ターミナルでその入力をエンコードする必要があります。
tui-input
<> 例は多くの場合、<>表記で示されています。これは単に入力が必要なものを明確にするためだけのこともありますが、多くの場合、文字通り入力できます(例:":map"コマンド)。規則は以下のとおりです。1. バックスラッシュと"<"を除き、印刷可能な文字は直接入力します。2. バックスラッシュは"\\"、二重バックスラッシュ、または"<Bslash>"で表します。3. リテラル"<"は"\<"または"<lt>"で表します。混乱する可能性がない場合は、"<"を直接使用できます。4. "<key>"は入力された特殊キーを意味します(上の表を参照)。例:
<Esc>
エスケープキー
<C-G>
CTRL-G
<Up>
カーソル上キー
<C-LeftMouse>
コントロール+左マウスクリック
<S-F11>
シフト+ファンクションキー11
<M-a>
メタ-a (ビット8が設定された'a')
<M-A>
メタ-A (ビット8が設定された'A')
<>表記では、
<lt>
を使用してキー名の特別な意味をエスケープします。バックスラッシュを使用することもできますが、
'cpoptions'に'B'フラグが含まれていない場合のみです。
CTRL-H
を6文字の"<Home>"にマッピングする例
:imap <C-H> \<Home>
:imap <C-H> <lt>Home>
最初のものは、
'cpoptions'に'B'フラグが含まれていない場合のみ機能します。2番目のものは常に機能します。マッピングでリテラル"<lt>"を取得するには
:map <C-L> <lt>lt>
この表記は、二重引用符で囲まれた文字列で使用でき、先頭に"\<"を使用します(例:"\<C-Space>")。これにより、特殊なキーコードが生成されます。これを可読なテキストに変換するには、
keytrans()
を使用します。
Vimには7つの基本モードがあります。
ビジュアルモード これは通常モードに似ていますが、移動コマンドによって強調表示された領域が拡大されます。移動コマンド以外のコマンドを使用すると、強調表示された領域に対して実行されます。
Visual-modeを参照してください。
'showmode' オプションがオンになっている場合、「-- VISUAL --」がウィンドウの下部に表示されます。
選択モード これはMS-Windowsの選択モードに最も似ています。印刷可能な文字を入力すると、選択範囲が削除され、挿入モードが開始されます。
Select-modeを参照してください。
'showmode' オプションがオンになっている場合、「-- SELECT --」がウィンドウの下部に表示されます。
挿入モード 挿入モードでは、入力したテキストがバッファに挿入されます。
Insert-modeを参照してください。
'showmode' オプションがオンになっている場合、「-- INSERT --」がウィンドウの下部に表示されます。
コマンドラインモード コマンドラインモード(Cmdlineモードとも呼ばれます)では、ウィンドウの下部に1行のテキストを入力できます。これは、Exコマンド(「:」)、パターン検索コマンド(「?」と「/」)、およびフィルタコマンド(「!」)に使用します。
Cmdline-mode
Exモード コマンドラインモードに似ていますが、コマンドを入力した後もExモードのままです。コマンドラインの編集は非常に限定されています。
Ex-mode
さらに6つの追加モードがあります。これらは基本モードのバリエーションです。
置換モード 置換モードは挿入モードの特殊なケースです。挿入モードと同じことができますが、入力する各文字に対して、既存のテキストの1文字が削除されます。
Replace-modeを参照してください。
'showmode' オプションがオンになっている場合、「-- REPLACE --」がウィンドウの下部に表示されます。
挿入通常モード 挿入モードで
CTRL-O
を入力したときに開始されます(
i_CTRL-Oを参照)。これは通常モードに似ていますが、1つのコマンドを実行した後、Vimは挿入モードに戻ります。
'showmode' オプションがオンになっている場合、「-- (insert) --」がウィンドウの下部に表示されます。
挿入ビジュアルモード 挿入モードからビジュアル選択を開始したときに開始されます(例:
CTRL-O
、次に「v」、「V」、または
CTRL-V
を使用)。ビジュアル選択が終了すると、Vimは挿入モードに戻ります。
'showmode' オプションがオンになっている場合、「-- (insert) VISUAL --」がウィンドウの下部に表示されます。
挿入選択モード 挿入モードから選択モードを開始したときに開始されます(例:マウスをドラッグするか、
<S-Right>
を使用)。選択モードが終了すると、Vimは挿入モードに戻ります。
'showmode' オプションがオンになっている場合、「-- (insert) SELECT --」がウィンドウの下部に表示されます。
何らかの理由で現在のモードがわからない場合は、<Esc>
を2回入力することで、常に通常モードに戻ることができます。ただし、これはExモードでは機能しません。「:visual」を使用してください。<Esc>
を入力した後、画面が点滅するか、ベル音が鳴ると、通常モードに戻ったことがわかります。ただし、挿入モードでCTRL-Oを使用した後に<Esc>
を押すと、ビープ音が鳴りますが、挿入モードのままです。もう一度<Esc>
を入力してください。
i_esc
モード間の移動
通常 ビジュアル 選択 挿入 置換 コマンドライン Ex
Normal v V ^V *4 *1 R gR : / ? ! Q
Visual *2 ^G c C -- : --
Select *5 ^O ^G *6 -- -- --
Insert <Esc> -- -- <Insert> -- --
Replace <Esc> -- -- <Insert> -- --
Command-line `*3` -- -- :start -- --
Ex :vi -- -- -- -- --
-- 不可
* 1 「i」、「I」、「a」、「A」、「o」、「O」、「c」、「C」、「s」、または「S」コマンドを入力して、通常モードから挿入モードに移動します。* 2 移動コマンド以外のコマンドを入力してビジュアルモードから通常モードに移動します。これにより、コマンドが実行されます。または、
<Esc>
、「v」、「V」、または「CTRL-V」(
v_vを参照)を押して、副作用なしでビジュアルモードを終了します。* 3 コマンドラインモードから通常モードに移動するには、
<CR>
または<NL>
を押します。これにより、入力されたコマンドが実行されます。
行全体を削除し(例:CTRL-U
を使用)、最後に<BS>
を入力します。
CTRL-C
または
<Esc>
を押します。これにより、コマンドを実行せずにコマンドラインを終了します。最後のケースでは、
<Esc>
は
'wildchar' オプションで定義された文字である可能性があり、その場合はコマンドラインの補完が開始されます。それを無視して、もう一度
<Esc>
を入力できます。* 4 通常モードから選択モードに移動するには、
Shiftキーを押したまま、非印刷可能なコマンドを使用してカーソルを移動し、
'selectmode' オプションに「key」が含まれている場合。
「gh」、「gH」、または「g
CTRL-H
」を使用します
g_CTRL-H * 5 Shiftキーを押さずに非印刷可能なコマンドを使用してカーソルを移動することで、選択モードから通常モードに移動します。* 6 印刷可能な文字を入力することで、選択モードから挿入モードに移動します。選択範囲が削除され、文字が挿入されます。
通常モードと挿入/置換モードでは、画面ウィンドウにバッファの現在の内容が表示されます。見えるものがすべてです。ただし、2つの例外があります。
'cpoptions' オプションに「$」が含まれており、変更が1行以内にある場合、テキストは直接削除されませんが、最後に削除された文字の位置に「$」が置かれます。
1つのウィンドウでテキストを挿入すると、同じテキストにある他のウィンドウは、挿入が完了するまで更新されません。
'wrap' オプションがオフになっていない限り(下記参照)、ウィンドウ幅より長い行は折り返されます。
'linebreak' オプションを設定して、空白文字で折り返すことができます。
ウィンドウにバッファの最終行の後にスペースがある場合、Vimはウィンドウの最終行の先頭列に「~ 」を表示します。
+-----------------------+
|some line |
|last line |
|~ |
|~ |
+-----------------------+
したがって、「~ 」行はバッファの終端に達したことを示しています。
ウィンドウの最終行が収まらない場合、Vimはウィンドウの最終行の先頭列に「@」を表示します。
+-----------------------+
|first line |
|second line |
|@ |
|@ |
+-----------------------+
したがって、「@」行はウィンドウに収まらない行があることを示しています。
'display' オプションに "lastline" フラグが存在する場合、ウィンドウの左側に「@」文字は表示されません。最終行が完全に収まらない場合、収まる部分のみが表示され、最終行の最後の3文字は「@@@」に置き換えられます。
+-----------------------+
|first line |
|second line |
|a very long line that d|
|oesn't fit in the wi@@@|
+-----------------------+
ウィンドウに収まらないほど長い行が1つだけある場合、これは特殊な状況です。Vimはカーソルの周りの行の一部のみを表示します。特別な文字は表示されないので、この行のすべての部分を編集できます。
hl-NonText ハイライトグループを使用して、「@」と「~ 」文字に特別なハイライトを設定できます。これにより、バッファ内の実際の文字と区別することができます。
折り返しオフ 「
'wrap'」オプションがオフの場合、長い行は折り返されません。画面に収まる部分のみが表示されます。カーソルを画面に表示されていない行の部分に移動すると、画面が水平方向にスクロールします。この方法の利点は、列がそのまま表示され、画面に収まらない行も編集できることです。欠点は、行のすべての文字を一度に表示できないことです。「
'sidescroll'」オプションで、スクロールする最小列数を設定できます。
通常のASCII文字はすべて画面に直接表示されます。<Tab>
は、それが表すスペースの数に置き換えられます。その他の非表示文字は、「^{char}」で置き換えられます。ここで{char}
は、64を加えた非表示文字です。したがって、文字7(ベル)は「^G」として表示されます。127から160までの文字は、「~{char}」で置き換えられます。ここで{char}
は、64を引いた文字です。これらの文字は、画面上で複数の位置を占めます。カーソルは最初の位置のみに配置できます。
「
'number'」オプションを設定すると、すべての行の前に行番号が付けられます。ヒント:行番号と折り返された行が混ざるのが嫌な場合は、「
'showbreak'」オプションを8個のスペースに設定します:「:set showbreak=\ \ \ \ \ \ \ \ 」
「
'list'」オプションを設定すると、
<Tab>
文字は複数のスペースとしてではなく、「^I」として表示されます。行の最後に「$」が置かれるため、末尾の空白を見つけることができます。
コマンドラインモードでは、コマンドライン自体のみが正しく表示されます。バッファの内容の表示は、コマンドモードに戻る直後に更新されます。
ウィンドウの最後の行は、ステータスやその他のメッセージに使用されます。ステータスメッセージは、オプションがオンの場合にのみ使用されます。
現在のモードは「-- INSERT --」または「-- REPLACE --」です。「
'showmode'」を参照してください。コマンド文字とは、入力しましたがまだ使用されていない文字です。
ターミナルが遅い場合は、ステータスメッセージをオフにして編集速度を向上させることができます。
:set nosc noru nosm
エラーが発生した場合は、エラーメッセージが少なくとも1秒間(反転表示で)表示されます。
一部のコマンドは、影響を受けた行数を表示します。このしきい値は、「
'report'」オプション(デフォルトは2)で制御できます。
タイトルバーには、Vimの名前と現在のファイルのフルネームが表示されます。ウィンドウのサイズが変更されると、Vimはウィンドウを自動的に再描画します。ウィンドウを好きなだけ小さくできますが、小さすぎると1行も収まりません。最後の行にあるほとんどのメッセージを読めるように、幅を少なくとも40文字にする必要があります。
バッファ ファイルからのテキストの行を格納します。通常はファイルからのものです。画面 Nvimがものを表示するために使用する領域全体。ウィンドウ バッファのビュー。1つのバッファに対して複数のウィンドウが存在する可能性があります。フレーム ウィンドウはフレームツリーに保持されます。各フレームには、列、行、またはウィンドウ(「リーフ」フレーム)が含まれています。
画面には、ステータス行で区切られ、コマンドラインが下部に配置された、1つ以上のウィンドウが含まれています。
+-------------------------------+
screen | window 1 | window 2 |
| | |
| | |
|= status line =|= status line =|
| window 3 |
| |
| |
|==== status line ==============|
|command line |
+-------------------------------+
コマンドラインはメッセージにも使用されます。コマンドラインに十分なスペースがない場合は、画面を上方向にスクロールします。
4種類の行が区別されます。
バッファ行 バッファ内の行。これは、ファイルから読み取られたりファイルに書き込まれたりする行と同じです。数千文字の長さになる可能性があります。論理行 フォールディングが適用されたバッファ行。閉じられたフォールド内のバッファ行は、単一の論理行に変更されます:「+-- 99行がフォールドされています」。数千文字の長さになる可能性があります。ウィンドウ行 ウィンドウに表示される行:折り返し、改行などが適用された論理行の範囲。ウィンドウの幅が許す長さだけにすることができます。長い行は折り返されるか切り捨てられます。画面行 Nvimが使用する画面の行。すべてのウィンドウのウィンドウ行、ステータス行、およびコマンドラインで構成されます。画面の幅と同じ長さだけにすることができます。コマンドラインが長くなると折り返され、スペースを作るために行がスクロールされます。
1. one 1. one 1. +-- folded 1. +-- folded 2. two 2. +-- folded 2. five 2. five 3. three 3. five 3. six 3. six 4. four 4. six 4. seven 4. seven 5. five 5. seven 5. === status line === 6. six 6. aaa 7. seven 7. bbb 8. ccc ccc c 1. aaa 1. aaa 1. aaa 9. cc 2. bbb 2. bbb 2. bbb 10. ddd 3. ccc ccc ccc 3. ccc ccc ccc 3. ccc ccc c 11. ~ 4. ddd 4. ddd 4. cc 12. === status line === 5. ddd 13. (command line) 6. ~
APIクライアント
すべての外部UIとリモートプラグイン(通常のVimプラグインとは対照的に)は、一般的に「クライアント」ですが、他のアプリケーションの便宜のためにRPC APIを抽象化またはラップすることを目的とするものを「APIクライアント」と呼びます(AWSのboto3などのRESTクライアントまたはSDKと同様に:curlのようなHTTPクライアントを使用してAWS RESTを話すことができますが、boto3はそれを便利なPythonインターフェースでラップします)。たとえば、Nvim lua-clientはAPIクライアントです:
https://github.com/neovim/lua-client
ホスト
プラグイン「ホスト」は、クライアント(Nvim APIの)とサーバー(外部プラットフォーム、例:Python)の両方です。他のプラグインをホストするリモートプラグインです。