1 名前:名無しさん@お腹いっぱい。 [01/12/17 12:15] みんなでスクリプトを覚えよう
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では動作確認し ました。 なにか面白い作品ができたら是非公開してください。スプライト風に実装しているの でゲームなども作れるかもしれません。
258 名前:名無しさん@お腹いっぱい。 [02/08/14 01:55] winのみですが、vimからCMAIL WRITERでメール送信。ウマー
259 名前:KANO_Dai@Vim%Chalice ◆EONKKhcc mailto:age [02/08/16 11:43] 標準プラグイン netrw.vim を使って :e ftp://ftp.hoge/hage とやるとエラーになってしまいました。 :Nread ftp://ftp.hoge/hage だとうまくいくのに。 'verbose' を設定してメッセージを出させ、それに従って netrw.vim を見てみると、 FTPを扱っているところで exec "norm! mzoopen " ファイル... となっています。 "mz" は後の操作のためにマークをつけているんだろうけど、 まず "o" が分かりません。新しい行を開いている? そして "open" って何でしょう? :open なら obsolete なコマンドだとヘルプにありました。 どなたかお助け。 ちなみに、netrw.vim ではHTTPを持ってくるときにwget.exeを使う仕組みになっていますが、 Chaliceのために手に入れたcurl.exeを使うように手を加えてあります。 それがいけないのかな?しかしFTPにはftp.exeを使うので影響ないはず。
260 名前:あぼーん mailto:あぼーん [あぼーん] あぼーん
261 名前:名無しさん@お腹いっぱい。 mailto:sage [02/08/16 18:23] >>259 > "open" って何でしょう? 直接解決にはならないですけど、こういうことをやってるみたいです。 open servername port username passwd mode get remote-filename local-filename ↑のようなコマンド行を生成し、その部分をftpに渡して実行、と。 なぜエラーになるかはちょっとわかんないっす。
262 名前:KANO_Dai@Vim%Chalice ◆EONKKhcc mailto:sage [02/08/17 11:43] ああ、"open" はFTPのコマンドでしたか。少し分かってきたような気がします。 完全に修正できたら報告します。 少し分かったのは、netrw.vimの " which the following blots out. Does Win-NT/98/2000 do the same??? exe "'y-3,'yd" というところでexeをコメントアウトするとよいことにはすでに気づきました。 何でもWin95のFTPには空行を勝手にくっつける癖があるそうで、 それを消そうとしているのですが、私のWin98のFTPではそんな癖がないのでいらないんです。 でもVimスクリプトではWin95とWin98の区別ができませんから、おかしくなっていました。
263 名前:KANO_Dai@Vim%Chalice ◆EONKKhcc mailto:sage [02/08/22 10:07] 訂正っす。 .vimrc で let netrw_win95ftp = 0 とすると、 上記のコメントアウトは必要ありませんでした。 なんでこういう変数を Options: で説明しないで、 ずっと下の方の Variables: なんて項目に載せておくんだ? netrw で FTP が使えないのは、BufReadCmd 内で >>261 さんのおっしゃるような コマンド文字列の生成ができていないためだ、という気がしてきました。 exe "'z+1,.!ftp -i -n" とすることで、 コマンド文字列を ftp.exe をフィルタ扱いにすることで送っているらしいですが、その前に exe "'z+1,.w c:/windows/temp/cmdtmp" exe "'z+1,.d" を付け加えても、空行2行しか保存されません。この辺りが鍵? こうした後に :r ftp://hoge/hage としたときはちゃんとftp.exeに対するコマンドが ファイルに保存されるんですよ。こちらでは FileReadCmd を使っているので動作するのかな。
264 名前:名無しさん@お腹いっぱい。 mailto:sage [02/08/28 18:25] 保守さげ
265 名前:KANO_Dai@Vim%Chalice ◆EONKKhcc mailto:age [02/09/17 05:11] 相変わらずわからんちんです。 学校始まって忙しいのであまりハックできない...鬱 Chaliceスレではw3m.vimネタがまた出たみたい。
266 名前:名無しさん@お腹いっぱい。 mailto:sage [02/10/19 04:10] vimスクリプトなんて書いたことないけど、し、質問があります。 ぼ、僕は正規表現厨房なので、 :% s/hoge11/moge :% s/hoge2232/moge :% s/hoge_3_3/moge ・ ・ ・ と連続して実行するのに、 上の文字列をどっかに記憶させて、それを読み込んで実行するって出来ますか?
267 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [02/10/19 10:39] >>266 先頭のコロンを削除して %s/hoge11/moge %s/hoge2232/moge %s/hoge_3_3/moge ・ ・ ・ というテキストを作成しtest.vimとして保存します。 あとは :source test.vim とすれば実行できます。 詳細は :help :source を参照してください。
268 名前:・・・うまく行くかな? mailto:sage [02/10/20 22:20] >>266 :%s/hoge11/moge^M^[:%s/hoge11/moge^M^[:%s/hoge_3_3/moge^M^[ と書いて、その行の上で、 例えば、 "aY と入力する。 その後、実行したい時には、 @a とする。
269 名前:名無しさん@お腹いっぱい。 mailto:sage [02/10/20 22:28] 独り言ですが、 hywr.kuciv.kyoto-u.ac.jp/~shiiba/documents/unix/openmemo.html#3 の説明にあるtable.el重宝しそうなんだけど、今ダウンロードできないです。 こういったスクリプト向けにvimスクリプトは向いていますか? かなり欲しい機能なので、この際、table.vim書きながら vimスクリプト勉強してみよっかなー。
270 名前:名無しさん@お腹いっぱい。 mailto:sage [02/10/20 22:48] ぜんぜん関係無いけど、>>269 みたいに今現在アクセスできない所も、 Googleの検索窓にURLを入れて検索すると、キャッシュでは見ることが出来ます。 (キャッシュがあればね) >>269 のは、本人の説明はないが、 +---+----+-----+ | a | g | hig | +---+----+-----+ | a | ss | s | | b | s | i | +---+----+-----+ こういうのを作るスクリプトのようです。
271 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:koron at tka.att.ne.jp [02/10/20 23:24] >>269 > こういったスクリプト向けにvimスクリプトは向いていますか? 向いているか向いてないか、という問なら間違いなく向いていません。配列やデータ 構造とかそういう高級な機能は一切ありませんから、ちょっと複雑なことをしようと すれば作成側の知恵が試されることになります。そこが面白いところではあります。 望みの処理を行なってくれる既成の外部ツールがあるのなら、フィルタとしてそちら を使うようにしたほうが利口なのは確実です。でもテーブル用スクリプトは既にどこ かにあったような気もします。
272 名前:269 mailto:sage [02/10/21 00:55] >>271 >でもテーブル用スクリプトは既にどこかにあったような気もします。 これのことでしょうか? table.sourceforge.net/
273 名前:269 mailto:sage [02/10/21 00:58] さっき見つけた。 www.psyc.nott.ac.uk/staff/ritter/papers/dismal/dismal.html は古いけど高機能。表計算も出来るとか。
274 名前:269 mailto:sage [02/10/21 00:59] ここはvimだった…… すみません。すれ違いでした。
275 名前:名無しさん@お腹いっぱい。 [02/11/13 21:13] age
276 名前:名無しさん@お腹いっぱい。 mailto:sage [02/11/19 06:54] Vim scriptって便利そうですね。 今までキーレコーディングで満足してたから…。
277 名前:名無しさん@お腹いっぱい。 mailto:sage [02/11/24 23:24] debug.vim : Simple utility to assist in debugging vim scripts vim.sourceforge.net/script.php?script_id=491 debug.vim 1.0.0 22-Nov-2002 6.0 kam onn siew Initial upload
278 名前:名無しさん@お腹いっぱい。 mailto:sage [02/11/27 17:25] >277 便利なの?
279 名前:名無しさん@お腹いっぱい。 [02/12/02 23:20] vim初心者ですが、vim上でメール見れますか?
280 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/02 23:51] >>279 スクリプトは色々あるみたい。 入れてみて報告きぼんぬ vim.sourceforge.net/script_search.php?keywords=mail&script_type=&order_by=rating&direction=descending&search=search
281 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/03 22:24] Windowsで香り屋gVimを使わせて頂いております。 起動するたびにcolorsディレクトリ以下にあるcolor schemeを ランダムに呼ぶVimスクリプトを作ろうかと考えています。 質問1)そんなスクリプト、すでにありますか?あるなら、どこにあるか教えて下さい。 質問2)俺には、そんなスクリプトを作るのは無理ですか? 質問3)もしかしてVimスクリプトに乱数って無いんですか? 当方、シロウトに縮れ毛が生えた程度の似非プログラマです。
282 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/03 22:31] 秒数の1桁目を取得して擬似的に乱数をつくればいいんじゃなかろか。
283 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:koron at tka.att.ne.jp [02/12/03 22:37] >>281 > 質問1)そんなスクリプト、すでにありますか?あるなら、どこにあるか教えて下さい。 vim.sf.netを見る限りなさそうです。 > 質問2)俺には、そんなスクリプトを作るのは無理ですか? それは自分で決めてください。できないと思ってしまえばどんな些細なことであって も絶対にできません。逆にできると思えば大概のことはできるものです。あとはやる かやらないか。 > 質問3)もしかしてVimスクリプトに乱数って無いんですか? 無いです。線形合同法等を使って擬似乱数生成関数を書くなり、もしくは外部ライブ ラリを利用する必要があります。線形合同法についてはこちらを参照: www.ysr.net.it-chiba.ac.jp/data/rand/node5.html
284 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/03 22:44] ヒントはtetris.vimにあり
285 名前:1 mailto:sage [02/12/03 22:48] 【中学生?】YAHOO祭り♪【高校生?】 ヤフーの音声チャットでお祭り騒ぎ! こ、これマジっすか?と耳を疑うような 乱交ぶり!ただいま順番待ち殺到! あと、3時間待ちか?w ↓↓↓↓↓↓実況スレ↓↓↓↓↓↓↓ choco.2ch.net/test/read.cgi/bobby/1038742045/
286 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/03 22:50] たまにageると早速↑こういう目にあう。トホホ
287 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [02/12/03 23:01] (´・ω・`)…ゴメンなさい。
288 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/03 23:22] >>287 悪いのは>>285 ですよぉ、いやだなあ
289 名前:281 mailto:sage [02/12/03 23:39] >>283 ありがと。 いきなり壁に突き当たってしまった。 let color = "evening" colorscheme color →カラースキームcolorが見つかりません let color = "evening" echo ":colorscheme " color →:colorscheme evening(と下に表示されるだけ) なんかヒント欲しいです・・・
290 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/03 23:57] >>289 :help :execute なんてどうでしょ。
291 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [02/12/03 23:58] >>289 let color = "evening" execute "colorscheme ".color :help :execute
292 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/04 00:51] vim.sourceforge.net/tip_view.php?tip_id=358
293 名前:281 mailto:sage [02/12/04 21:26] >>290-291 ご教授ありがとうございます。 またVimスクリプトを書こうかなって思ったら、 またこのスレに来ますんでよろしくお願いします。 >>292 あらら、あったのね。どうもです。 早速使わせて頂きました。希望通りの動きでとっても幸せです。
294 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/04 21:33] >>293 おいしいスクリプトが出来たらvim.orgにうpしてね♪
295 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/08 21:22] 現在のバッファの情報を外部アプリケーションに渡すには、一時ファイルを作ってそれを渡す というのが、Vim スクリプトの作法なのでしょうか? cvscommand.vimスクリプトってのを見てたら、そう思いました。
296 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [02/12/08 21:26] >>295 パイプで繋いでどうこうということは残念ながらできないので、 そういう情報が必要ならば一時ファイルを作ることになります。 引数だけで済む場面では勿論引数で済ませます。
297 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [02/12/08 21:34] >>296 あ、フィルタ使う方法はありますね。前書き込みのパイプ云々は外部コマンドと 動的にインタラクションするということを頭の片隅に置いた上での発言と読んでください。 まぁ、最終的にどれを使うかは個人の裁量です。作法とかそういったものは気にせず、 その時一番efficientだと思えた方法を使うのが吉でしょう。
298 名前:295 mailto:sage [02/12/08 21:35] いろいろ調べてみましたが、そのようですね。 とりあえず、現行の編集ファイル (バッファではない) に対して、 やりたいことができるようになってから考えます。
299 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/13 23:56] Printer Dialog : vim onlineより。 vim.sourceforge.net/script.php?script_id=512 このスクリプトのソースコード、むちゃ見やすい。綺麗。 vimスクリプトのコーディング規則とか考えちまった。
300 名前:300 mailto:age [02/12/16 13:04] 300
301 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/19 01:46] >>225 vim.sourceforge.net/script.php?script_id=483 これいいですよ。
302 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/19 02:04] >>301 225じゃないけど、土日に試して見る。
303 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/19 17:41] すれ違いですが vim.sourceforge.netにあるスクリプトを全部おとすのはどうすればいいですか? wget 'vim.sourceforge.net/script_download.php?src_id=1423 ' とやるとscript_download.php?src_id=1423って名前になります。
304 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/21 03:01] sokoban.vimはxsokobanと同じだった。
305 名前:sage [02/12/24 00:59] vimスクリプトに配列ってありますか?
306 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [02/12/24 01:19] >>305 配列そのものは無いです。が、ダミーバッファに対してsetline()/getline()を使っ たり、{}記法を使うことで代用品を仕立てることはできます。後者は次のような感じ で使います。 :let index = 2 :let array_{index} = "some string"; :let index = 3 :let array_{index} = "another string"; :echo array_2 some string :echo array_{index} another string あと、これはVimに閉じないのですがif_perlやif_rubyを使う方法も考えられます。
307 名前:名無しさん@お腹いっぱい。 [02/12/26 00:21] emacsでいうところの vc-mode のようなことをvimスクリプトで実現した 例はあるのでしょうか。
308 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [02/12/26 00:36] >>307 > emacsでいうところの vc-mode のようなことをvimスクリプトで実現した > 例はあるのでしょうか。 emacs使わないのでvc-modeがどんなモノか知らないのですが、 例えばこんなのでしょうか? www.vim.org/script.php?script_id=90
309 名前:307 mailto:sage [02/12/26 11:31] >>308 searchの使い方が分かりました :) どちらかというと欲しいのはRCSに対するものです。emacsのものだと、 - RCSのファイルが転がっていると自動的にRCSモードの表示に - C-x C-q で write-protectedを解除 → co -l foo - 修正後 c-x c-q で write-protectedに → commitメッセージを聞いてきて C-c C-c で ci -u -m"メッセージ" foo てなことをやってくれるようなんです。 vimで - ファイルオープン時に実行されるフック - set readonly状態の時に何かバッファを修正したら実行されるフック - set readonly状態を変更したら実行されるフック があればなんとかできそうかなと思います。
310 名前:羊 [02/12/30 00:17] HTML で困るものをエスケープするスクリプトを書いたんですが、 範囲選択の後に :'<,'>call HtmlEscape と入力しなければならないです。 そうじゃなくて、:'<,'>HtmlEscape にするにはどうすればいいの? # command あたりがあやしかったがわからなかった... if exists("loaded_html_escape") finish endif let loaded_html_escape = 1 function HtmlEscape() range let index = a:firstline while index <= a:lastline let line = getline(index) let line = substitute(line, "&", "\\&", "g") let line = substitute(line, "<", "\\<", "g") let line = substitute(line, ">", "\\>", "g") call setline(index, line) let index = index + 1 endwhile endfunction
311 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:koron at tka.att.ne.jp [02/12/30 00:44] >>310 :command! -range HtmlEscape <line1>,<line2>call HtmlEscape() 多分こんな感じです。 :help E177
312 名前:羊 [02/12/30 01:55] E177 のヘルプ見たのにー! そうか。 <line1>と<line2>はそうやって使えばいいのか。 これで年が越せます。ありがとう!>KoRoN 氏
313 名前:301 mailto:sage [03/01/01 16:59] >>301 は>>226 氏の言うwimmanagerに付属のやつでしたか。すみませぬ。
314 名前:226 mailto:sage [03/01/03 16:06] 別もんですよん
315 名前:名無しさん@お腹いっぱい。 [03/01/05 15:23] なかなか便利だ。 A vim plugin for browsing tarfiles vim.sourceforge.net/script.php?script_id=522
316 名前:名無しさん@お腹いっぱい。 mailto:sage [03/01/06 07:57] >>315 そういえばデフォルトでgzip.vimってのがはいってるね。
317 名前:名無しさん@お腹いっぱい。 mailto:sage [03/01/07 02:02] vim素人の私は最近、zcatってコマンドライン覚えたよ。 こういうのがエディタ上から、呼び出せるのはvimのいいところね。
318 名前:名無しさん@お腹いっぱい。 mailto:sage [03/01/07 22:39] vim.sourceforge.net/script.php?script_id=52 calendar.vim 1.3o 06-Jan-2003 otu-
319 名前:山崎渉 mailto:(^^)sage [03/01/15 13:02] (^^)
320 名前:名無しさん@お腹いっぱい。 mailto:sage [03/01/17 14:19] alias Info="vim -c 'source hoge/info.vim|Info'" 便利です
321 名前:名無しさん@お腹いっぱい。 mailto:sage [03/01/26 07:03] 激しく禿同
322 名前:名無しさん@お腹いっぱい。 mailto:sage [03/01/26 13:23] 最近スクリプトを覚えようと思って、この板にやってきました。 mattnさんの >>128 を試しているんですが、 silent argdo! rewind のラインを silent argdo! rewind! にしないとE37が出たり gvim ~/vimrc が開けず、でもrewind!にすると after/ftplugin/ 以下が読みこまれないという症状に悩まされています。 上記スクリプトを.vimrcのどの位置で定義するのかにも関係するんですかね? :h rewind しても良くわからなかったのでカキコしてみました。
323 名前:322 mailto:sage [03/01/27 01:57] 自己レス。 cyg-wrapper.shでウマー hermitte.free.fr/cygwin でした。
324 名前:名無しさん@お腹いっぱい。 mailto:sage [03/01/29 06:57] KaoriYa タンのは FreeBSD PORTS には入らんの?
325 名前:324 mailto:sage [03/01/29 06:59] 微妙に誤爆。スマソ
326 名前:名無しさん@お腹いっぱい。 [03/02/10 00:32] file(*.vim)はどこに置くの?
327 名前:名無しさん@お腹いっぱい。 mailto:sage [03/02/10 00:38] >>326 OSによって違う。UNIXっぽいシステムだったら、 ~/.vim/plugin/ あたり。システムグローバルは :echo $VIMRUNTIME あたりに。
328 名前:名無しさん@お腹いっぱい。 [03/02/10 00:42] linuxだけど、好きなところには置けないですか?
329 名前:名無しさん@お腹いっぱい。 mailto:sage [03/02/10 00:47] >>328 .vimrcでその「好きな所」を set runtimepath+=好きな所 すれば好きな所に置けるけど、~/.vim/plugin で問題ある?
330 名前:329 mailto:sage [03/02/10 00:48] 嘘。runtimepath+=hoge だったら、hoge/plugin/ だな。
331 名前:名無しさん@Vim%Chalice mailto:sage [03/02/10 04:12] 正規表現で制御文字そのものを表すatomって無いんでしょうか? <Esc>, <Tab>, <CR>, <BS>は既に存在する(\e, \t, \r, \b)んですが、 ^Jなどは表現できないですよねぇ…? 例えば、レジスタaに入ってる文字列から<Ctrl-J>を削除しようとした時に substitute(@a, '^@', '', 'g') のように、関数内で<Ctrl-V><Ctrl-J>して直接char codeを入れちゃうと 実行時にエラーになってしまうので… # ^@の部分が<Ctrl-V><Ctrl-J>です。 # ^@は改行を意味するのでsubstitute()の呼び出しが無効になります。 <Ctrl-V><Ctrl-J>の代わりに\rや[:cntrl:]で置換しようとしてもできませんでした。 文字を直接ascii codeで指定できたりすると良いんですけどね… \0x0a (← ctrl-J)みたいな感じで (\0x61なら'a'になるみたいな)
332 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [03/02/10 04:44] >>331 Chalice内のplugin/alice.vimにあるAL_firstline()とかが参考になるかもしれませ ん。レジスタ内の改行記号^Jには"\<NL>"が対応します。このあたりはVimが文字列を どのように扱っているかを知っていれば至極当然なのですが、知らないとかなりメン ドイので以下のように慣用句として覚えてしまうのが良いでしょう。 substitute(@a, "\<NL>", '', 'g')
333 名前:名無しさん@Vim%Chalice mailto:sage [03/02/11 03:03] 331です。 >>332 KoRoNさん、解説どうもありがとうございました。 とりあえず納得はしたのですが、"至極当然"とか言われちゃうと どうしても文字列をどのように扱ってるかが気になってしもたので、 vimのsource codeを見てみましたが、漏れには解析追いつかずでした… (´Д⊂グスン しかし! trans_special()が定義されているmisc2.c内で偶然<Char->の存在を知り、 :help <Char-> を見ると、なんと!ロトのつるぎを見つけた! …じゃなくて、 漏れが >>331 で > > 文字を直接ascii codeで指定できたりすると良いんですけどね… > > \0x0a (← ctrl-J)みたいな感じで (\0x61なら'a'になるみたいな) と言っていた機能が既に有るではないですかぁ! てことで、 substitute(@a, "\<Char-0x0a>", '', 'g') と書いても > substitute(@a, "\<NL>", '', 'g') これと同じ動作になることが確認できますた。 ヽ(´▽`)ノ <Char->は元々multi-byteを扱うのに便利な機能として用意されていたらしいですが、 これなら\e, \t, \r, \b以外の制御文字も(知ってればですが)扱えますね。 あまり綺麗じゃありませんし、素人にはお勧めできない諸刃の剣かもしれませんが… # もしかして反則技ですか? あ! ASCIIじゃなくてEBCDICの時に使えないですね… # 早くもダメケースをハケーンしてしまった… ΣΣ(゚д゚lll)ガーン!!