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

"diw"は "d + i + w" に分けて考える

$
0
0

「vimtutor」で基本操作を勉強したのち、最初につまづいたのが

「"diw" = 単語ごとに削除」

でした。コマンドから意味が推測出来ない。。

色々調べてみたので、勉強したついでに整理してみました。

オペレータの入力ルール

"回数" + "操作" + "範囲" + "単位"の組み合わせで決定する。

  • "回数"は省略可能。(省略した場合は"1"回)
  • "範囲"は"操作"によっては省略可能。(省略した場合は"a"選択と同様)

上記ルールに則って、操作、範囲、単位の引き出しを増やしていけばOKのようです。

詳しくは以下を参照。

操作(代表例)

コマンド説明
d削除 (delete)
yコピー (yank)
p貼付け (paste)
c削除+挿入(change)

範囲

コマンド説明詳細
a単一 (冠詞の'a')区切り文字を含める。
i内側 (inner)区切り文字を含めない。

おそらく一番分かりにくいのがココです。

区切り文字とは、"単位"を区切る文字のことです。

"w"なら空白文字、"t"ならHTMLタグなど。

例1:「this is a pan.」に対する適用範囲(カーソルが先頭"t"に当たった状態)

  • "aw" は「this 」 (空白文字(半角スペース)を含める)
  • "iw" は「this」 (空白文字(半角スペース)を含めない)

例2:「<p>this is a pan.</p>」に対する適用範囲(カーソルが先頭"<"に当たった状態)

  • "at" は「<p>this is a pan.</p>」 (HTMLタグを含める)
  • "it" は「this is a pan.」 (HTMLタグを含めない)

単位

文字

コマンド説明詳細
w単語 (word)アルファベット、数字、アンダースコアの連続した文字
※詳細は「:help word」参照
W単語 (WORD)word + 非空白文字(括弧や引用符など)で連続した文字
※詳細は「:help WORD」参照
s文 (sentence)'.', '!', '?' で終わり、その後に行末かスペースもしくはタブが続く文字列
※詳細は「:help sentence」参照
p段落 (paragraph)空行で囲われた文節の塊り
※詳細は「:help paragraph」参照
tHTML,XMLタグ (tag)

ブロック

コマンド説明
b または ( または )( )ブロック(block)
B または { または }{ }ブロック(Block)
[ または ][ ]ブロック
< または >< >ブロック

引用符

コマンド説明
'シングルクォーテーション
"ダブルクォーテーション
`バッククォート

具体例

あとは上記内容を組み合わせればOKです。

タイトルにも挙げた"diw"は

"diw" = (delete inner word) =単語ごとに削除

と分かります。

「this is a pan.」(カーソルが先頭"t"に当たった状態)で"diw"を実行すると、

"iw"(inner word) で指定した適用範囲「this」を"d"(削除)するので

「 is a pen.」

という結果になります。

参考

勉強するにあたり、以下のサイトが分かり易かったです。


Viewing all articles
Browse latest Browse all 5608

Trending Articles



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