Help us understand the problem. What is going on with this article?

Virtual-Replace

More than 5 years have passed since last update.

本記事は Vim Advent Calendar 2013 の 47 日目の記事です。
46 日目は @zoncoen さんによる、Unite-autojumpをつくった でした。

今回は地味に便利なあの機能です。

まとめ

:help gR
:help Virtual-Replace-mode

よくある話

あなたが不幸にも以下のようなコメントに出会ってしまったとします。

/********************************************/
/*                                          */
/*  関数の処理:                             */
/*              2014年1月16日 氏名          */
/*                                          */
/********************************************/

もちろん空白部分は全てハードタブです。
または、以下のようにスペースで整形された表組みを編集するような場合もあるかもしれません。

|         |         |         |
|---------|---------|---------|
|         |こ↑こ↓   |         |
|---------|---------|---------|
|         |         |         |

これを置換 R で書き換えようとすると文字幅の差によって、悲しみがあります。

/********************************************/
/*                                          */
/*  関数の処理:    process*/
/*              2014年1月16日 氏名         */
/*                                          */
/********************************************/
|         |         |         |
|---------|---------|---------|
|         |here |         |
|---------|---------|---------|
|         |         |         |

悲しみです。

Virtual-Replace

Vim には Virtual-Replace-Mode というものがあり、gR で開始します。
これは文字幅・タブ幅を維持したまま置換を行ってくれます。

※イメージ図
/********************************************/
/*                                          */
/*  関数の処理: function process            */
/*              2014年1月16日 氏名          */
/*                                          */
/********************************************/
※イメージ図
|         |         |         |
|---------|---------|---------|
|         |here!    |         |
|---------|---------|---------|
|         |         |         |

余談

g プレフィックスのキーバインドには色々と便利な機能があります。
gj gk に始まり、ga gd gf などです。個人的なお気に入りは
g<C-]> です。ぜひ試して使いこなしてみてください。

余談 2

Virtual-Replace、かっこいいですよね。響きが。私だけかもしれません。

以上 Vim Advent Calendar 2013 47 日目の記事でした、次回 48 日目は未定です。
Vim Advent Calendar 2013 では執筆者を募集しています。あと 318 人書けますので、どんどんやっていきましょう。以上です。

s_of_p
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした