[VimT] テキストオブジェクト¶
まとまりを表すモノ。 想定時間: 10分
オペレータの範囲に幅を持たせる用途1で使います。モーションのように単独では使えません。
di"
と押してみましょう。d
は削除オペレータですが...
▼
I play tennis with "Ichiro" every day!
i"
はダブルクォーテーションの内側(inner ")
というまとまりを指すテキストオブジェクトです。
a
とi
¶
テキストオブジェクトはほぼ必ず2a
かi
から始まります。
i
は内側。inner
の略a
は外側を含む。a
そのまま
私はinside
とaround
の方がしっくり来ました。
da"
と押して、di"
との挙動が違うことを確認しましょう。
▼
I play tennis with "Ichiro" every day!
オススメテキストオブジェクト¶
a
とi
は省略します。
テキストオブジェクト | 意味 | 備考 |
---|---|---|
w |
単語 | wordの略 |
W |
空白で区切られたブロック | wordの略 |
p |
段落 | paragraphの略 |
" |
"" の範囲 |
現在行の次に出現する範囲が対象 |
' |
'' の範囲 |
現在行の次に出現する範囲が対象 |
) |
() の範囲 |
現在位置が() 内であることが必要 |
] |
[] の範囲 |
現在位置が() 内であることが必要 |
} |
{} の範囲 |
現在位置が{} 内であることが必要 |
よく使うオペレータ+テキストオブジェクト¶
実践的な操作をしてみましょう。
Change inner word ---> ciw
¶
単語を変更するため、ciw
と入力してからそのまま好きな単語を書いてみましょう。
▼
I like Vim the most in the world.
Change inner "..." ---> ci"
¶
ダブルクォーテーションの中身を変更するため、ci"
と入力してからそのまま好きな単語を書いてみましょう。
▼
I like "Vim" the most in the world.
Delete a "..." ---> da"
¶
ダブルクォーテーションで囲まれた単語をダブルクォーテーションごと消すために、da"
と入力してみましょう。
▼
I like "Vim" the most in the world.
c
はi
と、d
はa
と連携することが多いです。
Delete a paragraph ---> dap
¶
main関数を削除するため、dap
と入力してみましょう。
#!/bin/env python
def main():
▼
print("hogehoge")
pass
main()
Yank a {...} ---> ya}
¶
{}
で囲まれた部分を{}
を含めてyankするため、ya}
と入力してみましょう。
{
"id": 1,
"name": "Ichiro",
"favorite": {
"food": ["apple", "orange"],
▼
"animal": ["dog", "cat"],
}
}
好きなところに移動してp
を押すと貼り付けられます。
-
オペレータのためだけに存在するわけではない ↩
-
https://vim-jp.org/vimdoc-ja/motion.html#text-objects の記載には全てついている ↩