1 名前:名無しさん@お腹いっぱい。 [01/12/17 12:15] みんなでスクリプトを覚えよう
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)ガーン!!
334 名前:331@Vim%Chalice mailto:sage [03/02/11 03:05] もっかい331です。 >>332 ついでに… 余談ですがregexp.cのbackslash_trans()で \r, \t, \e, \b の振る舞いが書かれてますね。 あくまで仮の話になりますが、 static char_u REGEXP_ABBR[] = "nrtebj"; というように、jを加えて case 'j': return NL; のようなcaseを1個追加するだけで、正規表現として \j が <NL> にマッチする といった動作になったりするんですかね…? # 考えが浅はかかな?… んー。なんかスレ違いになってきちゃったかな? ^^; これぢゃVim6ソースコードお勉強スレですな(w
335 名前:名無しさん@お腹いっぱい。 [03/02/20 19:42] autocmd BufReadPost * \ if line("'\"") > 0 && line("'\"") <= line("$") | \ exe "normal g`\"" | \ endif vimrc_exampleのこの部分ですが、2行目と3行目の最後の|はなんですか? それと g`\"のgはなんのためにあるのですか?
336 名前:名無しさん@お腹いっぱい。 mailto:sage [03/02/20 19:47] | はコマンドの連結 g を前置するのはジャンプリストを変更しないようにジャンプする
337 名前:335 mailto:sage [03/02/20 20:26] >>336 autocmdだから1行にする必要があるのですね。 gの方は:h g'にありましたね。ありがとうございます。
338 名前:名無しさん@お腹いっぱい。 mailto:sage [03/02/22 10:53] vim.sourceforge.net/scripts/script.php?script_id=575 gnu-c : A filetype plugin to encourage the GNU C style. これっていままでup されていなかったけど、多くのひとが自分用に作っていそう。
339 名前:名無しさん@お腹いっぱい。 mailto:sage [03/02/27 11:13] >>337 1行にするのは行頭の '\' の働き. '|' は,本来autocmdで実行するのは単一のコマンドだから, 複数のコマンドを実行するために連結が必要になっているということ.
340 名前:名無しさん@お腹いっぱい。 mailto:sage [03/03/01 02:34] 質問があります。 vimのevalはかなり高機能なので、スクリプトインタプリタとして 使用してみようと思い、いろいろ試行錯誤してみたのですが、 そもそも、echoが標準出力に出力できないです。 どうすればできるのでしょうか?
341 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [03/03/01 02:46] 多分標準出力には出せないと思われます。 一時ファイルを使うのが良いでしょう。
342 名前:名無しさん@お腹いっぱい。 mailto:sage [03/03/01 03:06] >>341 了解しました。 perlやpythonが使えるので、逆にevalが独立して スクリプトインタプリタとして使えると楽しめそうなんですが。 あと、ソケットをたたくAPIが追加されるとChaliceが完全に evalだけでできそうだし、いろいろできそうなんで、ぜひ 追加してほしいもんです。
343 名前:名無しさん@お腹いっぱい。 mailto:sage [03/03/01 11:48] 既に備わってるlibcall()で(間に自作DLLをはさめば)ソケットが使える...かもね。 ただ標準DLLを呼ぶには力不足、とかマニュアルに書いてあるしなあ。 Vimはマルチプラットフォームが原則だから,難しいんじゃないの? でもソースがあるんだから自分で追加というのもできないことではない.
344 名前:名無しさん@お腹いっぱい。 mailto:sage [03/03/01 13:02] perl使えばいいじゃん
345 名前:名無しさん@お腹いっぱい。 mailto:sage [03/03/02 01:31] >>344 それじゃVIMを使う意味もないと思う。 >>343 Unix,Mac,Windowsで動くマルチプラットホームなソケットライブラリ はいくつも存在するから、ようはBramの気分次第のような気がしないでもない。 そのときには、evalはどういう感じになるんだろう。いまいち想像つかないが。 まぁ、いつの日か、 +socket が表示される日を夢見てevalをいじくるとしよう。
346 名前:名無しさん@お腹いっぱい。 mailto:sage [03/03/05 20:59] www.vim.org/scripts/script.php?script_id=563 これけっこう便利だけど、\rlogがうまく動いてくれない。
347 名前:名無しさん@お腹いっぱい。 mailto:sage [03/03/21 18:07] 勉強ついでに Namazuのvimクライアントつくろーかと思ったけど、 pinna.cside4.jp/tips/vim/search.html で発見。期待待ち。
348 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [03/03/21 19:06] >>347 あ、本文の方が無いんですね(^-^; そこのサイトマスター、友人なので執筆のお願いしてみましょうか?
349 名前:名無しさん@お腹いっぱい。 mailto:sage [03/03/22 01:26] vim.sourceforge.net/scripts/script.php?script_id=595 HelpClose : Close all help windows 1 get ズサーしますた。
350 名前:名無しさん@お腹いっぱい。 mailto:sage [03/03/22 01:39] 2get!
351 名前:名無しさん@お腹いっぱい。 mailto:sage [03/03/22 21:34] 私昨夜3getしたみたいです。 >>348 せかさなくて、いいです。更新直後のようですから。 今後の更新をのんびり待ちます。期待して。
352 名前:名無しさん@お腹いっぱい。 mailto:sage [03/04/04 11:01] vimにこういうのないかなあ。 www1.odn.ne.jp/ymtz/image/jtc-string.gif www1.odn.ne.jp/ymtz/image/jtc-list.gif
353 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [03/04/04 11:26] 私もちゃんとは試してないんですがCreamがなんかやってます。 cream.sourceforge.net/index.html cream.sourceforge.net/screenshots.html あとはcppcomplete.vimくらいしか思いつきません。 www.vim.org/scripts/script.php?script_id=527 # Vimは構造的にそういう拡張は難しいんですが…
354 名前:名無しさん@お腹いっぱい。 [03/04/05 00:13] www.vim.org/scripts/script.php?script_id=356 db_ext というプラグインを使おうと思ったのですが、途中で if exists("g:default_db_ext_{b:db_ext_type}_cmd_terminator") という行があって、 b:db_ext_type = 'PGSQL' なんかの時に、g:default_db_ext_PGSQL_cmd_terminator について exists() したいんだと思うのですが、そのようには動いてくれません。 つーか、そのように動かなくて正解のような気がするんですが、 実際どうなんでしょう。なんか設定とかバージョンとかなんでしょうか。
355 名前:名無しさん@お腹いっぱい。 mailto:sage [03/04/05 00:44] 6.1.255あたりのパッチでcurly braces変数がexists()で評価できるようになったと思う。
356 名前:354 [03/04/05 23:16] >>355 できました。サンクスコ。 ところでスクリプト作るのって、ちょっと書いて :source して、、、ってやるんでしょうか? 例えばバッファ内のスクリプトを保存せずに実行する方法とかあるんでしょうか? vim スクリプトの開発/デバッグのテクニックとかあったらおしえて下さい。
357 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [03/04/05 23:33] >>356 > 例えばバッファ内のスクリプトを保存せずに実行する方法とかあるんでしょうか? そういうスクリプト書いちゃえばできないことはないですが、 だったら適当な名前で保存して :so% したほうが手っ取り早いです。
358 名前:山崎渉 mailto:(^^) [03/04/17 12:00] (^^)
359 名前:あぼーん mailto:あぼーん [あぼーん] あぼーん
360 名前:名無しさん@お腹いっぱい。 [03/04/24 19:40] ♥
361 名前:名無しさん@お腹いっぱい。 mailto:sage [03/04/30 21:45] Chalceで学んだことですが、スクリプトでバッファを変更する時に、一時的に undolevelsを-1にするのは非常にナイスなアイデアですよね。一回のundo分でも 無制限にメモリを消費できてしまうわけですからね。vim標準のgzip.vimとか、 いろんなスクリプトでこれをやってほしいなぁ
362 名前:名無しさん@お腹いっぱい。 mailto:sage [03/04/30 21:46] x Chalce o Chalice
363 名前:名無しさん@お腹いっぱい。 [03/05/15 11:54] emacsであるような、ChangeLogの作成を支援してくれるような vimスクリプトってありませんか??
364 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/15 12:22] こんなんがあるが… ttp://www3.kobedenshi.ac.jp/~s1009790/vim/index.html ちょっと修正すりゃそれなりになるんじゃない?
365 名前:あぼーん mailto:あぼーん [あぼーん] あぼーん
366 名前:363 [03/05/15 13:32] 自分もこんなの見付けました。 ttp://apollo.u-gakugei.ac.jp/~yoshiki/cltips.php
367 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/17 09:21] +,-などの記号を入力したときに両側にスペースを入れたいです。 そのときすでにスペースが入っていたらスペースを入れないようにします。 それで次のような関数を作ったのですがうまくいきません。 というかvimスクリプトがぜんぜんわかりません。 直してください。 inoremap <buffer> ( <c-o>:call InsertSpace()<cr>( inoremap <buffer> , <c-o>:call InsertSpace()<cr>,<space> inoremap <buffer> + <c-o>:call InsertSpace()<cr>+<space> inoremap <buffer> - <c-o>:call InsertSpace()<cr>-<space> inoremap <buffer> * <c-o>:call InsertSpace()<cr>*<space> inoremap <buffer> / <c-o>:call InsertSpace()<cr>/<space> inoremap <buffer> = <c-o>:call InsertSpace()<cr>=<space> function! InsertSpace() if strlen(getline(".")) == col(".") if strpart(getline("."), col(".")-1, 1) != " " normal a endif else if strpart(getline("."), col(".")-2, 1) != " " normal a endif endif endfunction
368 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/17 19:09] >>367 まず、 getline(".")[col(".")-1] みたいに、配列を使ってみたら。