システム管理者であろうとソフトウェア開発者であろうと、Linuxターミナルで作業していると、ターミナルでテキストファイルを編集する必要がある状況に直面することになります。
ターミナルに制限されている場合は、Vimなどのコマンドラインエディタのいずれかを使用する必要があります。私たちのほとんどはGUIエディターに慣れており、コマンドラインエディターを使用することはAtomのようなグラフィカルテキストエディターを使用することと同じではないため、これにより問題が発生します。
利用可能なコマンドラインテキストエディタがいくつかあり、それらのいずれかを自由に使用できます。 Vimは最も人気のあるコマンドラインテキストエディタの1つであり、標準のLinuxディストリビューションにインストールされています。これが、Vimの基本を学ぶことが大いに役立つ理由です。
さて、これはあなたをVimのエキスパートにするための包括的なガイドではありません。これは、LinuxターミナルでVimを存続させるのに十分な情報を提供することを目的とした包括的なVimガイドです。
Ubuntuまたは使用しているLinuxディストリビューションにVimをインストールしたことを願っています。
以前にVimを使用したことがある場合は、このVimのチートシートを見て思い出をリフレッシュしたいと思うかもしれません:
Vimコマンド | 説明 |
---|---|
i | 挿入モードに入る |
Esc | コマンドモードに入る |
xまたはDel | 文字を削除する |
X | 削除文字はバックスペースモードです |
u | 変更を元に戻す |
Ctrl + r | 変更をやり直す |
yy | 行をコピー |
dd | 行を削除 |
p | バッファの内容を貼り付けます |
/ | 検索してから、nとNの一致を循環します |
[[またはgg | ファイルの先頭に移動 |
]]またはG | ファイルの最後に移動 |
:%s / foo / bar / gci | すべてのオカレンスを検索して確認に置き換えます |
Esc +:w | 変更を保存 |
Esc +:wqまたはEsc + ZZ | Vimを保存して終了します |
Esc +:q! | Vimを強制終了してすべての変更を破棄します |
上記のコマンドはPDFとしてダウンロードすることもできます。ダウンロードして印刷し、すぐに参照できるように机の上に置いておきます。
基本的なVimコマンドチートシートLinuxハンドブックvim-commands-cheatsheet-linux-handbook.pdf86KB
心配しないでください。これらの基本的なVimコマンドについても詳しく説明します。
Vimモードを理解する
始める前に、Vimモードについて教えてください。 Vimには3つのモードがあります:
- コマンドモード:Vimを起動すると、コマンドモードになります。このモードでは、画面上を移動したり、テキストを削除したり、テキストをコピーしたりできます。
- 挿入モード:コマンドモードでテキストを書き込むことはできません。ファイルにテキストを書き込む(またはテキストを挿入する)には、専用の挿入モードがあります。ファイルに何かを書きたいときは、挿入モードに入る必要があります。
- ビジュアルモード:コマンドモードに似ていますが、ここでは、矢印キーを使用して行全体のテキストを選択できます(カーソル位置に基づいて単語や行を直接操作する代わりに)。
Vimモードを理解したら、さまざまな目的のための基本的なVimコマンドをいくつか見てみましょう。
Vimで挿入モードに入る
常に覚えておいてください、私は挿入モードの略です。 「i」キーを押して挿入モードに入ります 。
挿入モードに入ると、エディター/ターミナル画面の下部に「挿入」と表示されます。これは、挿入モードになっていることを示しています。
しかし、挿入モードに入る方法は私だけではありません。 Vimで挿入モードに入るには他にもいくつかのコマンドがあります。挿入モードに入るときは、カーソルの位置が重要です。
- i –カーソルの前に新しいテキストが表示されます
- a –カーソルの後に新しいテキストが表示されます
- I –新しいテキストが現在の行の先頭に表示されます
- A –次のテキストが現在の行の最後に表示されます
- o –現在の行の後に新しい行が作成されます
- O –現在の行の前に新しい行が作成されます
Vimでコマンドモードに戻る
コマンドモードで開始し、挿入モードに入ります。 コマンドモードに戻る場合は、Esc(エスケープ)キーを押します 。
テキストを入力したら、Escキーを押してコマンドモードに入ることをお勧めします。このようにして、無意識のうちに新しいテキストを入力することはありません。ヒント:他に何も思い出せない場合は、挿入モードの場合は「i」を押し、コマンドモードの場合はEscキーを押すことを忘れないでください。これで十分です。
Vimで動き回る
Vimを使用している場合、通常のテキストエディタやコードエディタのように、マウスを使用して画面内の特定の場所をクリックすることはできません。これが、Vimの特定の行または単語または位置への移動コマンドを知る必要がある理由です。
Vi / Vimの純粋主義者は、コマンドモードのときに、それぞれ上、左、右、下に移動するためにh、j、k、lキーを使用することを提案します。これはViとVimの両方のエディターに当てはまりますが、これらの奇妙なキーの組み合わせを使用することは好みません。
雑学:Viエディターが最初に開発されたとき、ほとんどのキーボードには矢印キーがありませんでした。これが、移動にh、j、k、lキーが使用された理由です。
Vim内を移動するために矢印キーを使用します。 Vimで挿入モードの場合でもうまく機能します。 これは、ほとんどの新世代が慣れている標準的な方法です。
LinuxまたはVimを初めて使用する場合は、矢印キーを選択できます。害はありません。
ただし、Vimにもう少し慣れたい場合は、画面内を簡単に移動できるように、いくつかのVimショートカットを覚えておくとよいでしょう。私のお気に入りのVim移動コマンドのいくつかは次のとおりです。
- H –画面の上部に移動します。ファイルの最初の行に移動することを必ずしも意味しないことに注意してください。表示されている画面の上部に移動するためだけのものです。
- L –画面の下部に移動します。ファイルの最後の行に移動することを必ずしも意味しないことに注意してください。表示されている画面の下部に移動するためだけのものです。
- M –画面の中央に移動します。
- [[–ファイルの最初の行に移動します。ここでggを使用することもできます。
- ]] –ファイルの最後の行に移動します。ここでGを使用することもできます。
- nG –行番号nに移動します。行番号を入力している間、画面には何も表示されないことに注意してください。
ヒント:コマンドモードに入り、 :set number と入力すると、Vimで行番号を表示できます。
ご覧のとおり、これらの追加の移動コマンドを使用すると、大きなテキストファイル内を移動しやすくなります。段落を前後に移動するための{と}、単語ごとに移動するためのwなどの移動コマンドをさらに学ぶことができます。
Vimのほとんどのコマンドで見たnGのような「リピーター修飾子」を使用することもできます。たとえば、5wを使用すると、5ワード移動します。 6Hを使用すると、画面の上から6行目に移動します。
リピーター修飾子は「i」でも機能し、これは多くの人が間違いを犯す場所です。 「i」を押して挿入モードに入る前に誤って7などの数字を押した場合、入力したテキストは7回追加されます。ドキュメントの保存を開始するまで、画面にはすぐには表示されません。
では、このようなばかげた間違いをしたときはどうすればよいでしょうか。元に戻します。
Vimで変更を元に戻す
Vimでミスをした場合でも、永遠にVimと一緒に暮らす必要はありません。また、このような場合に保存せずにエディターを終了する人もいますが、これはちょっとばかげています。
Vimを使用すると、変更を元に戻したりやり直したりできます。変更をやり直すこともできます。もちろん、すべて同じセッションに適用できます。変更を保存すると、元に戻すことはできません。
変更を元に戻すには、コマンドモードに移動し、「u」キーを押します。複数の元に戻すアクションのためにそれを数回押すことができます。
変更をやり直す場合は、コマンドモードでCtrl+rキーの組み合わせを押します。複数のやり直しアクションのためにそれを数回押すことができます。
Vimで削除
変更を元に戻す以外に、ファイルから一部のテキストを削除することもできます。 Vimでは、いつでもDeleteキーを使用して文字を削除できますが、Vimでの削除をより適切に処理するためのいくつかのキーの組み合わせがあります。
- x – Deleteキーと同じように、現在のカーソル位置にある文字を削除します
- X –バックスペースキーのように、現在のカーソル位置の前の文字を削除します。バックスペースキー自体はVimでは機能しないことに注意してください。
- dw –単語を削除します。実際には、現在のカーソル位置から現在の単語の終わりとその後の空白までを削除します。
- dd –現在の行を削除します。
- d $ –現在のカーソル位置から行末まで削除します。
- dG –現在のカーソル位置からファイルの終わりまで削除します。
注:Vimにはカットコマンドはありません。何かを削除すると、削除されたテキストがバッファーに配置されるためです。つまり、削除コマンドはカットコマンドです。
Vimで貼り付けをコピーする方法を疑問に思うかもしれません。常にテキストを入力するとは限らないため、これは正当な懸念事項です。
Vimには2種類のコピーアンドペーストがあります。 1つはバッファを処理し、もう1つは「外部」テキストを処理します。
コマンドモードでは、Linuxターミナルのショートカットを使用してテキストをコピーするか、次のキーの組み合わせを使用してテキストをコピーできます。
- yw –単語をコピーします。実際には、現在のカーソル位置から現在の単語の終わりとその後の空白までコピーします。
- yy –現在の行をコピーします。
- y $ –現在のカーソル位置から行末までコピーします。
- yG –現在のカーソル位置からファイルの終わりまでコピーします。
上記で説明した削除コマンドの1つを使用したとします。削除されたテキストはバッファに配置されます。次の2つの貼り付けコマンドを使用して、バッファからこのテキストを貼り付けることができます。
- p –カーソル位置の前にバッファの内容を貼り付けます
- P –カーソル位置の後にバッファの内容を貼り付けます
行全体を削除した場合は、上記の貼り付けコマンドを使用して、現在の行の前後にコンテンツが配置されることに注意してください。
貼り付けコマンドは、Vimバッファーでのみ機能します。他のファイルからコピーしたテキストはどうですか?そのような場合は、Linuxターミナルの標準のコピーアンドペーストキーの組み合わせを使用できます。
Ubuntuおよび他の多くのLinuxディストリビューションのデフォルト端末では、Ctrl + Shift + Cがコピーに使用され、Ctrl + Shift+Vが貼り付けに使用されます。他の一部の端末では、テキストを選択するとテキストがコピーされ、右クリックして貼り付けることができます。
Linuxターミナルでコピー&ペーストする方法が何であれ、Vimでも使用できます。このタイプのコピー貼り付けでは、挿入モードになっていることを確認してください。
特定のテキストを見つけることは、テキストエディタの重要な機能です。 「/」を使用して、Vimのファイル内のテキストを検索できます。
コマンドモードで/を使用し、検索テキストを入力してEnterキーを押します。画面の左下に入力内容が表示されます。
カーソル位置から検索した用語を前方検索します。 「?」を使用して検索語を入力し、Enterキーを押して逆方向検索を実行することもできます。検索では大文字と小文字が区別されることに注意してください。
検索テキストに一致するものが複数ある場合は、nキーを押して次の位置にジャンプできます。前の試合に戻りたい場合は、Nを押します。基本的に、nとNを使用すると、すべての試合を切り替えることができます。ヒント:\ cオプションを使用して、Vimで大文字と小文字を区別しない検索を実行できます。例:/ \ cMy_Search
Vimで検索して置換
Vimは、テキストを検索および置換するための代替コマンド(:s)を提供します。検索と置換は正規表現(regex)に大きく依存しています。
次のように使用できます:
:%s/foo/bar/g
上記のコマンドは、ファイル全体のすべての「foo」を「bar」に置き換えます。最後の「g」は、すべての一致で検索および置換機能を拡張する役割を果たします。それ以外の場合は、最初の一致のみが置き換えられます。
:s/foo/bar/g
「:s」コマンドは、上記とまったく同じ機能を実行しますが、ファイル全体ではなく、現在の行でのみ機能します。
デフォルトでは、検索では大文字と小文字が区別されます。大文字と小文字を区別しないように、フラグ「i」をgとともに使用できます。
:%s/foo/bar/gci
ここに「c」フラグを追加しました。実際には、一致するテキスト全体がドキュメント全体で数秒以内に置き換えられるという考えに不安を感じるかもしれません。これは、「c」フラグが非常に役立つ場所です。この確認フラグを使用すると、Vimは各試合で置換を実行するかどうかを確認するように求めます。
確認モードでは、次のオプションが表示されます:UU(y / n / a / q / l / ^ E / ^ Y)に置き換えますか?
ここで選択肢を説明しましょう:
- y –はい、この一致を置き換えます
- n –いいえ、この試合を置き換えて次の試合に移動しないでください
- a –すべての一致を置き換えます
- q –一致するものを置き換えずに終了
- l –この一致を置き換えて、最後の一致であるかのように終了します
- ^ E –画面を上にスクロールします
- ^ Y –画面を下にスクロールします
ヒント:他のすべてを思い出せない場合は、覚えておいてください:%s / foo / bar / gciは、ファイル全体のすべての一致を確認で置き換えようとします。
Vimの保存と終了
Vimコマンドの基本を学びました。作業を保存してVimを終了するときが来ました。 Vimを保存または終了するには、最初にEscキーを押してコマンドモードに入る必要があります。そして、次のオプションを使用できます:
- :w –変更を保存しますが、終了しないでください
- :wq –保存して終了
- :q –終了するだけです(未保存の変更がある場合は、次の警告が表示されます:E37:最後の変更以降の書き込みはありません(上書きするには!を追加))
- :q! –強制終了(保存されていない変更はすべて破棄されます)
VimコマンドのチートシートをPDF形式でダウンロード
Vimを初めて使用する場合、今学んだことを思い出すのは難しいかもしれません。これが、基本的なvimコマンドとその簡単な説明のリストを作成した理由です。
このVimチートシートをPDF形式でダウンロードして印刷し、すぐに参照できるようにデスクに置いておくことができます。
基本的なVimコマンドのチートシートをダウンロードする
Vimでさらに進んでください
さて、あなたはこの恐ろしく素晴らしいテキストエディタを生き残るために必要なすべてのVimの基本を学びました。これだけの知識があれば、Vimでテキストを読んだり、テキストを検索したり、基本的な編集を行ったりすることができます。これは、Vimのようなターミナルテキストエディタを使用するというアイデアが思い浮かんだらすぐにパニックを防ぐのに十分です。
このページをブックマークして、Vimで学んだことをここで更新する必要があります。 vimtutorコマンドを使用することもできます。ほとんどのLinuxディストリビューションには、vimtutorコマンドがインストールされています。 Vimの知識を磨いたり、Vimコマンドを練習したりしたい場合は、ターミナルでvimtutorを実行してください。
Vimのスキルを次のレベルに引き上げたい場合は、MasteringVimQuicklyリソースを強くお勧めします。投資する価値があります。
このガイドがVimの使用を開始するのに役立つことを願っています。質問や提案があれば、コメントを残してください。