Nvim の:help
ページ。 生成されたもので、ソース を tree-sitter-vimdoc パーサーを使用して生成されています。
:%s/four/4/g「%」範囲は、すべての行で置換することを意味します。末尾の「g」フラグは、行内のすべての単語を置換することを意味します。ファイルに「thirtyfour」も含まれている場合、これは正しく動作しません。「thirty4」に置き換えられます。これを回避するには、「\<」アイテムを使用して単語の先頭と一致させます。
:%s/\<four/4/g明らかに、これは「fourteen」でも間違っています。「\>」を使用して単語の末尾と一致させます。
:%s/\<four\>/4/gプログラミングをしている場合、コメント内の「four」を置き換えたいが、コード内は置き換えたくない場合があります。これは指定が難しいため、「c」フラグを追加して、substitute コマンドに各置換についてプロンプトを表示させます。
:%s/\<four\>/4/gc
*.cpp
Vim を起動し、引数リストにすべての C++ ファイルが含まれるように定義します。これで最初のファイルが開かれます。qq q レジスタに記録を開始します :%s/\<GetResp\>/GetAnswer/g 最初のファイルで置換を実行します。 :wnext このファイルを書き込み、次のファイルに移動します。 q 記録を停止します。 @q q レジスタを実行します。これにより、置換と「:wnext」が再生されます。エラーメッセージが生成されないことを確認できます。 999@q 残りのファイルで q レジスタを実行します。:%s/\<GetResp\>/GetAnswer/ge「e」フラグは、一致が見つからないことがエラーではないことを`:substitute`に伝えます。
:%s/\([^,]*\), \(.*\)/\2 \1/これを部分的に分解してみましょう。明らかに、substitute コマンドで始まります。「%」は行範囲であり、ファイル全体を表します。したがって、置換はファイルのすべての行で実行されます。substitute コマンドの引数は「/from/to/」です。スラッシュは「from」パターンと「to」文字列を区切ります。「from」パターンには次のものがあります。
/^OBJS j :.,/^$/-1!sortこれは最初の行に移動し、「OBJS」が行の先頭にあります。次に1行下に移動し、次の空行まで行をフィルタリングします。ビジュアルモードで行を選択してから「!sort」を使用することもできます。これは入力しやすいですが、行が多い場合は作業量が多くなります。結果は次のようになります。
:global/^/move 0省略形
:g/^/m 0「^」正規表現は行の先頭と一致します(行が空の場合でも)。:moveコマンドは、一致する行を仮想的な0行の後に移動するため、現在一致している行がファイルの最初の行になります。:globalコマンドは行番号の変更に混乱しないため、:globalはファイルの残りの行すべてと一致し、それぞれを最初に入れます。
:'t+1,.g/^/m 't
g CTRL-Gg の後にスペースを入力しないでください。これはコマンドを読みやすくするためだけに使用されています。出力は次のようになります。
CTRL-G
」を入力し、テキストの末尾に移動して「g CTRL-G
」をもう一度入力し、脳を使って単語位置の差を計算できます。これは良い練習ですが、より簡単な方法があります。ビジュアルモードで、単語をカウントするテキストを選択します。次に、「g CTRL-G
」を入力します。結果は次のとおりです。KNvim は単語に対して:Manを実行します。man ページが見つかった場合は、表示されます。 :Manコマンドを使用して、man ページのウィンドウを開くこともできます。
:Man cshスクロールできます。テキストが強調表示されます。これにより、必要なヘルプを見つけることができます。作業中のテキストを含むウィンドウにジャンプするには、
CTRL-W
w を使用します。特定のセクションのmanページを見つけるには、最初にセクション番号を入力します。たとえば、セクション3で「echo」を検索するには、次のようになります。:Man 3 echo典型的な形式「word(1)」でテキストにある別のmanページにジャンプするには、その上で
CTRL-]
を押します。以降の`:Man`コマンドは同じウィンドウを使用します。Kたとえば、この行を編集中に「strstr()」の戻り値を知りたいとします。
:%s/\s\+$//行範囲「%」が使用されているため、これはファイル全体で機能します。`:substitute`コマンドが一致するパターンは「\s\+$」です。これは行末($の前)にある空白文字(\s)、1つ以上(+)を見つけます。このようなパターンの書き方については、後で説明します。usr_27.txtを参照してください。substituteコマンドの「to」の部分は空です:「//」。したがって、何も置き換えられず、一致する空白が効果的に削除されます。
/表示されませんが、このコマンドの先頭にスペースとタブがあります。つまり、"/<Space><Tab>"となります。「x」を使ってスペースを削除し、空白の量が変化しないことを確認してください。変化した場合は、タブを挿入する必要があるかもしれません。「n」を入力して次の一致を探します。一致が見つからなくなるまで繰り返します。
vim `grep -l frame_counter *.c`このコマンドを詳しく見てみましょう。grepコマンドは、指定された単語を含む一連のファイル内を検索します。-l引数が指定されているため、このコマンドは単語を含むファイルのみを一覧表示し、一致する行は表示しません。検索対象の単語は"frame_counter"です。実際には、これは任意の正規表現にすることができます。(注記: grepが使用する正規表現は、Vimが使用するものとまったく同じではありません。)コマンド全体はバッククォート()で囲まれています。これは、Unixシェルにこのコマンドを実行させ、その結果がコマンドラインに入力されたかのように見せかけることを意味します。そのため、grepコマンドが実行され、ファイルの一覧が生成され、これらのファイルがVimのコマンドラインに配置されます。これにより、grepの出力がファイルリストとなり、Vimでそのファイルリストが編集されます。その後、「:next」や「:first」などのコマンドを使用して、ファイルを参照できます。
:grep error_string *.cこれにより、Vimは指定されたファイル(
*.c
)内の文字列"error_string"を検索します。エディターは、一致が見つかった最初のファイルを開き、カーソルを最初の一致する行に配置します。次の行の一致箇所に移動するには(ファイルが何であっても)、":cnext"コマンドを使用します。前のマッチに移動するには、":cprev"コマンドを使用します。すべてのマッチとその場所を確認するには、":clist"を使用します。":grep"コマンドは、外部コマンドgrep(Unix)またはfindstr(Windows)を使用します。これは、オプション'grepprg'を設定することで変更できます。