新着記事

2006年03月18日

指定したカラム位置にテキストを流し込む (vimエディタ)

例えば、下のようなSQL文があるとして、
insert into card_info values ('NW0001', 'ALFKI');
insert into card_info values ('NW0002', 'ALFKI');
insert into card_info values ('NW0003', 'ALFKI');
insert into card_info values ('NW0004', 'ALFKI');

このSQL Insert文を、下のように修正する場合の話。
insert into card_info (card_id, customer_id) values ('NW0001', 'ALFKI');
insert into card_info (card_id, customer_id) values ('NW0002', 'ALFKI');
insert into card_info (card_id, customer_id) values ('NW0003', 'ALFKI');
insert into card_info (card_id, customer_id) values ('NW0004', 'ALFKI');



このように修正する場合、
"card_info"と"values"の間、左から23列目の位置に
"(card_id, customer_id) "という
テキストを入れる必要がありますよね。


こういうテキスト変換処理は「%c」を使うと楽なんです。



置換処理で「%c」を使うと、あるカラムを指定することができるので、
まず、変換する範囲を指定して、
vim_per_c_select.jpg

:'<,'>s/\%23c
次に「%c」でテキストを差し込むカラム位置を指定、
(%は\でエスケープする。)
vim_per_c_pre.jpg

:'<,'>s/\%23c/(card_id, customer_id) /
差し込むテキストを入力して実行。
vim_per_c_post.jpg

これで、23列目の位置にテキストを流し込むことができます。
(指定したカラムにあった文字は置き換わらないで、
入れたテキストの長さの文だけ、右側にずれます。)
vim_per_c_replaced.jpg



この置換を使う場合、カラム位置が即座には分からないでしょうから
カーソルのある場所のカラム番号をステータスラインに表示しておくと、
便利だと思います。
vim_per_c_statusline.jpg




本日は以上です。
ではー。



名無しのVIM使いは移転しました。
http://members.jcom.home.ne.jp/advweb/ => http://nanasi.jp/

posted by 小見 拓 at 00:33| Comment(4) | TrackBack(0) | 基本 (vimエディタ) | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
こういう場合は、C-v して values の直前の所を選択してから、I で入力した方が列番号とか気にしなくて良いからお手軽ではないでしょうか。
Posted by takayama at 2006年03月18日 09:44
すんごく楽になったよ( ´@`)
Posted by こみ at 2006年03月18日 15:06
> C-v して values の直前の所を選択してから、I で入力
詳しく教えてもらえませんか?
Posted by とおりすがり at 2006年03月19日 18:49
1. Ctrlキー押しながらVでテキストを入れる場所を縦に選択する。
2. その状態で、「,」→「I」の順でキーを入力すると、入力モードになる。
3. テキストを入力する。
4. ESCキーか、Ctrlキーを押しながら[キーを押す。
5. すると、あら不思議。先ほど選択していた下の行にも同じテキストが入力される。

という方法です。

これは良い方法なので、いずれ解説することにしましょう。
( 私は使いこなしてなかったけどねヽ(`Д´)ノ )

Posted by こみ at 2006年03月20日 12:19
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/14996060
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック
記事検索

カテゴリ
最近のコメント
calendar.vimには日記をつける機能があったらしい。
 ⇒ とまと (03/07)
最近よく見るようになったvimスクリプトのコメントの書き方
 ⇒ 小見 拓 (02/13)
 ⇒ kana (02/11)
vimエディタ ヘルプのgrep
 ⇒ みかん (07/15)
指定したカラム位置にテキストを流し込む (vimエディタ)
 ⇒ こみ (03/20)
 ⇒ とおりすがり (03/19)
 ⇒ こみ (03/18)
 ⇒ takayama (03/18)
tempfile -- Generate temporary files (Mac OSX)
 ⇒ take3 (01/20)
 ⇒ こみ (01/19)
 ⇒ take3 (01/18)
 ⇒ こみ (01/17)
 ⇒ take3 (01/14)
WebObjectsのオープンソースプロジェクト Project Wonderってなんじゃろな。#2
 ⇒ (06/30)
 ⇒ Tetsuya Kuramochi (06/29)
 ⇒ Tetsuya Kuramochi (06/29)
WebObjectsのオープンソースプロジェクト Project Wonderってなんじゃろな。#1
 ⇒ (06/03)
 ⇒ Tetsuya Kuramochi (06/02)
最近のトラックバック
過去ログ
Profile
小見 拓
mail@nanasi.jp
小見と申します。
神奈川でデベロッパーやってます。
名無しのVIM使い

RSS 1.0