Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

単発繰り返し(ドット)を使って置換する

$
0
0

概要

この記事はVim Advent Calendar 2017の6日目の記事です。

vimの操作は覚えたけれど、上手く編集できない人に向けて、単発繰り返しを使っての置換について書きます。

「単発繰り返し」について

直前の動作を繰り返すことができるので便利です。※詳しくは、ヘルプ参照 h .

サンプル

説明で使用するテキストになります。

<form><divclass="form-group"><labelfor="exampleInputEmail1">Email address</label><inputtype="email"class="form-control"id="exampleInputEmail1"aria-describedby="emailHelp"placeholder="Enter email"><smallid="emailHelp"class="form-text text-muted">We'll never share your email with anyone else.</small></div><divclass="form-group"><labelfor="exampleInputPassword1">Password</label><inputtype="password"class="form-control"id="exampleInputPassword1"placeholder="Password"></div><divclass="form-check"><labelclass="form-check-label"><inputtype="checkbox"class="form-check-input">
      Check me out</label></div><buttontype="submit"class="btn btn-primary">Submit</button></form>

https://getbootstrap.com/docs/4.0/components/forms/より

置換の手順

  1. /ex検索
  2. ciw入力へ
  3. sample<esc>置換
  4. n.繰り返し

n.は、よく使うのでmapにすると便利です。

私は、次で登録しています。

nnoremap <c-k> n.

検索について

単語検索は、*を使います。*を使うとカーソル下の単語を単語で検索することができます。カーソル下に単語がない場合は、移動して*を実行します。*で入力ミスを確認できるので便利です。また、単語以外の場合は、vi"y/<c-r>"などカッコを利用して検索もできます。

exampleInputEmail1の検索

手順

  1. /ex短い単語で、exampleInputEmail1を探します。
  2. n到達するまで繰り返します。
  3. *で単語検索を開始します。

入力について

単語を入れ替える場合

exampleInputEmail1 → sample

ciwsample<esc>n.

cを使って削除後に入力モードにし、入力しています。

ciw<c-r>0<esc>n.

ソース上に単語が存在する場合は、あらかじめヤンクしておけばペーストするだけで修正できます。入力モードでは、<c-r>0でペーストできます。

単語以外を入れ替える場合

form-control → sample

ci"samle<esc>n.

""で括られている場合は、ci"を使って置換します。

12ssample<esc>n.
""などで指定できない場合は、文字数を使います。

ct"sample<esc>n.
検索を使う方法もあります。数がわからない場合に使います。

先頭に追加する場合

exampleInputEmail1 → sample-exampleInputEmail1

isaple-<esc>n.

末尾に追加する場合

exampleInputEmail1 → exampleInputEmail1-sample

ciw<c-r>"-saple<esc>n.

削除してから入力します。

先頭を修正する場合

exampleInputEmail1 → form-InputEmail1

7sform-<esc>n.

途中に文字を入れたい場合

exampleInputEmail1 → example-InputEmail1

7sexample-<esc>n.

先頭部分は、打ち直します。打った方が早いことは、よくあります。

最後に

vimは色々なコマンドがあるので、色々探してみるのも面白いです。ドットでは難しいことは、マクロや正規表現を使うことで解決できるのでまたの機会に。

ありがとうございました。


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>