1 名前:名無しさん@お腹いっぱい。 [01/12/17 12:15] みんなでスクリプトを覚えよう
157 名前:1 [02/02/02 23:04] foo.vim解読の続き。 カレントウィンドウをマウスの左クリックで切り替えた時に、 前のウィンドウの入力モードを保持するスクリプト。 inoremap <LeftMouse> <Esc>:let w:lastmode="Insert"<CR><LeftMouse> \ :if exists("w:lastmode") && w:lastmode=="Insert"<Bar> \ startinsert<Bar>endif<CR> nnoremap <LeftMouse> <Esc>:let w:lastmode="Normal"<CR><LeftMouse> \ :if exists("w:lastmode") && w:lastmode=="Insert"<Bar> \ startinsert<Bar>endif<CR> 前者は挿入モードで左クリックされた場合でウィンドウローカルなユーザー変数 lastmode を "Insert" に設定。後者はノーマルモード時で "Normal" に設定する。ん で左クリックでウィンドウに戻ってきた時、lastmode == "Insert" だったら、 startinsert にする。startinsert はスクリプトが終了した後に挿入モードになる命令 らしい。 おまけ。 nmap (マッピングあり) と nnoremap (マッピングなし) の違いをテスト。 ↓マッピングありの場合 _a → _b → OKの表示 :nmap _a _b :nmap _b :echo "OK"<CR> ↓マッピングなしの場合 _a → _b で何も起こらない :nnoremap _a _b :nmap _b :echo "OK"<CR> これで foo.vim 解読は全部終わり。
158 名前:151 mailto:sage [02/02/03 01:29] > 1さん おつかれさまです。
159 名前:1 [02/02/05 01:38] これこそVimの醍醐味!? シンタックスハイライト設定のお勉強その1 とりあえず独自の設定を作ってみる。 まず :set filetype=memo と設定した時には runtime/syntax/memo.vim というファイル を vim は開こうとするようなので runtime/syntax/memo.vim を作ってみる。 中には↓これを書いてみる。 highlight MemoHead guifg=#00FFFF syntax match MemoHead display "^■.*" 水色設定を MemoHead って名前にして正規表現 ^■.* にマッチする部分を MemoHead の設定色にするという意味。 んで適当なファイルを開いて行頭から ■なんとか と書く。 んで :set filetype=memo を実行。「■なんとか」 の行が水色になったら成功と。 もうちょっと調べたいけど、もう寝ないとやべぇ。
160 名前:名無しさん@お腹いっぱい。 mailto:sage [02/02/06 00:23] スクリプト実行してるとき例えば exe "normal i\<C-D>" ってなってると i_CTRL-D が実行されるけど、 これってユーザー毎に Mapping を変更していたら違う結果が返ってくるよね? これを Mapping に依存せずに本来の動作をさせたいんだけど どうすればよいの?
161 名前:160 [02/02/06 00:24] sage が残ってた。 age
162 名前:KoRoN@Vim%Chalice ◆ALICEsdk mailto:koron@tka.att.ne.jp [02/02/06 00:27] >>160 「!」を使ってこうします。 :exe "normal! i\<C-D>"
163 名前:名無しさん@お腹いっぱい。 [02/02/06 00:41] >>162 おお、ありがとう テトリス落としてやってたんだけどなんか表示が変だなって思って調べてたら・・・ 案外こういうのっていいかげんに思われてるんですかねえ。 まあこういう(どんな環境でも動作させようという)意識の差っていうのは個人差があるんでしょうけど。
164 名前:名無しさん@お腹いっぱい。 mailto:sage [02/02/06 00:46] >163 テトリスって?検索したけどわからなかった。 vim でテトリス?
165 名前:160 mailto:sage [02/02/06 00:57] vim.sourceforge.net/ の Recent Script Updates にあったんで試してみた
166 名前:名無しさん@お腹いっぱい。 mailto:sage [02/02/06 01:15] ありがとう、おもしろい。 こんなこともできるんですね。
167 名前:名無しさん@お腹いっぱい。 [02/02/06 01:22] > Source it! To start the game, press <Leader>te. の <Leader> って何?
168 名前:名無しさん@お腹いっぱい。 mailto:sage [02/02/06 01:23] :h <leader> 設定してなければ\らしい
169 名前:160 mailto:sage [02/02/06 01:24] オレもよう分からんけどとりあえずノーマルモードで \te ってやったらできるぞ
170 名前:167 mailto:sage [02/02/06 01:46] >168,169 thanx!
171 名前:名無しさん@お腹いっぱい。 [02/02/10 22:36] emacsの〜-modeみたいに、新しい言語のモードを作ろうと思った場合、 vimではどうやるんですか?
172 名前:名無しさん@お腹いっぱい。 [02/02/10 23:02] >>171 :help ftplugin :help mysyntaxfile
173 名前:名無しさん@お腹いっぱい。 mailto:sage [02/02/12 18:59] Tetrisに続いてSokobanなるゲームが(w まだ試してないけど。
174 名前:1 [02/02/12 23:00] >>173 遊んでみました。 j と k のマッピングが逆になってたから直さないとやり辛いよ(w Tetirsと違ってソースは解り易く書かれててうれしいね
175 名前:名無しさん@お腹いっぱい。 mailto:sage [02/02/13 19:17] >>174 マッピングは明らかなミスですよね。まだアップデートされてないみたい だけど。そんなことよりレベル1で258歩も歩いてしもた…。鬱打。
176 名前:名無しさん@お腹いっぱい。 [02/02/17 23:29] age
177 名前:名無しさん@お腹いっぱい。 mailto:sage [02/02/18 00:42] カーソル行のフォールドが開いてるか閉じてるかを調べる関数、乃至 変数なんて無いですよね。今後実装されるかは別として。 何で聞くかというと、それで困ってる人がいるんですよ。winmanagerの 作者さんなんだけど。
178 名前:KoRoN@Vim%Chalice ◆ALICEsdk mailto:koron@tka.att.ne.jp [02/02/18 00:49] >>177 See :help foldclosed() and its families.
179 名前:177 mailto:sage [02/02/18 00:50] スレ違いかな? ま、マルチポストは控えときます。
180 名前:177 mailto:sage [02/02/18 00:51] >>178 うわ、見ずに投稿しちった。スマソ
181 名前:KoRoN@Vim%Chalice ◆ALICEsdk mailto:sage [02/02/18 01:09] >>177 天気予報みたいだね
182 名前:177 mailto:sage [02/02/18 01:19] >>178 改めて、有難うございます。言い訳ですが、作者さんは、foldlevel という 関数はご存知でしたし、ずいぶん長いこと悩んでる様だったので、 てっきり調べ尽くしてるものと思っちゃいました。あと、今yahooのvim-ml のアーカイブを見たんですが、すでにそこで回答を得られてたようです。 二重に失礼。 # もっとヘルプ読もう。
183 名前:177 mailto:sage [02/02/18 01:21] >>181 あ、今気付いた。なんか嬉しい。てか、また見ずに投稿(以下略
184 名前:KoRoN@Vim%Chalice ◆ALICEsdk mailto:sage [02/02/18 01:30] >>183 (>177) 刑法177条は(以下略)。昔、そういうゲームも(以下略)
185 名前:177 mailto:sage [02/02/18 18:23] >>184 > 刑法177条は ガ━━(゚Д゚;)━━ン!せっかく気に入ってたのに…。 # 開き直ってコテハンにでもするか。
186 名前:名無しさん@お腹いっぱい。 [02/02/19 00:11] Linux版のVIMの日本語判定をどうにかするスクリプト作って〜♥
187 名前:名無しさん@お腹いっぱい。 mailto:sage [02/02/19 00:33] >>186 「どうにかする」は「無効にする」もしくは「決め打ちする」と 解釈してよろしいでしょうか?
188 名前:KoRoN@Vim%Chalice ◆ALICEsdk mailto:koron@tka.att.ne.jp [02/02/19 08:56] >>185 (177) > # 開き直ってコテハンにでもするか。 漢を感じちゃった。カコ(・∀・)イイ!! >>186 187の言う通り、どうして欲しいのかを具体的にハッキリさせてくれたら書く可能性 が高いです。というよりも、既に書いてある可能性も高いけど。
189 名前:名無しさん@お腹いっぱい。 [02/02/19 22:06] >>186 >>187 正しく判定するようにして〜♥
190 名前:KoRoN@Vim%Chalice ◆ALICEsdk mailto:koron@tka.att.ne.jp [02/02/19 23:10] >>188 私の環境では判定について特に問題はないので、 具体的にどういうときに誤判定するのか教えてくれないと 修正のしようがありません。 またeuc-jpの文がcp932の半角カナ文として認識されてしまうことがあるのは、 それは基本的には仕方のないことでしょう。
191 名前:名無しさん@お腹いっぱい。 [02/02/19 23:17] Linux版だと確実にcp932とeuc-jpの判定に失敗する。 fileencodingsで先に書いてる方になっちゃう。
192 名前:名無しさん@お腹いっぱい。 mailto:sage [02/02/19 23:47] テキストの最初の方の行に「焼肉定食」と入れておくと吉かも 漏れはそうしてる(藁
193 名前:KoRoN@Vim%Chalice ◆ALICEsdk mailto:koron@tka.att.ne.jp [02/02/20 02:14] >>191 2つおかしい点が。 1. encをeuc-jpにしている場合にはfencsにeuc-jpを含めるべきではない。 2. 「確実に」は疑わしい。 「euc-jpのファイルをcp932として誤読することがある」というならば納得します。
194 名前:名無しさん@お腹いっぱい。 [02/02/23 00:46] ∩ | | | | | | | | ∧_∧ | | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ( ´Д`)/ / < 先生!忙しいんですか? / / \________________ / /| / __| | .| | \  ̄ ̄ ̄ ̄ ̄ ̄ ̄\ ||\ \ ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄ || || ̄ ̄ ̄ ̄ ̄ ̄ ̄|| .|| ||
195 名前:KoRoN@Vim%Chalice ◆ALICEsdk mailto:sage [02/02/23 03:09] >>194 25日までは死ねます。
196 名前:名無しさん@お腹いっぱい。 [02/03/02 01:50] 空揚げ
197 名前:オコジョさん mailto:sage [02/03/02 02:32] ん?カラアゲ?.....どこだ?
198 名前:名無しさん@お腹いっぱい。 mailto:sage [02/03/06 02:48] ほとんど(全部に近い) KoRoN さんのおかげですが、現在行の URL を開くスクリプト。 chalice.vim から、OpenURL と DoExternalCommand を借りてくれば動くのでは? win では動きました。 " " 現在行に URL 文字列があるとき、それを取得しOpenURLへ渡す " URL 文字列がない場合素の <CR> を実行 " function! s:CheckURL() let url = matchstr(getline("."), '\([-#%&+,./0-9:;=?@A-Za-z_~]\+\ )') if url != '' call <SID>OpenURL(url) else :exe "normal! \<CR>" endif endfunction "map 定義 nnoremap <silent> <buffer> <CR> :call <SID>CheckURL()<CR> 既にありそうですね。
199 名前:良スレ救済 [02/03/11 00:32] age
200 名前:名無しさん@お腹いっぱい。 [02/03/16 21:24] 1さん & ヘッポコ訳者さん 降臨希望age
201 名前:名無しさん@お腹いっぱい。 [02/03/21 17:39] 保全age
202 名前:名無しさん@お腹いっぱい。 [02/03/22 00:38] 指定した単語の個数を数える関数ってないですか? :g/pattern/let n=n+1 だと同じ行にふたつ以上あってもひとつとしか数えないので。
203 名前:Vim6スレからお引っ越し mailto:sage [02/03/23 01:19] com! Test call <SID>VimTest() let s:foo = 'foo' fun! s:VimTest() python << EOF from vim import * foo = eval('s:foo') print foo hoge = 'hoge' buf = '"'+hoge+'"' command('let s:test='+buf) command('call s:Show()') EOF endfun fun! s:Show() execute 'echo s:test' endfun こうすれば、変数を渡せました。 出来たのでまとめとしてここに書いておきます。 KoRoN さんありがとうございました。
204 名前:KoRoN@Vim%Chalice ◆ALICEsdk mailto:koron@tka.att.ne.jp [02/03/24 13:23] 最近、漫画「ヒカルの碁」の影響を受けて碁を始めたので(苦笑)、碁盤スクリプトを 作ってみました。 www.kaoriya.net/dist/goban_vim-1.0.tar.bz2 :sourceして:GobanSplitで碁盤ができます。bで黒、wで白、xで石を消せます。誰か 棋譜を作成できるように拡張してみませんか?。
205 名前:名無しさん@お腹いっぱい。 [02/03/31 00:46] age
206 名前:名無しさん@お腹いっぱい。 mailto:sage [02/03/31 14:46] >>204 せっかくだから趙治勲を倒せるvim scriptきぼんぬ
207 名前:mattn@Vim%Chalice mailto:sage [02/04/10 09:15] Calendarちとだけ機能追加... let g:calendar_erafmt = '平成,-1988' let g:calendar_mruler = \'睦月,如月,弥生,卯月,皐月,水無月'. \',文月,葉月,長月,神無月,霜月,師走' let g:calendar_wruler = '日 月 火 水 木 金 土' で 平成14/4(卯月) 日 月 火 水 木 金 土 1 2 3 4 5 6 7 8 9*10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 こんな風になります。 これがいっぱい設定できれば >>114 > これに加えて「平成14年」とか「皇紀2662年」 > とかいう表記ができたらまさにパーフェクト(苦笑) パーフェクトへ一歩近づけますか?(笑)
208 名前:KoRoN@Vim%Chalice ◆ALICEsdk mailto:koron@tka.att.ne.jp [02/04/10 13:17] >>207 let calendar_erafmt = '皇紀,660' とかやってみました。最高です!
209 名前:名無しさん@お腹いっぱい。 mailto:sage [02/04/10 14:49] ('-`).oO○(ヒジュラ暦。。。
210 名前:名無しさん@お腹いっぱい。 [02/04/11 05:54] 以前ここで紹介されたテトリス、すごい人気になってますね。 vim.sourceforge.net/scripts/script.php?script_id=172
211 名前:名無しさん@お腹いっぱい。 [02/05/01 08:57] 保守上げ
212 名前:KoRoN@Vim%Chalice ◆ALICEsdk mailto:koron at tka.att.ne.jp [02/05/06 10:01] ネタ出し。普通の人が考えるいわゆるアウトライン機能。 - outlineMode.vim URL: vim.sourceforge.net/scripts/script.php?script_id=287 必要軟件: ctags 必要設定: let Flist_Ctags_Cmd = 'ctags' " $PATHが通ってない時はフルパスで指定 使用方法: Cのソースを開いて<F2>で起動。起動キーはFlist_Keyで設定可能 - funclist.vim URL: vim.sourceforge.net/scripts/script.php?script_id=273 解説: 上記outlineMode.vimのベースになったスクリプトらしい。
213 名前:名無しさん@お腹いっぱい。 mailto:sage [02/05/06 11:33] >>212 outlineMode.vim(・∀・)イイ! 関数の中にカーソルを置いてると勝手にその関数がハイライトされる…。はじめ てCursorHoldなんてイベントを知りましたよ。
214 名前:名無しさん@お腹いっぱい。 [02/05/08 06:55] KoRoNさんのAutodate.vimがアップされてる。 autodate.vim : Custumizable auto update time stamp tool vim.sourceforge.net/scripts/script.php?script_id=291
215 名前:名無しさん@お腹いっぱい。 mailto:sage [02/05/08 11:18] >>214 こっちより高機能だということは明瞭なんだけどね…。 vim.sourceforge.net/scripts/script.php?script_id=259 え、英語を添削させてくれーっ!!
216 名前:名無しさん@お腹いっぱい。 mailto:sage [02/05/08 11:21] >>215 > え、英語を添削させてくれーっ!! KoRoN氏、確かどっかで英語のドキュメンタリスト募集してたから more than welcomeと思われ
217 名前:名無しさん@お腹いっぱい。 mailto:sage [02/05/08 12:49] This plugin inserts and updates a time stamp automatically. Users can specify a format and position of the time stamp by options. By default, autodate.vim searches a keyword "Last Change: ." in the first 50 lines of the buffer, and inserts a time stamp. Example: Last Change: 07-May-2002. 添削に挑戦してみる。(>>215 さんじゃないけど) 誰か英語力のある人が、とくにマルチバイト関連のやり取りで、バリバリドキュメントを 書いてくれるとうれしいかも。
218 名前:名無しさん@お腹いっぱい。 mailto:sage [02/05/08 12:52] 追加。 autodate.vim の副題 >Custumizable auto update time stamp tool. Customizable
219 名前:名無しさん@お腹いっぱい。 mailto:sage [02/05/08 13:32] >>216 ここかな? pc.2ch.net/test/read.cgi/unix/1019011083/165
220 名前:215 mailto:sage [02/05/08 14:00] >>217-218 ここでやるのはどうかと。
221 名前:名無しさん@お腹いっぱい。 mailto:sage [02/05/08 16:16] >>220 おっしゃるとおりでした。
222 名前:KoRoN@Vim%Chalice ◆ALICEsdk mailto:koron at tka.att.ne.jp [02/05/08 20:02] >>214-221 ありがとうございます。まずは>>217 に差し替え、加筆します。続きを行なう場合は こちらの掲示板を使ってください。 www.kaoriya.net/bbs/bbs.cgi?article=1586
223 名前:名無しさん@お腹いっぱい。 [02/05/15 15:45] taglist.vimあげ。>>212 のfunclist.vimに置き換わるものです。ちなみに outlineMode.vimは引退されたようです。 vim.sourceforge.net/scripts/script.php?script_id=273
224 名前:名無しさん@お腹いっぱい。 mailto:sage [02/05/15 16:30] すばらしい。
225 名前:名無しさん@お腹いっぱい。 mailto:sage [02/05/17 11:03] >>223 これはこれで便利だとは思うけど、ある程度大きいプログラムを扱う時は そのファイルだけじゃなくて全てのファイルのタグが入ってないとあまり 意味がないような気も… 参照したい関数が編集中のファイル内にあることの方が珍しいので。
226 名前: mailto:sage [02/05/17 13:15] >>225 winmanagerに付属のタグ・エクスプローラってのはどう?
227 名前:名無しさん@お腹いっぱい。 [02/05/19 04:35] Vim-Improved eMACS: Emacs emulation for Vim vim.sourceforge.net/scripts/script.php?script_id=300 ワラタ
228 名前:名無しさん@お腹いっぱい。 mailto:sage [02/05/19 05:20] Vimacs utility -1 1 Vim-Improved eMACS: Emacs emulation for Vim emacs.vim color scheme -9 553 Emacs like colors
229 名前:KoRoN@Vim%Chalice ◆ALICEsdk mailto:sage [02/05/19 11:02] >>227 いきなりマイナスに点数がつくんですよね(^-^;;;
230 名前:名無しさん@お腹いっぱい。 mailto:sage [02/05/19 13:23] >>227 メーリングリストまであるがな
231 名前:名無しさん@お腹いっぱい。 mailto:sage [02/05/24 16:17] vimacs では <M-x> は使えないんですか?
232 名前:名無しさん@お腹いっぱい。 mailto:sage [02/05/26 17:11] >>231 しらんけど、elisp動いてるわけでもないのに<M-x>使う意味あるのかなあ? なんなら<M-x>を:にmapするとか
233 名前:名無しさん@お腹いっぱい。 mailto:sage [02/05/27 10:31] >>232 nmap <M-x> : としてますが、動きません。
234 名前:名無しさん@お腹いっぱい。 mailto:sage [02/05/27 10:38] >>233 nmap <Esc>x :
235 名前:名無しさん@お腹いっぱい。 mailto:sage [02/05/27 11:13] 素早いレス thanx です。 emacs のように meta(alt) キーを使っての1ストローク は使えないということでしょうか?
236 名前:KoRoN@Vim%Chalice ◆ALICEsdk mailto:sage [02/05/27 11:53] >>235 完全に把握しているわけではないですが、端末の種類や設定などによって違ってきま す。経験則ではterm経由だと<M->はEscなんとかにと記述してやる必要があります。
237 名前:mattn@Vim%Chalice mailto:sage [02/05/27 12:09] >>235 ソースをみましたが、 おそらく、<m-x> がマルチバイト文字のリードバイトと判断されて いるため、トレイルバイトの入力を要求されているかと思います。 2回入力してませんか?
238 名前:mattn@Vim%Chalice mailto:sage [02/05/27 12:26] 追記・・・ もし開発環境をお持ちならば以下のパッチを試してもらえますか? *** getchar.c~ Mon May 27 12:23:48 2002 --- getchar.c Mon May 27 12:23:38 2002 *************** *** 1843,1849 **** * multi-byte char. Happens when mapping * <M-a> and then changing 'encoding'. */ if (has_mbyte && MB_BYTE2LEN(c1) ! > (*mb_ptr2len_check)(mp->m_keys)) mlen = 0; #endif /* --- 1843,1849 ---- * multi-byte char. Happens when mapping * <M-a> and then changing 'encoding'. */ if (has_mbyte && MB_BYTE2LEN(c1) ! > (*mb_ptr2len_check)(mp->m_keys) && mp->m_keylen > 1) mlen = 0; #endif /*
239 名前:名無しさん@お腹いっぱい。 mailto:sage [02/05/27 12:42] >>238 当方、cygwin ですが、vimacs で m-x が使えました V(^_^)V パチパチ
240 名前:名無しさん@お腹いっぱい。 mailto:sage [02/05/27 14:05] >>238 開発環境がないのでリリースされるのを待ちます。m(_ _)m
241 名前:名無しさん@お腹いっぱい。 mailto:sage [02/05/28 00:18] >>240 されるのか!?
242 名前:mattn@Vim%Chalice mailto:sage [02/05/28 09:52] >>240 ,>>241 vim-dev には送ったんですが、bram 氏は今週カンファレンスらしくて 来週以降にみると返事が来てます。 よって来週になって、「ダメ」と言われるかもしれません。(^_^;) リリースされるのはパッチですので、win32 ならば KoRoN 氏の NetupVim で 更新、それ以外のプラットフォームならば開発環境を用意して頂くことに なります。
243 名前:KoRoN@Vim%Chalice ◆ALICEsdk mailto:sage [02/05/29 12:52] >>242 > リリースされるのはパッチですので、win32 ならば KoRoN 氏の NetupVim で 暫定的にまっつんさんのパッチを取込ませてもらいました。
244 名前:KoRoN@Vim%Chalice ◆ALICEsdk mailto:sage [02/06/04 17:48] う〜ん…まっつんさんのパッチあてたんだけど、たとえば :nmap <M-X> : がうまく出来ませんね。環境は香り屋版W2Kです。 :help map-multibyte にあるようにencをlatin1に設定してmapしてみたりもしたんですけど。 う〜ん…なんでだろ?
245 名前:mattn@Vim%Chalice [02/06/04 18:59] >>244 Alt + Shift + x もしくは :nmap <M-x> : で動きませんか?
246 名前:KoRoN@Vim%Chalice ◆ALICEsdk mailto:sage [02/06/04 19:53] >>244 あ、動きました。失礼しました。
247 名前:名無しさん@お腹いっぱい。 mailto:sage [02/06/05 19:52] >>226 超亀レスですみませんが、ありがとうございました。 しかし、これ、ちょっと遅すぎるような。。。(褪
248 名前:名無しさん@お腹いっぱい。 [02/06/07 14:09] 現在分割しているウインドウの数を返す命令って何になりますか?
249 名前:名無しさん@お腹いっぱい。 mailto:sage [02/06/07 14:47] bufwinnr('$')
250 名前:226 mailto:sage [02/06/07 14:50] >>247 そうですねぇ。かなり欠点は多いかもしれませんが。逆に改善の余地は大 いにあるかもね。パッチ送ると喜ばれますよ。 >>248 一番ボトムのウィンドウに行って :echo winnr() ぐらいかなぁ。。 >>249 それは違うと思います。
251 名前:名無しさん@お腹いっぱい。 [02/06/08 15:13] >249 >250 bufwinnr('$')では駄目でしたが、一番下のウィンドウでwinnr()は巧くいきました。 ただし、一番下に行く方法ってありますか? 安直かもしれないけど、ループさせて一番大きかった値が分割ウィンドウの数って 判定も出来るかもしれないけど…。
252 名前:名無しさん@お腹いっぱい。 mailto:sage [02/06/08 19:49] >>251 Ex command であれば、:wincmd b です。(元に戻るには :wincmd p) 詳しくは :h windows を読みませう。
253 名前:名無しさん@お腹いっぱい。 [02/06/09 01:23] >252 ありがとうございます。 確認できました!
254 名前:名無しさん@お腹いっぱい。 [02/06/21 19:36] 保守。
255 名前:名無しさん@お腹いっぱい。 mailto:sage [02/06/22 23:21] 自由。
256 名前:KoRoN@Vim%Chalice ◆ALICEsdk mailto:koron at tka.att.ne.jp [02/07/08 00:02] 高度なテクニックの紹介: コールバックの実装 2つのファイルを作りこのようなコマンドを実行する :so manager.vim :so callback.vim :call DoCallback() ----ファイル: manager.vim " コールバック関数登録用変数と関数 let s:procs = '' function! RegistFunc(proc) let s:procs = s:procs . a:proc . ';' endfunction " ダミーコールバック function! s:Dummy1() echo "Dummy1" endfunction " ダミーコールバックを登録 call RegistFunc('s:Dummy1') " コールバックを実行する関数 function! DoCallback() let mx = '^\([^;]\+\);\(.*\)$' let procs = s:procs while procs != '' let proc = substitute(procs, mx, '\1', '') let procs = substitute(procs, mx, '\2', '') if proc != '' && exists('*'.proc) call {proc}() endif endwhile endfunction ----ファイル: callback.vim " スクリプトIDを取得 map <SID>xx <SID>xx let s:_id = substitute(maparg('<SID>xx'), 'xx$', '', '') unmap <SID>xx " コールバック関数 function! s:Proc() echo 'callback.vim:Proc()' endfunction " コールバック関数を登録 call RegistFunc(s:_id.'Proc')
257 名前:KoRoN@Vim%Chalice ◆ALICEsdk mailto:koron at tka.att.ne.jp [02/07/29 12:11] VimでAAアニメを作るためのライブラリとサンプルアニメーションを作ってみました。 ライブラリ: www.kaoriya.net/testdir/animate.vim サンプル1: www.kaoriya.net/testdir/gikozuza.vim サンプル2: www.kaoriya.net/testdir/moukoneyo.vim ライブラリとサンプルファイルを同じディレクトリにダウンロードして、Vim上で :source gikozuza.vim :source moukoneyo.vim とタイプしてください。なおアニメーションの実行には+clientserverが正しく動作 する環境が必要です。Windows版のgvim,vimおよびLinux + GTKのgvimでは動作確認し ました。 なにか面白い作品ができたら是非公開してください。スプライト風に実装しているの でゲームなども作れるかもしれません。