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

vimでdeleteいろいろ

$
0
0

最初viの使いにくさとカスタマイズの弱さが嫌で長らくemacserだったのですが、NeoBundleとかを知ってからvimに乗り換えています。
.vimrcをいろいろいじると簡易なIDEとしても十分使え...ることもありますし(go言語の場合はかなりよい)、colorschemeがイイカンジですから。

改めていろいろ使ってみると「こんなのあったらいいなあ」→「実はありました!」みたいなのが多くて驚きます。
今回はdeleteについてメモ代わりにまとめてみました。

基本的なお話(おさらい)

vimの場合、delete(削除)は消したい位置にカーソルを持って行ってコマンドモードで
d<enter>もしくはdd(1行削除)
みたいにします。つまりdがdeleteコマンドです。念のため。

今回のお題

こういう行があったとします。

          hello, xdelete!!!
  • 左側の空白を削除したい

あっちこっちで編集してるとうっかりハードタブとソフトタブ(スペース)が入り混じったりしてインデントがぐちゃぐちゃになるケースって結構あると思います。そのときは左側の空白を一回消してタブ打ち直すか!となりませんか?(goだとgo fmtがあるから無敵か...)
こういう場合は行頭にカーソルを移動してから
d/h<enter>(文字'h'より手前を削除)
または正規表現を使って
d/\S<enter>('\S'(空白以外の文字)より手前を削除)でOK。
文字数がわかってれば10xでもいいんですが上記のようにハードタブと混じってるとアウトですし。
結果はもちろん

hello, xdelete!!!

になります。

  • 特定の文字まで含めて削除したい

xdeleteのxがイヤンな感じなので消します。
この場合はdfx(文字'x'を含めて削除)。
結果は

delete!!!

になります。

  • カーソルがどこにいてもその単語をまるまる消したい

例えばカーソルがhelloの最初のlの前にいた場合、単純にdwってすると

          he, xdelete!!!

になりますが、dawとすると単語がまるまる消えて

          , xdelete!!!

になり、daWとすると続くカンマと空白まで消えて

          xdelete!!!

となります。

補足

他のコマンド、c, y, tなどでも同じように使えます。


Viewing all articles
Browse latest Browse all 5608

Trending Articles



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