[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 03/18 19:04 / Filesize : 368 KB / Number-of Response : 974
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Vim6スクリプトお勉強スレ



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するとか






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<368KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef