1 名前:名無しさん@お腹いっぱい。 [01/12/17 12:15] みんなでスクリプトを覚えよう
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] みたいに、配列を使ってみたら。
369 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/17 19:57] >>367 とりあえず、それっぽく動くのができたよ。 inoremap <buffer> + <C-O>:call InsertSpace('+')<CR> function! InsertSpace(chr) let left = getline(".")[col(".")-2] let right = getline(".")[col(".")-1] if left == ' ' && right == ' ' execute "normal i\<C-V>".a:chr."\<Right>" elseif left != ' ' && right != ' ' execute "normal i \<C-V>".a:chr." \<Right>" elseif left != ' ' execute "normal i \<C-V>".a:chr."\<Right>\<Right>" elseif right != ' ' execute "normal i\<C-V>".a:chr." \<Right>" endif endfunction
370 名前:367 mailto:sage [03/05/17 22:00] >>369 ありがとうございました。すごく勉強になります。 しかし、行の最後にいるときにうまくいきません。 場合分けしたのですが、最後の\<Right>がうまく機能しません。 function! InsertSpace(chr) let left = getline(".")[col(".")-2] let right = getline(".")[col(".")-1] if strlen(getline(".")) == col(".") if right == ' ' execute "normal a\<C-V>".a:chr." \<Right>" else execute "normal a \<C-V>".a:chr." \<Right>" endif else if left == ' ' && right == ' ' execute "normal i\<C-V>".a:chr."\<Right>" elseif left != ' ' && right != ' ' execute "normal i \<C-V>".a:chr." \<Right>" elseif left != ' ' execute "normal i \<C-V>".a:chr."\<Right>\<Right>" elseif right != ' ' execute "normal i\<C-V>".a:chr." \<Right>" endif endif endfunction
371 名前:369 mailto:sage [03/05/17 22:51] >しかし、行の最後にいるときにうまくいきません。 ほんとだ。σ(^◇^;) >場合分けしたのですが、最後の\<Right>がうまく機能しません。 ほんとだ。(?_?) これはちょっとわからないな。ちょっと調べてみるけど、 あてにはしないでね。なんか仕様っぽい気もするし。
372 名前:MiMi@Vim%Chalice ◆fI1wYbzaMQ mailto:sage [03/05/18 00:20] 違うアプローチで作ってみました. 挿入モードで演算子を入力するとスペースを挿入します. # コマンドモードに戻る必要はありません. ●注意事項 プログラミング言語の仕様に+と++のような同じ文字を使った 二種類の演算子がある場合は両方をmapして下さい. 第2引数でスペースを入れるかどうかを指定します. これにより,++の時はスペースを入れない,==の時はスペースを入れる といった使い分けが出来ます. スペースを入れない仕様は意味が無さそうですが,+をmapして++をmapしないと, ++が入力できなくなってしまうので仕方なくこういう仕様にしました. ●1点だけごめんなさい項目があります. 行頭ではmapした記号を入力できません. ただし,一般的にはインデントを入れるので気にならないでしょう. " 両側にスペースを入れたい演算子をmappingする inoremap <buffer> <silent> + <Esc>:call InsertSpaceOnBothSides('+', 1)<CR>a inoremap <buffer> <silent> - <Esc>:call InsertSpaceOnBothSides('-', 1)<CR>a inoremap <buffer> <silent> * <Esc>:call InsertSpaceOnBothSides('*', 1)<CR>a inoremap <buffer> <silent> / <Esc>:call InsertSpaceOnBothSides('/', 1)<CR>a inoremap <buffer> <silent> % <Esc>:call InsertSpaceOnBothSides('%', 1)<CR>a inoremap <buffer> <silent> = <Esc>:call InsertSpaceOnBothSides('=', 1)<CR>a inoremap <buffer> <silent> ++ <Esc>:call InsertSpaceOnBothSides('++', 0)<CR>a inoremap <buffer> <silent> -- <Esc>:call InsertSpaceOnBothSides('--', 0)<CR>a inoremap <buffer> <silent> == <Esc>:call InsertSpaceOnBothSides('==', 1)<CR>a
373 名前:MiMi@Vim%Chalice ◆fI1wYbzaMQ mailto:sage [03/05/18 00:20] " 演算子の両側にスペースを入れる function! InsertSpaceOnBothSides(operator, isspace) let pre_str = strpart(getline("."), 0, col(".")) " 行の前半 let post_str = strpart(getline("."), col(".")) " 行の後半 if a:isspace == 1 if strpart(pre_str, strlen(pre_str)-1, 1) != ' ' let pre_str = pre_str . ' ' " 前半最後にスペース挿入 endif if strpart(post_str, 0, 1) != ' ' let post_str = ' ' . post_str " 後半最初にスペース挿入 endif endif " 前半と後半の間に演算子を挿入 call setline(".", pre_str . a:operator . post_str) " 次の挿入位置へ移動 if post_str == matchstr(post_str, '\s*$', 0) " 演算子挿入位置が行末の時 let motion_cmd = 'normal $' " 行末へ else let motion_cmd = 'normal 2wh' " 演算子を飛ばして次の単語の1文字前へ endif execute motion_cmd endfunction
374 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/18 00:27] 歩野?
375 名前:367 mailto:sage [03/05/18 15:16] >>372-373 ありがとうございます。 後半ちょこっと変えてみました。 function! InsertSpaceOnBothSides(operator, isspace) let pre_str = strpart(getline("."), 0, col(".")) " 行の前半 let post_str = strpart(getline("."), col(".")) " 行の後半 let move = 2 if a:isspace == 1 if strpart(pre_str, strlen(pre_str)-1, 1) != ' ' let pre_str = pre_str . ' ' " 前半最後にスペース挿入 let move = 3 endif if strpart(post_str, 0, 1) != ' ' let post_str = ' ' . post_str " 後半最初にスペース挿入 endif endif call setline(".", pre_str . a:operator . post_str) exec "normal " . move . "l" endfunction
376 名前:あぼーん mailto:あぼーん [あぼーん] あぼーん
377 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:koron at tka.att.ne.jp [03/05/25 00:08] 大手4紙のサイトにアクセスして、ヘッドラインをだけ抜き出し表示するスクリプトを 作りました。 www.kaoriya.net/testdir/headline.vim curl, alice.vim, +iconvが必須です。つまりChaliceを使っている人ならば、プラグ インのディレクトリにスクリプトを置くだけで簡単に導入できるでしょう。導入後は :Headline Asahi :Headline Yomiuri :Headline Sankei :Headline Mainichi とすることで各紙のヘッドラインが表示されます。指定する名前はasaやyomiのように、 多少の揺らぎがあっても大丈夫です。今は4紙のみの対応ですが、拡張性を考慮して設 計したので、少しの労力で他のサイトにも応用できるでしょう。興味がある方は試して ください。
378 名前:あぼーん mailto:あぼーん [あぼーん] あぼーん
379 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/25 19:13] うう、KoRoNさんに「Vimから出ない人」にされちゃうよー nikkei.co.jpは「宿題」?
380 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [03/05/25 21:03] >>379 是非書いてください。<nikkei.co.jp 日経はコメント使ってマーキングされているから やりやすそうですねぇ。
381 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [03/05/26 17:20] >>377 www.kaoriya.net/testdir/headline-20030526.tar.bz2 アップデートしました。更新点は以下のとおりです。 - プラグイン方式を導入して対応サイトの追加を行ない易く - まっつんさんの協力によりスラッシュドットジャパンとYAHOO JAPANに対応
382 名前:あぼーん mailto:あぼーん [あぼーん] あぼーん
383 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/30 14:04] :%!lynx -dump www.nikkei.co.jp/
384 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/30 14:32] www.kaoriya.net/testdir/headline-20030530.tar.bz2 日経とかいろいろ追加されている。
385 名前:名無しさん@お腹いっぱい。 mailto:sage [03/05/30 15:13] scriptencoding cp932を headline/以下にも書いてほしいんだけど。
386 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [03/05/30 15:46] >>385 了解。忘れてた。
387 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [03/05/31 00:18] 直しました。 www.kaoriya.net/testdir/headline-20030531.tar.bz2 scriptencoding cp932の追加とasahiのURL変更に対応
388 名前:名無しさん@お腹いっぱい。 [03/06/01 11:23] info.vimでinfoをみてるときにhおすとヘルプ(?)がでてしまうんですが…
389 名前:名無しさん@お腹いっぱい。 mailto:sage [03/06/01 13:04] >>388 hでは出ないぞ。c-hじゃないのか?
390 名前:名無しさん@お腹いっぱい。 mailto:sage [03/06/01 14:17] >>388 でるけど、何か困るのか?
391 名前:名無しさん@お腹いっぱい。 mailto:sage [03/06/01 16:02] hで左に移動できないじゃん。
392 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [03/06/02 11:27] Headline更新 www.kaoriya.net/testdir/headline-20030602.tar.bz2 Slashdotが6月になっておかしくなったのを修正
393 名前:名無しさん@Vim%Chalice mailto:sage [03/06/03 02:11] そろそろg:chalice_curl_optionsみたいなcurlオプションキボーン 防火壁ナノネン. . .
394 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [03/06/04 11:37] >>393 www.kaoriya.net/testdir/headline-20030603.tar.bz2 対応しました。
395 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:koron at tka.att.ne.jp [03/06/17 19:39] まっつんさんとのコラボーレーション。Exciteを使った日英翻訳です。 www.kaoriya.net/testdir/excitetranslate.vim 範囲選択して:ExciteTranslation。なお翻訳結果は保証されません。
396 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [03/06/17 19:42] >>395 > KORABORESHON with Mr. まっつん. It is Japanese-English translation using Excite. コラボーレーションは無いよなぁ…(´・ω・`)
397 名前:名無しさん@お腹いっぱい。 mailto:sage [03/06/18 01:28] >>395 ご苦労様です。 早速試してみたところ、なんかエラーが出ましたが翻訳出来ました。 出てきたエラーはこんな奴: E177: 未知の関数 AL_echo 33 call AL_echo('Translating...', 'WarningMsg') 良く分からなかったのでコメントアウトしちゃいました。 多分、うちの設定が悪いかなんかのせいだと思うのですが、 一応使ってる奴のバージョンをご報告しておきます。 香り屋版 Windows用y gvim V6.1 適用済みパッチ: 1-474
398 名前:名無しさん@お腹いっぱい。 mailto:sage [03/06/18 01:46] >>397 chaliceに同梱されてるalice.vimが無い模様。 www.kaoriya.net/dist/chalice-1.8.019.tar.bz2 これを取ってきなされ。 chaliceがインスコされてないということはcurlとかも無さそうだな。 www.kaoriya.net/dist/curl-7.10.4-win32-ssl.tar.bz2 たぶんこれも取ってくることになるだろう。
399 名前:名無しさん@お腹いっぱい。 mailto:sage [03/06/18 02:05] >>398 訳が出てくるということはcurlは入っていると思われ
400 名前:397 mailto:sage [03/06/18 02:07] >>398 ありがとうございます。 ご指摘通り、chaliceのバージョンが古いせいでした。 v1.7を使用していたのですが、 v1.8に上げたところ、エラーが出なくなりました。 お騒がせ致しました。 いや、それにしても、このプラグインは便利ですね。 感謝感謝です。
401 名前:名無しさん@お腹いっぱい。 mailto:sage [03/06/18 17:25] calendar.vim : Calendar calendar.vim 1.3t 2003-06-17 vim.sourceforge.net/scripts/script.php?script_id=52 更新されてます。
402 名前:名無しさん@お腹いっぱい。 mailto:sage [03/06/20 12:35] VimTweak : The tweaking dll for GVim.exe. vim.sourceforge.net/scripts/script.php?script_id=687 Initial upload またまた、「まっつん」さんです。
403 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:koron at tka.att.ne.jp [03/06/20 12:56] 前からtweakが公開されれば、KaoriYa版からキャプション機能を削除しても良いかなぁって考えていたんです。 でもtweakでキャプションを消すとテキストエリアのウィンドウがズレることが発覚。どうしよ。
404 名前:名無しさん@お腹いっぱい。 mailto:sage [03/06/20 22:38] ウィンドウがズレるのは、ちょっとやだなぁ。 てか、キャプションってなんですか? Windows版で、透明度がうんたらっちゅーやつですか?
405 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [03/06/20 23:00] >>404 Windowsではタイトルバーというのが分かりやすいでしょうか?。 香り屋版を使っているならば :set guioptions+=C してみれば一発でわかります。 なお戻すには :set guioptions-=C
406 名前:名無しさん@お腹いっぱい。 mailto:sage [03/06/21 22:18] .gvimrcに、 syntax match Trailing "\s\+$" highlight link Trailing Error と書いたのですが、うまく反映されません。 なんかfiletypeとかsyntaxかがないときだけうまくいく感じです。 いつでも反映されるようにしたいのですが、 どこが間違っているんでしょうか。
407 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [03/06/21 22:45] >>406 Vimの基本的な動作に対する理解が足りない、のが原因です。syntaxはその型のファ イルを開いた際に毎回設定され、その設定開始前に必ず:syntax resetかそれ相当の 処理が行なわれています。そのため起動時に1度だけ実行される.gvimrcの設定はその 時点で上書されてしまい、効力を発揮することはありません。 そんなわけなのでsyntaxの設定が終わった後に、それらの設定が追加されるように autocmdにSyntax等々を組み合わせてみるのが良いでしょう。以下はその例です。た ぶんこのままでは思い通りに動かないので適当に修正してみてください。 function! s:TrailingError() syntax match Trailing "\s\+$" highlight link Trailing Error endfunction autocmd Syntax * call s:TrailingError()
408 名前:名無しさん@お腹いっぱい。 mailto:sage [03/06/21 23:30] まぁそういうおまいも vi に対する理解があるとはとても おもえんのだが。いいかげんやめたら?
409 名前:名無しさん@お腹いっぱい。 mailto:sage [03/06/21 23:42] タイミングだからゆうぞ。はっきりあんた臭い。コードの占有意識高すぎ。 やることがいちいち SHIFT-JIS 臭い。 architecutre dependentily. 抱える人間としては最悪に近い。 あんたが vim を手放せば一年の停滞はあってもトータルでみな 幸せになると思う。そうおもったことはない?
410 名前:名無しさん@お腹いっぱい。 mailto:sage [03/06/22 00:08] >>408 >>409 まぁまぁ、vimに貢献しているのは間違いないんだから。 ただ、KoRoNさんもこのスレだけじゃないんだけど、発言にトゲ があることを自覚してないんだろうな。
411 名前:404 mailto:sage [03/06/22 00:09] >>405 タイトルバー 消えたーー なるほど、よう分かりました。 これで更に1行多く表示できる。 新たな発見だわぁ…
412 名前:名無しさん@お腹いっぱい。 mailto:sage [03/06/22 21:21] KoRoN氏は別に嘘ついたりはしてないだろ。 時々ずばっと言った真実に、自分が痛いヤツだって ことを指摘されたくせに、それを認めたくない厨ども には嫌な人に見えるかもしれんが、それだけのこと。 現実を見ずに出る杭を打ちたいだけの馬鹿は氏んでいいよ。
413 名前:410 mailto:sage [03/06/23 01:48] >>412 自分より頭のいい人間に、「おまえ馬鹿だな」と言われて その人間をやな奴と思うのは普通だと思うが。 そのやりとりを聞いている周りの人間もイヤな気分になるのも 普通だと思うが。 そもそも、たかが掲示板で人を否定する必要はないはずだが。 いや、匿名の掲示板だからこそ否定することができるのか。 ここは、厨房お断りのスレなのか? だったら、「vim用のくだ質」みたいなものを作らなきゃダメかな。 まぁ、そういう感情を理解せずに、論理的に肯定しようとする お前こそいい人ぶろうとしているだけだろう。 自分ができるから当然ほかの奴もできるだろみたいに思っている 奴ほど最低なものはないからな。
414 名前:名無しさん@お腹いっぱい。 mailto:sage [03/06/23 01:50] >>413 ちょっとやめて頂けませんか。見苦しい。
415 名前:名無しさん@お腹いっぱい。 mailto:sage [03/06/23 02:56] >>413 どこが間違ってるか聞いたら、間違ってる箇所を指摘してくれただけでしょ。 言い方が気にくわない人がいるのはわかるけど、気にくわなくない人まで 否定する姿勢は見苦しいよ。 > そもそも、たかが掲示板で人を否定する必要はないはずだが。 そうですねぇ、本当に。
416 名前:名無しさん@お腹いっぱい。 [03/06/24 01:25] >>408 なぜにvi? KoRoNさんは、viに対する理解といってないが。。
417 名前:名無しさん@お腹いっぱい。 mailto:sage [03/06/27 18:29] 保存してないバッファでZoomWinを使うと、 バッファが/tmp/v012345/0になってしまう。
418 名前:名無しさん@お腹いっぱい。 mailto:sage [03/06/27 20:42] VimSpeak : Speak selected text with MS Agent vim.sourceforge.net/scripts/script.php?script_id=692 また新しいのが登録されました。
419 名前:名無しさん@お腹いっぱい。 mailto:sage [03/06/28 02:22] >>407 もう一つ 応用的な(略 があれば原因は100%特定出来そうだなw
420 名前:名無しさん@Vim%Chalice mailto:sage [03/07/07 22:08] 同じキーに2つ以上mappingされている時に 片方だけをunmapすることは出来ますか?
421 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [03/07/07 22:16] >>420 何を聞きたいのかイマイチわからないので想像で答えます。 :map <C-D> somestring1 :map <C-D> somestring2 このように続けて登録した時は後者が優先されるので、そもそも同じキーにマップす るという概念が成り立ちません。次に :map <C-D>1 somestring1 :map <C-D>2 somestring2 とした時には、これは別のマッピングとして登録されるのでそれぞれ :unmap <C-D>1 :unmap <C-D>2 で別々に解除できます。但し「<C-D>で始まるマッピング全てを解除する」という方 法はちょっと思いつきません。
422 名前:420 mailto:sage [03/07/08 00:05] >>421 分かりにくくてすいません。 ちゃんと具体例を書けば良かったですね。 <buffer> 有りでmappingされているものと、 <buffer> 無しで登録されているものの2つがダブって見えてただけでした。 例えば、 nnoremap <C-N> somestring1 nnoremap <buffer> <C-N> somestring2 の違いでした。ここで:nmapをすると、 n <C-N> * :somestring1 n <C-N> *@:somestring2 となります。@はbuffer localの印ですよね。 やりたいことは「どちらか片方を指定してunmapしたい」ということなのですが、 ヘルプを読んでunmapにも<buffer>を指定できることが分かりました。 <buffer>付きでmapしたら<buffer>付きでunmap、 そうでなければ<buffer>を付けずにunmapということで落ち着きました。 というわけで結局、自己解決しました。お騒がせしました。
423 名前:あぼーん mailto:あぼーん [あぼーん] あぼーん
424 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/26 00:24] vim-scriptでTimer(event)は無いのでしょうか? 無い場合、何か代替案はありますか?
425 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [03/07/26 00:28] >>424 :help CursorHold くらいでしょうか。単にウェイトさせるだけなら :help :sleep を参照してください。
426 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/26 01:14] >>425 ありがとうございます。 どちらも知っている内容でした。 ということは定期的にTimerEventを発生させる方法は無いのですね... perlなどのI/Fを使うしかないのかな?
427 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [03/07/26 10:41] >>426 いや、それも無理です。if_perl主導で何かコトを起こすことができないんです。Perl のスレッドを回してVIM::DoCommand使うとか、出来なくは無いんですがいろいろ不具合 があります。また私が直接確認したわけではありませんが、純粋にPerlスレッドとVim の相性の問題も最近報告されました。 あとは外部プロセスからvim --remote-*を定期的に起動する、という方法も考えられま すけど、これだと頻度の問題があるでしょう。 なんにしても用途に応じて別の解決法を模索した方が良いかもしれません。ユーザの操 作に割込んで、タイマーを含む何らかのイベントを起こすということはできません。そ のようなことをしたければ半無限ループ内でgetchar()を使って、完全に入力をコント ロールするしかないでしょう。
428 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/26 11:01] >>427 > if_perl主導で何かコトを起こすことができないんです。 そうだったんですか... > Perlのスレッドを回してVIM::DoCommand使うとか、出来なくは無いんですがいろいろ不具合 > があります。また私が直接確認したわけではありませんが、純粋にPerlスレッドとVim > の相性の問題も最近報告されました。 ちなみにどのような不具合/相性問題なんでしょうか? > ユーザの操作に割込んで、タイマーを含む何らかのイベントを起こすということはできません。 なるほど勉強になります。 > そのようなことをしたければ半無限ループ内でgetchar()を使って、完全に入力をコント > ロールするしかないでしょう。 残念ながらキー入力等を受け取った時にしかできそうにないんですね。 放っておいても定期的にEventが来る。ということはできないのか...
429 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [03/07/26 11:12] >>428 > ちなみにどのような不具合/相性問題なんでしょうか? 完全に再現条件を把握してないのですが、私が試した際にはVimを巻き込んでロック したり落ちたりしました。 > 残念ながらキー入力等を受け取った時にしかできそうにないんですね。 getchar(0)とかすれば、キーが無くても即帰ってきます。 > 放っておいても定期的にEventが来る。ということはできないのか... それができないからIRC on Vimとか諦めました。
430 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [03/08/01 20:24] Headline更新しました。 www.kaoriya.net/testdir/headline-20030801.tar.bz2
431 名前:名無しさん@お腹いっぱい。 mailto:sage [03/08/01 21:23] >>430 取扱説明書イイ!
432 名前:331 mailto:sage [03/08/01 22:00] >>348 s/330/331/ まぁ、それはともかく。 別にどこにばれようと問題なしです。 でなきゃURL晒さないですってば。
433 名前:331 mailto:sage [03/08/01 22:00] >>432 誤爆。スマソ
434 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [03/08/01 23:57] >>431 取扱説明書、というより各ヘッドラインの寸評ですね。 私はZDNetとAsahiとYomiuriにZDNet、それにSlashdotJapanを主に見てます。
435 名前:名無しさん@お腹いっぱい。 mailto:sage [03/08/02 18:31] plugin/headline/1101com.vim~ チルダがついてますが。
436 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [03/08/02 20:43] 作ろうかなぁと考えて、結局止めたからです。
437 名前:名無しさん@お腹いっぱい。 [03/08/06 14:08] 現在編集中のバッファ(ファイル)が未保存かどうかを 取得する関数などはありませんか??
438 名前:名無しさん@Vim%Chalice mailto:sage [03/08/06 14:12] getbufvar()
439 名前:あぼーん mailto:あぼーん [あぼーん] あぼーん
440 名前:名無しさん@お腹いっぱい。 mailto:sage [03/08/06 14:34] :echo &modified
441 名前:437 [03/08/06 14:58] &modifiedで状態を取得することが出来ました。 どうもありがとうございました。
442 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [03/08/07 20:42] 某スレで「foldはアウトラインとしては使いにくい」という至極納得な意見が出され ていたので、なんとかしてみるスクリプトを書いてみました。 www.kaoriya.net/testdir/folddigest.vim foldが有効になっているテキストバッファで :call FoldDigest() を実行すると、 foldのダイジェストツリーが表示された新バッファができます。そのバッファの方で 注目したい項目の行で<CR>すると、テキストバッファの該当箇所へカーソルが飛びま す。これで少し使いやすくなるでしょうか?。
443 名前:名無しさん@お腹いっぱい。 mailto:sage [03/08/08 00:04] >>442 某スレから参りました。 はぁ、便利。 あのスレの影響で使い始めたんですけど良いエディタですね。 使っていて気持ちが良いというか、リズムがあるというか。 スクリプトはだいぶ先になると思いますがちょこちょこ勉強していこうと思います。
444 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [03/08/08 00:19] >>443 動くようになったばかりなのでα版と考えてください。自動かそれに順ずる方法で call FoldDigest()する仕組みとか、行がズレた時の処理とか、ウィンドウの取り回 しとか考えていますんで、もうちょっと使えるものになるでしょう。 ま、Vimに限りませんがイッペンにイロイロ覚えようとはせず、その時に必要なもの を必要なだけ覚えていくのが良いんじゃないでしょうか。
445 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [03/08/08 23:31] folddigest.vimをアップデートしました。 www.kaoriya.net/testdir/folddigest.vim 使い方は>>442 と一緒ですが… > 行がズレた時の処理 主にコレについて修正しました。 :let folddigest_options = "quickfix" とすることで+quickfixを利用し、編集してズレたり消えたりしてもちゃんと飛べる ようになります。ただし:makeや:grepと併用できなくなるので注意してください。 :let folddigest_options = "flexnumwidth" とすると、行番号の桁数が必要最小限になるので画面幅が狭いときには有効です。 オプションはカンマで接続して複数指定することができます。例: :let folddigest_options = "quickfix,flexnumwidth" この場合、行番号は一切表示されません。スッキリです。
446 名前:名無しさん@お腹いっぱい。 mailto:sage [03/08/11 05:51] >>418 うまく動かなかった・・ 喋る前に消えたな・・
447 名前:名無しさん@お腹いっぱい。 mailto:sage [03/08/13 13:05] >>412 ずばっと言った真実て…(激藁
448 名前:名無しさん@お腹いっぱい。 mailto:sage [03/08/14 09:07] >>445 vim.sf.netではVim versionが6.0になっていましたが、6.1で試したらgetregがな いとエラーが出ました。 vim.sourceforge.net/scripts/download_script.php?src_id=2230
449 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [03/08/14 09:15] >>448 ありがとうございます。descriptionに追記しておきました。vim.orgに登録する時に は5.0か6.0しか選べません。そのため6.2でも6.0としか表示できないのです。
450 名前:あぼーん mailto:あぼーん [あぼーん] あぼーん
451 名前:名無しさん@お腹いっぱい。 [03/09/16 19:42] Vine Linuxでgvim(日本語版)を使っていますが、 起動時に検索など全ての文字入力が日本語になっており、 いちいち日本語をオフにしなくてはいけません。 初期設定は日本語(IME)をオフにする方法をどなたか御存じでしょうか?
452 名前:名無しさん@お腹いっぱい。 mailto:sage [03/09/16 20:08] >>451 h 'imi' h 'ims' スレ違い。 pc.2ch.net/test/read.cgi/unix/1058706125/
453 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/05 05:25] 昔は、は〜 むずかしそ〜だね〜と見ていたが、 今日からちょっとやってみた。 役に立ちそうな関数って何気にたくさんあるのね。