Vimの使い方 · 1 min read · Nov 14, 2025
Vimでマーカーを使用し、テキスト選択を行う方法
GUIベースのテキスト/ソースコードエディタを使用する際、テキスト選択などの機能は当たり前のことです。つまり、私たちのほとんどはこれをもはや機能とは考えないでしょう。しかし、Vimのようなコマンドラインベースのエディタではそうではありません。特にVimでは、キーボードのみを使用する場合、希望する方法でテキストを選択するために特定のコマンドを学ぶ必要があります。このチュートリアルでは、この機能とVimの「マーク」機能について詳しく説明します。
しかし、始める前に、このチュートリアルで言及されているすべての例、コマンド、および指示はUbuntu 16.04でテストされており、使用したVimのバージョンは7.4であることを述べておく価値があります。Vimエディタについての基本的な知識があると仮定すると(ない?問題ありません、こちらに進んでください)、’d’コマンドを使用すると行をカット/削除できることを知っているでしょう。しかし、たとえば3行をカットしたい場合はどうしますか?あなたの答えは「コマンドを3回繰り返す」かもしれません。いいえ、しかし、完全な段落(または、いくつかの段落)をカットする必要がある場合はどうでしょうか?最初に手動で行数を数えてから’d’コマンドを実行すること(たとえ’[n]dd’を使用しても)が実用的な解決策でしょうか?
いいえ、それはそうではありません。この場合のより良い解決策は、カット/削除したい行を選択し、その後’d’コマンドを一度だけ実行することです。以下に例を示します:
INTRODUCTIONセクションの完全な最初の段落をカット/削除したいとします。以下のスクリーンショットに示されています:

では、最初の行の先頭にカーソルを持っていき、(挿入モードから出ていることを確認して)’V’(Shift+v)コマンドを入力します。これにより、最初の行が選択され、Vimがビジュアルラインモードを有効にします。

今、私がする必要があるのは、下矢印キーを使用して段落全体を選択することです。

これが私たちが望んでいたことですよね?では、’d’を押すだけで、選択した段落がカット/削除されます。言うまでもなく、カット/削除の他にも、選択したテキストに対して他のオプションを実行できます。
これにより、もう一つの重要な側面に移ります:常に完全な行または行を削除する必要があるわけではありません。その場合はどうしますか?つまり、私たちが話し合った解決策は、完全な行に対して操作を実行したいときにのみ機能します。段落内の最初の3文を削除する必要がある場合はどうでしょうか?
実際、これに対するコマンドもあります - ‘V’の代わりに’v’を使用してください(もちろん、単一引用符は不要です)。以下は、’v’を使用して段落内の最初の3文を選択した例です:

次に、時には扱っているデータが別々の列で構成されており、特定の列を選択する必要がある場合があります。たとえば、以下のスクリーンショットを考えてみてください:
国名のみを選択する必要があるとします。つまり、テキストの2列目を選択する必要があります。この場合、カーソルを問題の列の最初の要素の下に持っていき、Ctrl+vを一度押します。次に、下矢印キーを使用して各国名の最初の文字を選択します:
そして、右矢印キーを使用して、完全な列またはすべての名前を選択します。
*ヒント:何らかの理由でテキストのブロックの選択を解除した場合、再度選択したい場合は、コマンドモードで’gv’を押してください。*
時には、大きなファイル(たとえば、ソースコードファイルやシェルスクリプト)で作業しているときに、特定の場所に移動し、元の行に戻りたい場合があります。問題は、問題の行が遠くない場合や、これを時々行う必要がある場合は問題ありません。
しかし、逆の場合はどうでしょうか - 現在の位置とファイル内のさまざまな遠くの行の間を頻繁にジャンプする必要があります。その場合の解決策はマークを使用することです。現在の位置にマークを付け、その後ファイル内のどこからでもマークの名前を指定することでこの位置に戻ることができます。
Vimで行にマークを付けるには、mコマンドの後にマークの名前を表すアルファベット(利用可能なオプションは小文字のa-z)を続けて使用します。たとえば、ma。今、マークaに戻るには、‘aコマンドを使用します(単一引用符を含む)。
ヒント:マークされた行の先頭にジャンプしたい場合はアポストロフィ(')を、マークの行と列に特にジャンプしたい場合はバックティック(`)を使用できます。
Vimマーカーの他にもさまざまな便利なアプリケーションがあります。たとえば、行にマークを付け、その後別の行に移動して次のコマンドを実行できます:
d'[mark-name]これにより、現在の位置とマークされた行の間のすべてが削除されます。
次に、Vimの公式ドキュメントからの重要な情報をお伝えします:
各ファイルには小文字のアルファベット(a-z)で識別されるマークのセットがあります。さらに、特定のファイル内の位置を識別するために大文字のアルファベット(A-Z)で識別されるグローバルなマークのセットがあります。たとえば、10個のファイルを編集している場合、各ファイルにはマークaがある可能性がありますが、1つのファイルにのみマークAが存在できます。したがって、小文字のアルファベットをVimマークとして基本的に使用する方法について説明しましたが、大文字のアルファベットがどのように役立つかについても説明します。以下の抜粋がそれを明確に示しています:
その制限のために、大文字のマークは一見すると小文字の対応物よりも多用途ではないように見えるかもしれませんが、この機能により「ファイルブックマーク」のクイックな形として使用できるようになります。たとえば、.vimrcを開き、mVを押してVimを閉じます。次回、.vimrcを編集したいときは、'Vを押すだけで開くことができます。最後に、マークを削除するには、’delmarks’コマンドを使用します。たとえば:
:delmarks a前述のコマンドは、ファイルからマークaを削除します。もちろん、マークを含む行を削除すると、そのマークも自動的に削除されます。マークに関する詳細情報は、Vimのドキュメントを参照してください。
Vimを主要なエディタとして使用し始めると、このチュートリアルで説明したような機能は、あなたの時間を大いに節約する便利なツールとなります。ご同意いただけるように、ここで説明した選択とマークの機能にはそれほどの学習曲線はありません - 必要なのは少しの練習だけです。
HowtoForgeのVim関連の記事の完全なカバレッジについては、こちらに進んでください。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。