1 名前:名無しさん@お腹いっぱい。 [01/12/17 12:15] みんなでスクリプトを覚えよう
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] みたいに、配列を使ってみたら。
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 更新されてます。