1 名前:名無しさん@お腹いっぱい。 [01/12/17 12:15] みんなでスクリプトを覚えよう
132 名前:名無しさん@お腹いっぱい。 mailto:sage [02/01/24 01:19] 関係無いかもしれんけど cygwinで cygpath っちゅうコマンドも便利だよ。 # 外出か?
133 名前:1 mailto:sage [02/01/25 02:15] 糞みたいな残業強制させられて今タクシーで帰宅。 これじゃお勉強する暇ねーよ。あーあ。
134 名前:KoRoN@Vim%Chalice ◆ALICEsdk mailto:sage [02/01/25 10:37] >>133 お疲れさんです(^-^;
135 名前:1 [02/01/26 22:43] foo.vim解読の続き。 入力モードの時に F7 で独自に指定したタブを挿入するスクリプト。 imap <F7> <C-R>=VarTab(virtcol("."),8,17,26,35)<CR> fun! VarTab(c, ...) " 最初のタブ位置を探す let i = 1 while i <= a:0 execute "let num_sp = -a:c + a:" . i if num_sp > 0 break endif let i = i + 1 endwhile if i > a:0 return "" endif " スペースを挿入する let spaces = " " let len = 1 while len < num_sp let spaces = spaces . spaces let len = len + len endwhile return strpart(spaces, 0, num_sp) endfun 可変長引数の部分でタブストップするカラム 8,17,26,35 が指定されている。 最初のタブを探す部分は定石として覚えとこ。 strpart() は spaces のインデックス 0 から num_sp 個分を返す関数。 上の場合 spaces の全体を返すから使う必要ない気もするけど。 そんだけ。
136 名前:名無しさん@お腹いっぱい。 [02/01/27 04:17] これvimスクリプトかどうか分かんないんだけどステータスラインに 文字コードとか改行コードを表示させるって出来る? もしかして、関数つくって呼ぶとかそんな方法ですか? つか、自分で調べろって?・・・スマソ。
137 名前:1 [02/01/27 11:16] >>136 set statusline=%<%f%h%m%r%=%b\ 0x%B\ \ %l,%c%V\ %P ↑これでできた(:help statusline より) お勉強スレなので解説付き 重要なカレントの文字コードは %b と %B で解る %b - 10進数 %B - 16進数 他のは %f - ファイル名 %h - ヘルプを見ている時だけ[ヘルプ]になる %m - nomodifiable の時 [-] になる %r - readonly の時に [RO] になる %l - 行番号 %c - カラム値 %V - 選択部分のライン番号。カラム値と同じ場合は表示されない? (再現できず) %P - ページの位置らしい 先頭 or 末尾 んで表示制御が、 %< - 1行に入りきらなかった時にこの位置から表示する?? (再現できず) %= - これ以降を右側に表示 あとスペースは \ でエスケープ
138 名前:136 [02/01/27 13:09] >>137 いやそうじゃなくて 文字コード = euc-jp, sjis, jis, utf8 改行コード = CRLF, LF, CR を言いたかったのです・・・。 説明の仕方が悪かったですかね・・・。
139 名前:ヘッポコ訳者 ◆xBY/hgW2 mailto:sage [02/01/27 13:25] >136 function! GetStatusEx() let str = '' let str = str . '[' . &fileformat . ']' if has('multi_byte') && &fileencoding != '' let str = str . '[' . &fileencoding . ']' endif return str endfunction set statusline=%n:\ %<%f%y\ %m%r%h%w%{GetStatusEx()}\ %l,%c\ %P 確かコレ KoRoN 殿に教わったんだと思ったけど,こんな感じでどーよ? ゴチャゴチャ付いてるのはヲレのヤツそのまんまだからっつーことで御免 翻訳しなくっちゃなー
140 名前:1 [02/01/28 22:51] foo.vim解読の続き。 HTMLファイル編集中にバックスペース一発で とかを一気に消すスクリプト。 augroup Foo autocmd BufEnter *.html,*.htm inoremap <BS> x<Esc>:call SmartBs('&[^ \t;]*;')<CR>a<BS><BS> autocmd BufLeave *.html,*.htm iunmap <BS> augroup END fun! SmartBs(pat) let init = strpart(getline("."), 0, col(".")-1) let len = strlen(matchstr(init, a:pat . "$")) - 1 if len > 0 execute "normal!" . len . "X" endif endfun カレント行のカーソル位置より前の文字列を init に取得。 その文字列の最後に みたいな文字列があればその文字数を len に取得。 みたいな文字列が無ければ matchstr は "" を返し、len は 0 になる。 だから len > 0 の時、その数だけバックスペースすれば が消える仕組みらしい。
141 名前:1 mailto:sage [02/01/28 22:55] ありゃりゃ消えとるがな。 &nbsp の事です。
142 名前:名無しさん [02/01/29 00:41] Buf* の訳というか説明があるとイイナって思った。 BufNewとBufNewFileの違いが分からんし。
143 名前:ヘッポコ訳者 ◆xBY/hgW2 [02/01/29 00:45] >142 さぁ,言い出しっぺの法則ぢゃ!!ガムバレ(・∀・)!!! # ヲレ今風邪で寝込んどる.スマソ
144 名前:142 [02/01/29 00:48] ウワー。 マジ勘弁。英語できないし。 誰かにパス。なんていうのはアマい(・∀・)?
145 名前:ヘッポコ訳者 ◆xBY/hgW2 mailto:sage [02/01/29 01:03] >142 しゃーないのぅ autocmd.txt を見ると, BufNewFile: 存在しないファイルの変数を始めた時. スケルトンからの読み込み時でも使われる. BufNew: 新しいバッファを作成した直後. バッファ名をリネームした時にも使われる. バッファがバッファリストに追加された時は BufAdd も 実行されるぞ. 注::この autocommand が実行された時はカレントバッファ"%" はその時作成されようとしてる"<afile>" とは違うよん とりあえず上記二つはこんな感じかな
146 名前:1 [02/01/29 23:40] foo.vim解読続き。 sed の y コマンドを実現するスクリプト 使い方(aをxにbをyにcをzに置換するには?) :Transform abc xyz (カレント行を対象) :%Transform abc xyz (全体行を対象) 素直にsedを使うと? :.!sed 'y/abc/xyz/' :%!sed 'y/abc/xyz/' command! -nargs=* -range Transform <line1>,<line2> call Transform(<f-args>) fun! Transform(old, new, ...) if a:0 let string = a:1 else let string = getline(".") endif let i = 0 while i < strlen(a:old) && i < strlen(a:new) execute "let string=substitute(string, '".a:old[i]."','".a:new[i]."','g')" let i = i + 1 endwhile if a:0 return string else call setline(".", string) endif endfun -range を付けているから <line1> と <line2> が有効に。 <f-args> は空白で区切った引数が自動的に , 区切りになって関数へ渡される。 だから :Transform abc xyz は Transform("abc", "xyz") となって関数が呼ばれる。 んで↓のように一文字ずつ対応するように置換されていく。 let string=substitute(string, 'a', 'x', 'g') let string=substitute(string, 'b', 'y', 'g') let string=substitute(string, 'c', 'z', 'g') setline(".", string) はカレント行を string の内容にする。 あと第3引数があればカレント行よりそっちを優先するので別のスクリプトからも使い まわせる。 :echo Transform("abc", "xyz", "aabbcc") xxyyzz
147 名前:KoRoN@Vim%Chalice ◆ALICEsdk mailto:koron@tka.att.ne.jp [02/01/30 00:19] >>146 便利そうなスクリプトなので日本語対応版を書いてみました。ちょっと圧縮バージョ ンなので見難いかもしれないけどこれも勉強になるでしょう。 # 香り屋版には組み込むかも。 command! -nargs=* -range Transform <line1>,<line2>call Transform(<f-args>) function! Transform(from_str, to_str, ...) if a:0 | let string = a:1 | else | let string = getline(".") | endif let from_str = a:from_str | let to_str = a:to_str while 1 let from_char = matchstr(from_str, '^.') if from_char == '' | break | endif let to_char = matchstr(to_str, '^.') let from_str = strpart(from_str, strlen(from_char)) let to_str = strpart(to_str, strlen(to_char)) let string = substitute(string, from_char, to_char, 'g') endwhile if a:0 | return string | else | call setline(".", string) | endif endfunction
148 名前:ヘッポコ訳者 ◆xBY/hgW2 mailto:sage [02/01/30 00:26] <<<範囲(Range) を使う>>> ":call" コマンドには行範囲(line range) を指定する事も出来るよん. This can have one of two meanings. 関数が "range" キーワードと一緒に定義されてたら,その関数は行範囲を扱う んだな. そーゆー関数は,"a:firstline" と "a:lastline" っつー二つの引数が渡さ れる事になるぜぃ.この二つは関数が呼ばれた時に指定されてる行範囲の最 初と最後の行数でござるよ. 例: :function Count_words() range : let n = a:firstline : let count = 0 : while n <= a:lastline : let count = count + Wordcount(getline(n)) : endwhile : echo "found " . count . " words" :endfunction この関数は, :10,30call Count_words() と,こんな感じで呼び出せる. この場合関数は一回のみ実行されて,その行範囲に含まれてる単語数を出力するよん. # 訳者注: Wordcount っつー関数は自前で作らんとダメっぽい. # ついでに, while の中に let n = n+1 が要るような気もするんだが・・・ ちなみに"range" keyword 無しで定義した関数で行範囲を扱う事も出来て, 例: :function Number() : echo "line " . line(".") . " contains: " . getline(".") :endfunction これを :10,15call Number() って呼んでやると,この関数が 6 回呼ばれるよーになるのだ.
149 名前:ヘッポコ訳者 ◆xBY/hgW2 [02/01/30 00:27] 訳注のところってもしかして嘘書いてます? getline は行数 n をインクリメントしたりしないですよねぇ…? 風邪引いてるんで今日はここまで
150 名前:KoRoN@Vim%Chalice ◆ALICEsdk mailto:sage [02/01/30 00:34] >>149 試せばすぐわかりますがインクリメントはきっと必要でしょう。 # 丁度Transformもrangeの無い例になってて、タイムリーですなぁ
151 名前:名無しさん@お腹いっぱい。 mailto:sage [02/01/30 01:31] >146 ご苦労様です。 >sed の y コマンドを実現するスクリプト cygwin で man sed したんですが、s コマンドと y コマンドの違いがいまいちわからなかったです。 わかりやすく説明してるようなサイトなど教えていただけないでしょうか? スレ違いでごめんなさい。
152 名前:ヘッポコ訳者 ◆xBY/hgW2 [02/01/30 01:43] >KoRoN殿 ええ,一応試してはみたんですよ,ハイ(^^; ただなんとなくちょっと自信が無かったので… >151 日本語 man より [2addr]y/string1/string2/ string1 に現れるパタンスペース中の文字を string2 の対応した文字に 置換する。たとえば、`y/abc/ABC/' はパタンスペース中の文字 a、b、c を大文字に置換する。バックスラッシュと改行以外のすべての文字を区 切りとして用いることができる。 string1 、 stirng2 中では、`\' 直 後の改行以外の文字はリテラルに解釈され、`\n' は改行と解釈されま す。 あぁ,コリャ分からんかもね. つまり,s/sage/mona/ だと,'sage' が 'mona' に置換されるけど, y/sage/mona' だと s->m a->o g->n e->a ってな感じで置換される.分かるかな?これで. 例を挙げると,'sega' は s/sage/mona/ だと何も起こらんけど, y/sage/mona/ だと 'mano' になるのよ.
153 名前:151 mailto:sage [02/01/30 02:04] >152 ヘッポコ訳者さん、ありがとうございます。 試してみてわかりました。キャラクタ単位で複数の置換を一度にするって感じでしょうか? 風邪はやってますね。翻訳がんばってください。では
154 名前:1 [02/01/31 01:08] foo.vim解読の続き。 指定パターンを検索してセレクトモードで囲むスクリプト command! -nargs=1 Search call Search(<f-args>) fun! Search(pat) execute "normal! /" . a:pat . "\<CR>" execute "normal! v//e+1\<CR>\<C-G>" endfun -nargs=1 だから 1 個の引数が必要。 :Search foo だと /foo が実行されて次の foo にジャンプする。 v//e+1 は v でビジュアルモードにして //e+1 で再び検索ジャンプする。 // という表記は間に前回の検索文字列が省略されているので /foo/e+1 の 意味になってカーソル位置の foo の最後の文字の次のカラムまでカーソル 移動する。最後にビジュアルモードを Ctrl+G でセレクトモードに変更。 /foo の後に v//e+1 やらならくても単に vel でいいんじゃないのかと 思ったけど、検索されるのは単語とは限らないから v//e+1 の方がいいのかな。 あと Ctrl+G のセレクトモードって初めて知ったけど単純にWindowsの選択と 同じように選択後に何か入力すると選択部分が消えるモードらしい。
155 名前:mattn@Vim%Chalice mailto:sage [02/01/31 19:45] UNIXユーザへ送る条件演算子の応用 imap <silent> <c-\> <C-O>:let &iminsert=(&iminsert==2?0:2)<CR>
156 名前:1 [02/01/31 23:43] foo.vim解読の続き。 挿入モード時に _foo_ のように入力すると FOO に変換されるスクリプト :imap _ _<Esc>:call Capitalize()<CR>s fun! Capitalize() if exists("b:Capitalize_flag") unlet b:Capitalize_flag normal! vF_Ux, else let b:Capitalize_flag = 1 execute "normal! a_\<Esc>" endif endfun 挿入モードで _ をタイプすると _ を挿入してノーマルモードにして Capitalize() が 呼ばれる。最初は b:Capitalize_flag は定義されていないので else 側の a_<ESC> が 実行されてもう一個 _ が入力される。そして Capitalize() を抜けて s で _ が 消えて挿入モードに戻る。 _ は入力しないで a で挿入モードに戻ればいいような気も するけど。 んで _foo_ までタイプすると再び Capitalize() が呼ばれて b:Capitalize_flag はさっき 定義されたので if 側が実行される。vF_UX, はビジュアルモードにして foo の左側の _にジャンプして全部大文字にして _ を消して右側の _ に移動するという意味。で、s で右側の _ も消されて挿入モードに戻ると。 b: はバッファローカルという意味。 >>155 Ctrl+\ でIMEをトグルする方法っすね。
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するとか