Vim6スクリプトお勉強スレat UNIXVim6スクリプトお勉強スレ - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト102:KoRoN@Vim%Chalice ◆ALICEsdk 02/01/12 03:16 >>101 あ、逆でした。>>100は'cpoptions'に"C"が含まれる時には行頭の \ が連結の意味に ならない、といので正しいです。 103:mattn@Vim%Chalice 02/01/12 19:32 >>74 > resolve() ショートカット先を探す(MS-Win) あれ~・・・ bram氏、docの変更忘れてんのかなぁ・・・(^^;) unix系はシンボリックリンクを解析するよう変更したはずのに・・・ と言っても訳は間違ってないのでsage 104:1 02/01/12 23:16 foo.vim解読の続き。 現在の文書から引数で指定した単語を最後の行に出力するスクリプト。 :%call Pippo('\\\a\+') とやって LaTex での辞書を作る為の単語を収集するのに使うらしい。 (LaTex使ったこと無いからよくわからんけど) fun! Pippo(...) range if a:0 let pat = a:1 else let pat = '\<pippo\d\+\>' endif let bot = line("$") execute a:firstline . "," . a:lastline . 'g/' . pat . '/copy $' if bot == line("$") return endif execute (bot+1) . ',$s/' . pat . '/&\r/ge' execute (bot+1) . ',$v/' . pat . '/d' execute (bot+1) . ',$s/.\{-}\(' . pat . '\)$/\1/e' endfun 選択したテキストがこれ。先頭のは :set nu で表示した行番号。 10 pippo1 aaa pippo2 bbb 11 pippo3 12 ccc そこで :10,12call Pippo() を実行すると :10,12g/\<pippo\d\+\>/copy $ が呼ばれ て、10~12行目でpippoの後に数値がある単語が含まれる行を最後の行にコピーすると いう意味だから、最後の行が50だとこうなる。 50 51 pippo1 aaa pippo2 bbb 52 pippo3 copy はノーマルコマンドの p 同じような機能らしいから次行からペーストされる。 :51.$s/\<pippo\d\+\>/&\r/ge が実行される。& は検索文字列。\r は改行だから検索 文字列の直後に改行入る。 51 pippo1 52 aaa pippo2 53 bbb 54 pippo3 次に :51,$v/\<pippo\d\+\>/d の実行。v は検索されなかった行を返す。d は :delete の事だから、 51 pippo1 52 aaa pippo2 53 pippo3 次に :51,$s/.\{-}\(\<pippo\d\+\>\)$/\1/e は pippo数値 の単語だけを残すから、 51 pippo1 52 pippo2 53 pippo3 になると。ふぅ勉強になった。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch