[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 03/18 19:04 / Filesize : 368 KB / Number-of Response : 974
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Vim6スクリプトお勉強スレ



49 名前:ヘッポコ訳者 ◆xBY/hgW2 mailto:sage [01/12/24 23:14]
41.5 式の実行

今んところコマンドは全部 Vim から直接実行されてたわけなんだが,
":execute" コマンドを使えば式の結果を実行する事が出来るぞ.こいつを使う
とコマンドを作って実行する時にカナリ便利!!

例として,変数に含まれてるタグまでジャンプするのを挙げてやろう.

:execute "tag " . tag_name

"." は "tag " という文字列と, "tag_name" という変数に格納されてる値
を結合するのに使ってるんだぞ.つまり "tag_name" って変数の値が
"get_cmd" だったとすると,

:tag get_cmd

っていうコマンドが実行される事になるわけよ.

":execute" コマンドはコロンコマンド(colon commands)しか実行出来ねーから
な.":normal" コマンドを使えばノーマルモードのコマンド(Normal mode
commands)が実行出来るぞ.でもその場合は引数は式じゃなくって,コマンドと
なる文字だからそこんとこ分かっとくよーに.つまり,

:normal gg=G

ってやると,最初の行にジャンプしてから "=" の操作によって最後の行までを
整形するってわけ.

":normal" を式と一緒に使いたければ,":execute"と組み合わせればいいぞ.
つまり,

:execute "normal " . normal_commands

ってやればいい."normal_commands" に格納されてる値はノーマルモードの
コマンドになる文字じゃないとダメなのは当然な.

":normal"
コマンドへの引数は完璧なコマンドじゃなきゃダメだぞ.そーしねーと Vim は
引数の最後まで実行した後はそのままそのコマンドを終了しちまうからな.
 # つまり,引数で指定されたコマンド以上の事は何一つとして余計な事は
 # しないって意味でしょうな,たぶん.
例えば,挿入モードを始めて,そこから抜け出すなんて事も出来る.

:execute "normal Inew text \<Esc>"

これで,カレント行に "new text " っていう文字列を挿入するぞ.特殊キー
"\<Esc>" を使ってるところに御注目あれ.こーすれば実際のエスケープ文字を
スクリプトに書かなく済むわけだ.






[ 続きを読む ] / [ 携帯版 ]

全部読む 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<368KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef