LoginSignup
2
2

More than 5 years have passed since last update.

Vimで複数行の行末に拡張子を付ける

Last updated at Posted at 2015-06-09

前置き

環境として MacVim を使用しています。
筆者はKaoriya版を使用しておりません。

概要

Vimで複数行の行末にヤンクした拡張子を貼り付ける方法です

やり方

1,
c_step1.png
こんなファイルが有ります。

2,
c_step2.png
".txt" の . にカーソルを置き、vey とキーを押して拡張子をヤンクします。
v = ビジュアルモードにする
e = 単語の終わりまでカーソルを移動
y = ヤンク(コピー)

拡張子が .txt.temp.hoge の様に単語が複数並ぶ拡張子の場合などは、
e の代わりに行末まで一気に行ける $ を押しても構いません

3,
c_step3.png
0 を押して行頭にカーソルを戻します

4,
c_step4.png
拡張子を付けたい行へジャンプします。
今回の場合 4gg で指定行へのジャンプが出来ました。

5,
c_step5.png
C-v で矩形ビジュアルモードにします。

6,
c_step6.png
G を押して最終行までジャンプします。
今回はファイルの最終行までを指定していますが、jk キーで拡張子をつける行を任意に選択して下さい。

7,
c_step7.png
$ を押してそれぞれ最終行まで選択します。

8,
c_step8.png
A を押して、入力モードにします。
画像では見えてませんが、カーソルは選択した一番上の行の行末にあります。

9,
c_step9.png
ここからが重要です。
先ほどヤンクした拡張子を C+r " の順で入力しペーストします。
C+r = レジストレジスタから何か呼び出す準備です。
" = 最後をヤンクをレジストレジスタから呼び出します。

どうしてかは分からないのですがここで通常の Ctrl+v Command+v をすると選択した行で失敗します。
なので、クリップボードからのコピペではなく、レジストレジスタからペーストして下さい。

10,
c_step10.png
ESC キーを叩いて入力モードを抜けます。
そうすると綺麗に選択した行の行末に拡張子が付いているはずです。

おわり

vimから特定のファイルをリストしているファイルがあって、それにファイル名+拡張子としたかったのですが、
今回の操作方法を調べていた所 9, の項目で「入力したい文字をタイプする」と書かれた記事は多く出てきましたが
ペーストして出来る内容の記事が探せませんでした。

vimに詳しい方いらっしゃいましたら、なぜ Ctrl+v Command+v のペーストだとダメなのか教えてもらえると嬉しいです。

以上、参考になると嬉しいです。


追記:

打ち消し線で一部単語を修正しました。
レジスト > レジスタ に修正
macなので、Ctrl > Command に修正

ご指摘有難うございました。

2
2
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2