COMPANY SERVICE STAFF BLOG NEWS CONTACT

STAFF BLOG

スタッフブログ

TECHNICAL

テクログ

2024.01.31

僕の好きなVimコマンドの話

テクログdevelopment

はじめに

今回は僕が一番好きなVimコマンド、.(ドット)コマンドを紹介したいとおもいます。
Vimってhjklでカーソル移動して、iで文字入力モード、で通常モード「:wq」で保存して終了する
なんだかわからなくて操作するのが怖いエディタだよねっていう方対象です。
ある程度知っている人はそれほど新しい発見はないと思います。

.コマンドとは

Vimドキュメントには.コマンドの説明に「最後の編集を N 回繰り返す。」とあります。
最後の編集というところがミソで、さまざまな編集に対応できるというところが.コマンドの魅力です。

.コマンドの使い方

test

カーソル位置が先頭のtの状況で「x」を入力すると

est

となり、カーソル位置であった、先頭のtが消えます。
eがカーソル一の状態で「.」を押すと、eが消えます。
最後の編集がxになっているからです。

st

「N 回繰り返す」のN回は.の前に数字を入力すると、
その回数だけ繰り返されます。

st

カーソル位置が先頭の状況で「2.」と入力すると、
2回カーソル位置の文字を消すので、文字が消えた状態になります。

ここまでではxを.に置き換えただけなので、.コマンドを使う旨みがありません。

お得な.コマンド

 使用例1

test1
test2
test3

1行目にカーソルがある状況で「dd」と入力すると一行目が消えます。

test2
test3

続けて、test2にカーソルがある状況で「.」と入力すると

test3

となり、「dd」と入力するのと比較すると、押すキーの数が一つ少なくなりました。

 使用例2

This mountain is higher than that one.

一つ目のmountainのどこかにカーソルがある状況で、
「daw」と入力すると、

This is higher than that one.

になり、「.」を入力すると以下のようになります。

This higher than that one.

押すキーの数が二つ少なくなりますね。

 使用例3

$string = "(arg1: "+$user+"arg2: "+$shop+")"

カーソル位置が先頭の状態で、「f+」と入力し、+までカーソルを移動し、
「s<Space>+<Space><Esc>」と入力する(<Space>はスペースキー、<Esc>はエスケープキー)と

$string = "(arg1: " + $user+"arg2: "+$shop+")"

カーソル位置の文字が消えて、インサートモードで「 + 」が入力され、↑のようになります。
次に「;」で最後のfを再度行い、「.」で次の+の前後に空白が入ります。

$string = "(arg1: " + $user + "arg2: "+$shop+")"

「;」「.」「;」「.」

$string = "(arg1: " + $user + "arg2: " + $shop + ")"

.コマンド一回につき4キー分お得ですね!

※使用例3のような場合、数が多ければ置換でもいいと思いますが、.コマンドの汎用性の高さを示したかったので。

おわりに

編集の方法は他にもあるので、それらを身につけて、
一回の編集を意味のある一つの塊にまとめる力がつけば、
.コマンドは汎用的に使えて便利です。

打つキー数を少なくして編集できるようになるので、ぜひ使ってみてください!

この記事を書いた人

ばんばん

入社年2021年

出身地大阪府

業務内容WEB開発

特技・趣味ゲーム、読書

テクログに関する記事一覧

TOP