[表示 : 全て 最新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]
みんなでスクリプトを覚えよう

562 名前:561 mailto:sage [04/06/22 10:20]
スクリプト書こうと思ってましたが、mapで済ませてしまいました。

map <F5> :let obufclnline = getline('.')^M^W^W:execute 'e ' . obufclnline^M

:new | read !dir /s/b *.txt 等でリストを作成し、2つ以上ウィンドウがあることが
前提の仕様にしてます(´Д⊂グスン
(本心は"ウィンドウが無かったら作る"というのをやりたかった)
e! にしてないので、安全です^^ もっと良い方法ってありますかね?

微妙にスレ違いですか…そうでつか or2゜



563 名前:名無しさん@お腹いっぱい。 mailto:sage [04/06/22 10:46]
>>562 ファイル名の上で <C-]> もしくは <C-W><C-]>

564 名前:561 mailto:SAGD [04/06/22 17:54]
>>563
ありがとうございます。・゜・(ノ∀`)・゜・。
そんな簡単な方法があったとは…
vimは最近始めたのですが、viを長年つかっていた身としてなんか
妙にクヤシクなったので、スクリプト書いてみました。
処女作ですが、みなさんの忌憚の無いつっこみおまちしてます。

command! -nargs=1 Findmode :call s:StartFindMode(<f-args>)
function! Findg()
let obufclnline = getline('.')
if filereadable(obufclnline)
normal ^W^W
execute 'e ' . obufclnline
endif
endfunction
function! Finding(...)
let startcmd = "read !dir /s/b ".a:1
normal 1GdG
silent execute startcmd
endfunction
function! s:FindWindow()
nnoremap <buffer> <CR> :call Findg()^M
nnoremap <buffer> <ESC> :bd!^M
command! -buffer -nargs=1 Finding :silent call Finding(<f-args>)
endfunction
function! s:StartFindMode(...)
let startcmd = "10new __findlist__ | read !dir /s/b ".a:1
silent execute startcmd
endfunction
au BufEnter __findlist__ call s:FindWindow()



565 名前:名無しさん@お腹いっぱい。 mailto:sage [04/06/22 18:02]
>>564
:help gf
:help :cfile
:help :copen
:help errorformat

566 名前:名無しさん@お腹いっぱい。 mailto:sage [04/06/22 22:56]
>>565 無駄のない簡潔なメッセージだが何を言いたいのか分からない。

>>564
command! -nargs=1 Findmode :call s:StartFindMode(<f-args>)
function! Findg()
  let obufclnline = getline('.')
  if filereadable(obufclnline)
    " ポータビリティーのため
    execute 'wincmd w'
    execute 'e ' . obufclnline
  endif
endfunction
function! Finding(...)
  let startcmd = "read !dir /s/b ".a:1
  " 好み。俺はこの方が分かりやすい。
  execute '1,$delete _'
  silent execute startcmd
endfunction

567 名前:名無しさん@お腹いっぱい。 mailto:sage [04/06/22 22:59]
続き

function! s:FindWindow()
  " ポータビリティーのため。^Mより<CR>がいい。
  nnoremap <buffer> <CR> :call Findg()<CR>
  nnoremap <buffer> <ESC> :bd<CR>
  command! -buffer -nargs=1 Finding :silent call Finding(<f-args>)
endfunction
function! s:StartFindMode(...)
  let startcmd = "10new __findlist__ | read !dir /s/b ".a:1
  silent execute startcmd
  " 好み
  normal gg
  " 一時的なバッファにする。よく知らない。|special-buffers|
  set buftype=nowrite
  set bufhidden=delete
  set noswapfile
endfunction
au BufEnter __findlist__ call s:FindWindow()

感想:使ってみたら意外と便利だった。

568 名前:561 mailto:sage [04/06/22 23:53]
>>564

errorformatにならって、findファイルリストをつくって
cfileで読み込んで、copenで開いて
gfで開けってことかな? いろいろためしてみたけど、いまいちうまくいきません(´Д⊂グスン
つかえたら、copenは便利そうですね。

>>566

丁寧にありがとうございます^^
あと感想ありです。誉めてもらったヽ(´ー`)ノ

なるほど wincmdかぁ、ほんとは__findlist__があるか判定して、
バッファ名でやりたかったんですが、よくわかりませんでした(´ヘ`;)

setはカレントバッファにしか影響をおよぼさないんですね?
勉強になります。
あと、modifiableとかをオフにしておいたほうがいいのかな

windowsでしかうごきませんが、使ってみて要望とかありましたらお願いします。
できるかぎり、、がんばってみます(;・∀・)


569 名前:名無しさん@お腹いっぱい。 mailto:sage [04/06/23 16:25]
>>568
バッファがあるかどうかはbufexists()とかbufloaded()とかかな?

余裕があるならプラグインの形にまとめてどこかにうpしとくと誰かが喜ぶと思います。
なんならvim.orgに…。
あとこんぐらいしか思いつかないが
ファイル検索コマンドを変更可能に。これだけでマルチプラットフォーム。
ウインドウを縦分割に変更可能に。
ファイルを開く時に新しいウインドウを作ったり作らなかったり。
あとこんなの
nnoremap <buffer> <Space> :call Findg()<CR>:execute 'wincmd W'<CR>j
nnoremap <buffer> <S-CR> :call Findg()<CR>:execute 'wincmd W'<CR>

570 名前:561 mailto:sage [04/06/26 10:24]
>>568
プラグインっぽくしてみました。
使用方法は、ファイルのヘッダに簡単に記載してます。

ttp://rupan.zive.net/~kain/cgi-bin/up/src/up1193.zip





571 名前:561 mailto:sage [04/06/26 10:26]
s/568/569/
まちがえました(´Д⊂グスン

572 名前:名無しさん@お腹いっぱい。 [04/06/26 14:03]
Findmode便利
まったりだけど良スレ

573 名前:名無しさん@お腹いっぱい。 mailto:sage [04/07/01 14:05]
" modelineの拡張
if !exists('g:MX_mx')
  let g:MX_mx = 'vimex:\(.*\)'
endif

command! ModeLineEx :call s:DoModeLineEx()

function! s:DoModeLineEx()
  let mx = g:MX_mx
  if exists('b:MX_mx')
    let mx = b:MX_mx
  endif
  let lnum = line('.')
  let cnum = col('.')
  if search(mx, 'w') > 0
    normal G$
    let flags = 'w'
    let fname = tempname()
    execute 'redir > ' . fname
    while search(mx, flags) > 0
      let l = matchstr(getline('.'), mx)
      let cmd = substitute(l, mx, '\1', '')
      silent! echo cmd
      let flags = 'W'
    endwhile
    redir END

574 名前:名無しさん@お腹いっぱい。 mailto:sage [04/07/01 14:07]
    if filereadable(fname)
      execute 'source ' . fname
      call delete(fname)
    endif
    call cursor(lnum, cnum)
  endif
endfunction

" 自動化するならセキュリティー的にはこんな処置でいいと思う
au BufReadPost * if getline(1) =~ 'vimpass:MYPASSWORD' |
               \   silent! ModeLineEx |
               \ endif

" と、書いてみたが有効な使い道が思いつかない...orz

575 名前:名無しさん@お腹いっぱい。 mailto:sage [04/07/01 14:17]
ちなみに使い方はファイルのどこでもいいので
vimex: function! SayHello()
vimex:   return 'Hello'
vimex: endfunction
vimex: let test = SayHello()
このようにスクリプトを書いておくと、その部分だけ抜き出して実行します。
フォーマットは g:MX_mx か b:MX_mx を書き変えて変更します。

576 名前:名無しさん@お腹いっぱい。 mailto:sage [04/08/20 17:19]
2つ以上の name spaces を同時に指定するのはできないんですよね
b:s:hoge とか bs:hoge みたいなかんじで

577 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [04/08/20 18:37]
>>576
たしか、SIDをmapargを使って取得して、curly-braces-namesで擬似的にb:s:を実現す
ることは可能です。

map <SID>xx <SID>xx
let s:sid = substitute(maparg('<SID>xx'), 'xx$', '', '')
unmap <SID>xx

let b:somename_{s:sid} = "buffer script local variable"

578 名前:576 mailto:sage [04/08/21 06:48]
>>577
そんな方法が。参考になりました。

579 名前:名無しさん@お腹いっぱい。 [04/10/19 12:36:56]
"レジスタに値が入った時点でなんだかの動作を起こすことって可能でしょうか?
具体的にはレジスタの履歴をyyした時点で保存したいのですが。

580 名前:名無しさん@お腹いっぱい。 mailto:sage [04/10/20 00:22:22]
>>579
:help event 見てもそれらしきイベントは無いねぇ
map yy とかするしか無いんじゃない?

ちなみにviminfoファイルにレジスタ履歴その他を保存しておくことができるけどね
どういうものを残すかはオプションで指定できる
:help 'viminfo'



581 名前:579 [04/10/21 12:05:35]
>>580
返信ありがとうございます。
やっぱりひとつひとつキーマップしかないのですかねぇ。
viminfoでの履歴は、a-z 0-9なんかのレジスタしか保存できませんよね?
かたっぱしからレジスタにつっこんだ履歴を保存したので…。

582 名前:名無しさん@お腹いっぱい。 mailto:sage [04/10/22 00:45:29]
スクリプトで、他のファイルに退避して、
使うときに読み込むのはどうかな?

583 名前:名無しさん@お腹いっぱい。 [05/01/03 05:39:50]
Vimって:wを連続で行ったときもバックアップを作ってくれちゃうから、
一定時間経過したときのみバックアップするようなスクリプトを
考えてみた。つっこみ頼みます。

" 指定したファイルのバックアップが一定時間以上古ければバックアップを作り直す。
" 例: call MyBackup("%")

" この値以上古ければ更新(単位:秒)
let g:my_backup_interval=1800
" バックアップファイルの拡張子
let g:my_backup_ext=".bak"
" バックアップを作るディレクトリ
let g:my_backup_dir="~/.bak"

function! MyBackup(orgfile)
let fn = substitute(expand(a:orgfile), ".*/", "", "")
let bakfile = glob(g:my_backup_dir) . "/" . fn . g:my_backup_ext
let baktime=getftime(bakfile)
if (localtime() - baktime) > g:my_backup_interval
exe "w! " . bakfile
echo "Backup: " . bakfile
endif
endfunction

584 名前:名無しさん@お腹いっぱい。 [05/01/04 01:44:42]
時間よりも内容の変化で区切ってバックアップしたほうがいいと思う。
バックアップというよりバージョン管理か。
転ばぬ先の杖としてならそういう仕組もありかもね。
スクリプトは特に問題ないような気がします。
#autocmdを使って
#BufWritePre: 時間が経っていなければset nobackup
#BufWritePost: &backupを復元
#って手もあるけど、別口で保存しといたほうが安心か。

585 名前:名無しさん@お腹いっぱい。 mailto:sage [05/01/04 03:29:23]
保存するごとに、バージョン番号を付けたコピーを作成する
スクリプトがあったよ。確か。

ふと、バックアップディレクトリを覗くと、そこにはっ、、、!!

586 名前:名無しさん@お腹いっぱい。 [05/01/15 15:47:37]
vimonline.vim に current version の 表示を加えてみました <br> <br> begin 644 vimonli
ne.diff <br> M+2TM('9I;6]N;&EN92YV:6TN;W)I9PE4:'4@2F%N(#$S(#`T.C0V.C,W(#(P <br> M,#4**RLK('
9I;6]N;&EN92YV:6T)4V%T($IA;B`Q-2`Q,SHU.#HQ-B`R,#`U <br> M"D!`("TR-2PV("LR-2PW($!`"B`@('-I;&
amp;5N="$@)7,O+R]G"B`@('-I;&5N <br> M="$@)6<O/'-P86X@8VQA<W,](FYE=W-D871E(B?L+UY<&
lt;RH?"]P/B0O:F]I <br> M;@H@("!S:6QE;G0A("5G+SQT9"!C;&%S<STB;F5W<V1A=&4B+RPO/%PO
=&0^ <br> M)"]J;VEN"BL@('-I;&5N="$@)7,O7EPH7&1<9"I<+EQD7&0J7"Y<9%QD*EP
I <br> M)"??:#$^5FEM(%PQ(&ES('1H92!C=7)R96YT('9E<G-I;VX?"]H,3XO"B`@ <br> M(&-A;&
;P@04Q?97AE8W5T92@G)7,O+BI<*$YE=W-<*3Q<+W-P86X^+BHO7U]? <br> M)RYG.FAE861L:6YE36%R:T-A
=&5G;W)Y+B=<,2]I)RD*("`@8V%L;"!!3%]E <br> M>&5C=71E*"<E<R?N*EPH4F5C96YT(%-C
<FEP="!5<&1A=&5S7"D?"]S<&%N <br> M/BXJ+U]?7R<N9SIH96%D;&EN94UA<
FM#871E9V]R>2XG7#$O:2<I"B`@(&-A <br> M;&P@04Q?97AE8W5T92@G)7,O+BI<*%)E8V5N="!4
:7`@061D:71I;VYS7"D? <br> M7"]S<&%N/BXJ+U]?7R<N9SIH96%D;&EN94UA<FM#871E9V]R>
;2XG7#$O:2<I <br> !"@`` <br> ` <br> end<br><br>

587 名前:& ◆h9Bn.Lr5Ro [05/01/15 15:54:13]
失敗しました。>>586

begin 644 vimonline.diff
M+2TM('9I;6]N;&EN92YV:6TN;W)I9PE4:'4@2F%N(#$S(#`T.C0V.C,W(#(P
M,#4**RLK('9I;6]N;&EN92YV:6T)4V%T($IA;B`Q-2`Q,SHU.#HQ-B`R,#`U
M"D!`("TR-2PV("LR-2PW($!`"B`@('-I;&5N="$@)7,O+R]G"B`@('-I;&5N
M="$@)6<O/'-P86X@8VQA<W,](FYE=W-D871E(B?L+UY<<RH?"]P/B0O:F]I
M;@H@("!S:6QE;G0A("5G+SQT9"!C;&%S<STB;F5W<V1A=&4B+RPO/%PO=&0^
M)"]J;VEN"BL@('-I;&5N="$@)7,O7EPH7&1<9"I<+EQD7&0J7"Y<9%QD*EPI
M)"??:#$^5FEM(%PQ(&ES('1H92!C=7)R96YT('9E<G-I;VX?"]H,3XO"B`@
M(&-A;&P@04Q?97AE8W5T92@G)7,O+BI<*$YE=W-<*3Q<+W-P86X^+BHO7U]?
M)RYG.FAE861L:6YE36%R:T-A=&5G;W)Y+B=<,2]I)RD*("`@8V%L;"!!3%]E
M>&5C=71E*"<E<R?N*EPH4F5C96YT(%-C<FEP="!5<&1A=&5S7"D?"]S<&%N
M/BXJ+U]?7R<N9SIH96%D;&EN94UA<FM#871E9V]R>2XG7#$O:2<I"B`@(&-A
M;&P@04Q?97AE8W5T92@G)7,O+BI<*%)E8V5N="!4:7`@061D:71I;VYS7"D?
M7"]S<&%N/BXJ+U]?7R<N9SIH96%D;&EN94UA<FM#871E9V]R>2XG7#$O:2<I
!"@``
`
end


588 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [05/01/15 16:49:59]
>>587
なんかその diff 微妙におかしくありませんか?

あ、全角「?」が含まれている?

589 名前:名無しさん@お腹いっぱい。 mailto:sage [05/01/15 17:05:54]
そろそろuuencode.vimほすい鴨
↓がんがれ

590 名前:586 mailto:sage [05/01/15 18:49:10]
やっぱり失敗してます。>>587
もう1回挑戦

--- vimonline.vim.orig Thu Jan 13 04:46:37 2005
+++ vimonline.vim Sat Jan 15 13:58:16 2005
@@ -25,6 +25,7 @@
silent! %s///g
silent! %g/<span class="newsdate"/,/^?s*<?/p>$/join
silent! %g/<td class="newsdate"/,/<?/td>$/join
+ silent! %s/^?(?d?d*?.?d?d*?.?d?d*?)$/<h1>Vim ? is the current version<?/h1>/
call AL_execute('%s/.*?(News?)<?/span>.*/___'.g:headlineMarkCategory.'?/i')
call AL_execute('%s/.*?(Recent Script Updates?)<?/span>.*/___'.g:headlineMarkCategory.'?/i')
call AL_execute('%s/.*?(Recent Tip Additions?)<?/span>.*/___'.g:headlineMarkCategory.'?/i')




591 名前:586 mailto:sage [05/01/15 19:21:50]
すみません。
590も変。
全角?を半角backslashにしただけじゃ直りませんね。

1行足しただけです。
あと、"Vim ? is"の所はbackslashの後に1を足して下さい。

顔を洗って寝直して来ます。


592 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [05/01/15 20:10:56]
>>589
www.kaoriya.net/testdir/base64.vim

既にあるかも。
:call Uudecode()
でカーソル行以降の最初のbegin〜endブロックをデコードしてカレントディレクトリ
に保存します。Chaliceのバッファに対しても使えます。一応
:call Uuencode(filename)
もあるみたいだけど、なんかうまく動いてないかも。

593 名前:586 mailto:sage [05/01/16 23:20:25]
悔しいので再挑戦させてください。

begin-base64 644 vimonline.diff.gz
H4sICEfG6kEAA3ZpbW9ubGluZS5kaWZmALWQwU+DMBjFz9tf8bnMMMZoYWMjI0hYvBn14KanZoTQ
BqqskLZM/e8tmR5mjIkHD22aL+/33vfqui4c+aERNRcMmRdqJC8Hu6qDm1yAvwAviIJVtAhh7nnL
oeM45/rBthMn6Qr8dRSEkb8+SdMU3PlytgLH3CGk6RAAFK+Z0BdwqTDG5dmkxLFqjVFR50pdjQR7
VTTXbIRneE/UNCa4Tcb4ueHiO6bpT5ABNP0inLPoPZkQStDncYg9xnHlJ0/8AMQHrkBXDIpOSgPA
kUnFG2HsjAT32UVe17C5zdgbKzrNJpaxRFMyuTfpxDbCvkeCpjjLMguVUcVy2v/XXS5frs12ZSPf
kUV8zC37N78HVvQLbAvJWw2Pbd/sPwJ2vIUNpVybmn/3/wAkbgcXQwIAAA==
====

少し変更しました。


594 名前:586@Vim%Chalice mailto:sage [05/01/23 11:41:11 ]
headline/sankei.vimを
記事のタイトルを左に、
urlを補完して右に移動するように
変更してみました。

begin-base64 644 sankei.vim.diff.gz
H4sICKwH80EAA3NhbmtlaS52aW0uZGlmZgCdUtuK2zAQfY6/YmxafIvl2Lm0NY5JWFpKm1Do7tKH
KFm0tmJrY8vBlkv7mD+vFGeX0FIKBXmYkc7xnDmS53nQEn6gDH1nFaoblg/uig4+EQ7BWK5oMo0m
MwhHo6nmuu4VeHDb8TMulLggGs2i6dset1iANx6+AVeFxUID44oGHtyeC/hGH+FYdjnjsK8bKCjJ
SsapAkmKYq0J40J+tIkG6/uvyy+fl3BHmhriQ93UfCEOBBEhkCQ9HRPNM2BFWgE3BeE5jQZB6El9
ntQ0QZr722E4fj6cIg00aNOGHQXlaZ0xnkN6fDcO5b6aZRIOJ+DK2E8D0LKScqHD61bH1S5mVb7Z
JVsniQkUDd3PDWxtdsYWu9g2EpXHWwfbsU8S5LzS8fzjZdQPdVMRsZKZ1XaPMk0LK7SH8FIEsjBN
W/+z6en9v5ttdie2dU4MWzjDma8CqBCpgO3T03+oeSnGdi8rJWUJy9UD/UHTTlDLvJgiMnmjLC/E
3AhmRqJMQk68r7noveqVKtWxr3alNbqJ8uj5GaxJc7ghguZ18xOZONBNW3P/0s66GGHrOLj+x31T
PvSP7cztoUIcI+RgVIgK29iSqS1dCEG2yHuUH/cSfT/XgPJs3/FUsJprvwDOsrrWLgMAAA==
====

595 名前:586@Vim%Chalice mailto:sage [05/01/23 18:08:57 ]
>>594を再考し
日付、記事タイトル、url
の順番にしてみました。(diffの後半)

後、トップニュースが、表示されるようにしてみましたが、
今日の紙面?でしか試していません。(.diffの前半)

begin-base64 644 sankei.vim.diff.gz
H4sICCFm80EAA3NhbmtlaS52aW0uZGlmZgCdVF2PmlAQfV5+xUB2g4qA4EcTg4Sm2aZpbPuw9smr
BuUKt4uXBq52N+mL/6M/tnfED/zYNGmil2E4nDlzZoJpmlCE/Jkya8NWVpaz+G6UrOFzyMFpy1+/
0+13euC2Wl3FMIwK+O5pzXc4V+LeSVC/1S5xQQCm0206DhjlJQgUANDg21yEjIPIfnL6q8BcSoWk
3NBZTmMYQKBhkmf5KkxViGPFBChYSrlQwZ56qmlu/8i3iVWI0DR9u/rcakpExDYQpizmAy2lS6H5
9qsUrBiXNGckxgXJMuOifG+vcN5PaBiljNNRKX3EREql3mI9LwQTa0Frt8NAa4JGvK9DXwa6Lv+x
Xpcpb57vMoAphindG0/9CTF8/QTE+hXd181d9X9yiPIIm7ts/4C6whyGIfLzvm52cECvXhyJ1rEb
UrMapL5lpEYiEtl4AB59PMjv3cMfXghJTpcDjdTGU012S+qar5/Y3HO2N+C4Xx232QFDnr39dh0a
fChUspp6bBWjnw3/JgfG3gQr2KFvNe5VMvi0n/BHXD4xlBHOUYaLpObK+RxvHByWXlevi24f/11s
PN2ySeMtm6RF/6HmeNOul7IWYZrC++GMvtAFzlDfmyIiSCiLEzHQnJ7mo0lWY7fupVelUlTt2ZiV
1qi6FR+3/0uYP38IBY2z/NXSiaPKTajs1r4cYLkbDmAs54qXe9UnbSAuVNm/5+nsqfy87Lir1A+F
7ZUabTtWQC7ucs0XgmVc+QuinupGwwQAAA==
====

596 名前:名無しさん@お腹いっぱい。 mailto:sage [05/01/26 19:57:33 ]
あ・・・あのですねあの・・
this->hoge[ i ]なんてなってるのが200行くらいあるんですよ
これら全てを急遽
(*(this->hoge + i))
に変更したいんですよ
あのよろしかったら・・・その・・・・ねそのぉ・・・教えて下さい.

597 名前:名無しさん@お腹いっぱい。 mailto:sage [05/01/26 20:49:34 ]
>>596
なぜ変更したいの?

598 名前:名無しさん@お腹いっぱい。 mailto:sage [05/01/27 09:53:59 ]
そのままポインタ参照したらいいやん

599 名前:名無しさん@お腹いっぱい。 mailto:sage [05/01/27 12:46:10 ]
こんな感じ?
s@\(\k\+\)->\(\k\+\)\[\s*\(\k\+\)\s*\]@(*(\1->\2 + \3))@
これでダメならPerlスレとかで聞いた方がいいかも.

600 名前:名無しさん@お腹いっぱい。 mailto:sage [05/02/12 11:40:41 ]
要望:
1.
hz_ja.vimに変な文字を全部正規化する関数が欲しいなぁ。具体的にはgHA, gZJ

2.
あるフォルダ内のファイルを再帰的に検索するプラグインが欲しいなぁ。
grep -r とか find . -type f | xargs grep みたいなやつ。
Windowsでgrep.exeやcygwin用意するのが面倒な場合があるんで。
あと符号化方式の自動認識を考えたらvimでやっちゃうのも悪くないだろうし。
一個、そういうプラグインを見つけたんだけど、やたら遅くて使い物にならなかった。

それから、検索だけじゃなくて置換も出来ると良いな。リファクタリングするとき便利なんだよね。



601 名前:名無しさん@Vim%Chalice mailto:sage [05/02/12 15:13:46 ]
自分で書け

602 名前:名無しさん@お腹いっぱい。 mailto:sage [05/02/12 20:57:04 ]
WinのCygwin上でvim使ってる人いる?
見ためがいいからgvim使ってるけど,ちょっとしたとき<C-z>で
シェルに降りられるのも便利なんだよねえ.

603 名前:名無しさん@お腹いっぱい。 mailto:sage [05/02/14 08:38:41 ]
>>601
やはりそうなるのか。
「同じ事考えてますねー。ボクは作っちゃいましたよ!」という人が現れるのを期待してたんだが。

604 名前:名無しさん@お腹いっぱい。 mailto:sage [05/02/14 09:34:10 ]
> あるフォルダ内のファイルを再帰的に検索
project.vim で出来るかな。

605 名前:名無しさん@お腹いっぱい。 mailto:sage [05/02/15 00:56:08 ]
>>604
ありがとー。試してみるよ。これでダメなら書くか...

606 名前:586@Vim%Chalice mailto:sage [05/02/15 21:44:24 ]
ttp://cvs.kaoriya.net/svn/kaoriya/vimscript/headline/trunk/plugin/headline/
から 2/13 に頂いた sankei.vim にジャンルの表示を加えてみました。

--- sankei.vim.origSun Feb 13 00:37:00 2005
+++ sankei.vimTue Feb 15 21:37:33 2005
@@ -36,14 +36,12 @@
   let @" = save_reg
   " Format headlines
   silent! %s/<br>/\r/g
-  silent! g/\m^<td height="16"><img.*Special/delete _
-  silent! g/\m^<td height="16"><img.*お知らせ/delete _
-  silent! g!/\m^<img[^>]*><a href="[^"]*.htm"\|^・<a href="[^"]*.htm"\|^<td height="16"><img[^>]*><b>/delete _
+  silent! g!/\m^<img[^>]*><a href="[^"]*.htm"\|^・<a href="[^"]*.htm"\|^<td width="110">/delete _
   silent! %s!\m^<img[^>]*><a href="\([^"]\+\)">\([^<]*\)</a>(\(\d\d/\d\d \d\d:\d\d\)).*$!\=HeadlineFormatLine(submatch(2), submatch(1), submatch(3))!
   silent! %s!\m^<img[^>]*><a href="\([^"]\+\)">\([^<]*\)</a>.*$!\=HeadlineFormatLine(submatch(2), submatch(1), '')!
   silent! %s!\m^・<a href="\([^"]\+\)">\([^<]*\)</a>[^(]*(*\(\d\d/\d\d \d\d:\d\d\))*.*$!\=HeadlineFormatLine(submatch(2), submatch(1), submatch(3))!
   silent! %s!\m^・<a href="\([^"]\+\)">\([^<]*\)</a>.*$!\=HeadlineFormatLine(submatch(2), submatch(1), submatch(3))!
-  call AL_execute('%s!\m^<td height="16"><img.*<font[^>]*>\([^<]\+\)</font>.*!'.g:headlineMarkCategory.'\1!')
+  silent! execute '%s/^<td width=.*alt="\([^"]*\)".*$/'.g:headlineMarkCategory.'\1/'
   silent! execute '%s!"\([^"]\+\)">\([^<]\+\)\(.\+\)$!>\3 \2 '.g:headlineUrl_Sankei.'\1!'
   silent! %s/<[^>]*>//g
 endfunction

607 名前:名無しさん@お腹いっぱい。 [05/02/17 14:15:23 ]
:syntax match

:match
は、どういう風な違いがあるんですか?
一緒??

608 名前:名無しさん@お腹いっぱい。 mailto:sage [05/02/17 14:32:38 ]
>>607 matchは1つしか定義できないし、複雑な条件を付加することもできない

609 名前:名無しさん@お腹いっぱい。 mailto:sage [05/02/17 15:15:21 ]
ありがとう。
そっか、だから match none でも動くのか。

610 名前:名無しさん@お腹いっぱい。 mailto:sage [05/02/18 03:03:35 ]
:match yocchan toshichan



611 名前:名無しさん@お腹いっぱい。 mailto:sage [05/02/21 09:30:55 ]
>>610 で「tanokin torio」がマッチするようになりました。
ありがとうございました。

612 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/03/21(月) 04:20:16 ]
windows環境でgtags.vimを利用している方はいますか?
私の環境だとエラーがでて動かないのですが

613 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/04/23(土) 11:54:58 ]
SuperTab.vim、(GTKの)ximと相性悪くない?
<C-X>押すとximがonになるからいちいちoffにしないと次の操作を受け付けない。

614 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/01(水) 14:07:44 ]
Vim7のスクリプトがだいぶ強まってるので
無意味にベイジアンフィルタを書いてみた
ttp://tokyo.cool.ne.jp/hopper2/is_spam.vim
そのうちpythonになっちゃいそうないきおいだ

615 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/05(日) 06:54:04 ]
どんなとこが強まってるのかちょっと紹介してもらえるとうれしいです。

616 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/05(日) 08:15:44 ]
配列や連想配列が実装された

617 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/05(日) 11:37:39 ]
スクリプト勉強中です。環境はWin2K + Kaoriya版Vim6.3です。
自力では解決できなかったので教えてください。

これは動作しますが、Dos窓を閉じる必要があり面倒だなと思い
execute "! dir > C:\\test"

以下の方法を試しましたが、うまく動作しません。
let value = system("dir > C:\\test") "test.txtは作成されない
echo value "エコーは出力される

何故・・・

618 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/05(日) 13:38:25 ]
system()は出力をリダイレクトで受け取るから実際に実行するコマンドが
  dir > C:\test > tmpfile
的なことになってるとおもわれ
  :9verbose echo system("dir > C:\\test")
とかすれば確認できる。出力を直接受け取る必要がないなら
  :silent execute "! dir > C:\\test"
で、目的の動作になると思う

619 名前:617 mailto:sage [2005/06/05(日) 21:57:30 ]
>>618
ありがとうございました。期待の動作になりました。

>>612
618さんのアドバイスのおかげで、Win2Kではgtags.vimに以下の変更を加えたらとりあえず動きました。
オプションの変更は正直よく理解してません。

"let cmd = 'global' . sep . '-tq' . option . sep . pattern
let cmd = 'global' . sep . '-tq' . sep . pattern
"let stuff = system(cmd . " > " . tmpfile)
:silent execute "!" . cmd . ">" . tmpfile

ところでglobalってC++のオーバーロードも判断してくれるんですかね?期待して調べたんですが。
なんか無理っぽくてちょっとがっかり気味。

全体で数百万ステップを超えるソフトの改造に入ったんですが、でかすぎてさっぱり分からんのです。
オーバーロードを認識しないctagsでは役に立たない。
VC++で定義位置とかを追うとビルドばっかりで時間がかかり使い物にならず。

助けてくだされ。

620 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/05(日) 23:36:16 ]
globalはオーバーロードした関数ごとにタグ作ってるみたいだから
普通に使えるんじゃないの。さすがに文脈を判断してジャンプする
とかむりだろうけど、複数候補から自分で選ぶくらいはできそう。



621 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/07(火) 23:32:27 ]
>>615
直接ファイルの入出力ができるようになったのが便利。
あと、まだ実装されてないみたいだけど文字列をforループで処理できるようになるらしい。
つーかリストはやっぱり強力やなぁ。

622 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/07(火) 23:52:46 ]
ショパン最強

623 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/08(水) 12:51:36 ]
Vim7はこんな風にluaやjavascriptみたいなクラスが書けるのもおもしろい

let counter = {}
let counter.count = 0
function counter.next() dict
  let self.count += 1
  return self.count
endfunction

echo counter.next()

624 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/10(金) 23:02:05 ]
言語の強化よりも、もっとvim内部をいじれるように
してほしいんだけど。
そういう改良はないの?

625 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/10(金) 23:26:33 ]
>>624
ソースがある。

626 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/12(日) 01:05:50 ]
いい加減そういう反応はやめましょうよ…

627 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/12(日) 01:09:13 ]
改良を望む人自身が改良するのが一番いいだろ。

628 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/12(日) 01:29:23 ]
624の言ってるのは、スクリプトそのものの言語仕様をいくら高めたところで
vim側がスクリプトに委ねてくれるものが今のままでは
どのみち大したことはできないってことなんじゃないの。

スクリプトで出来ることを増やそうと言っているのに
その答えがソース弄れというのは頓珍漢。

629 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/12(日) 01:34:56 ]
これは凄いエスパーだな。

630 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/12(日) 02:09:28 ]
ソース弄らなきゃその「スクリプトで出来ることを増やす」こともできないだろ
問題は誰がどのように弄るかなの

だったらどうしたいかアイデアを持っている人がやるのが手っ取り早い



631 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/12(日) 02:34:21 ]
外部でそういう部分を弄って持ち込んでも某mattn氏の二の舞になるだけだからなあ。
hackするのと、開発の方向性を変えるのとは別次元の問題だよ。

632 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/12(日) 03:00:32 ]
とはいえ、開発の方向性を変えるのにパッチを送る以外に有効な方法ある?

まぁ、コミュニティの方向性を変えたいならパッチを送るだけじゃなくって
そういう方向に向くように開発者を説得するのも必要かもしれないが、
それにしたってまず最初にパッチは必要だよね。

633 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/12(日) 03:32:00 ]
こういう件に関しては、あまりそうは思わないな。

単なるhackならとりあえず自分の役には立つが、
scriptingのようなものは正式に取り込まれて初めて意味を持つ。
方向性も定まらないうちに闇雲に書いてみても労力が無駄になるだけだ。
socialを先にすべき問題だろう。

634 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/12(日) 03:33:33 ]
ま、一つ二つ見本くらいは作ってみせてもいいだろうけどネ

patch出して取り込んで、というものとは少々違うわけですよ。

635 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [2005/06/12(日) 10:34:46 ]
一応参考まで。

私の経験で言うとscriptingの拡張としては、User Defined CompletionがVim7で取り
込まれました。パッチはBram氏には相談せずに書き始めました。書き始めた時には無
駄になることも覚悟の上でしたが、ちょうどWin専用で無理矢理Intellisenceを行う
スクリプトが発表された直後だったこともあり、コンセプトは受け入れてもらえると
確信はしていました(まさか関数の定義方法とか殆どそのままだとは思いませんでし
たがorz)。仕様が小さくなかったのでVim6には見送られましたが、Vim7で日の目を見
たというわけです。

逆に言えばVim7開発中である今なら、比較的取り込んでもらいやすいでしょう。もち
ろんパッチの形のほうがBram氏の手間が低くなるので取り込んでもらえる確率は高い
のですが、海外の方はたとえ信義に反しても理に適っていれば納得する傾向があるの
で、コンセプトだけでも背景や考え方つまり説得力があれば、採用される可能性は高
くなるでしょう。

特にMzScheme用のマルチスレッドや、関数ポインタが導入された今ならば、上手くす
れば相当に面白い機能を突っ込める気がしています。

636 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/12(日) 15:17:25 ]
文字コード判定スクリプト。gaucheのguess.cを移植してみた。
ttp://tokyo.cool.ne.jp/hopper2/guess_enc.vim
こっちはlibiconvの移植。(要vim7)
ttp://tokyo.cool.ne.jp/hopper2/vimiconv.tar.bz2

ありえないほど遅いです。
...とんだ無駄足だったよorz

637 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/12(日) 15:22:53 ]
>>636
いやいや、興味深い。
今日の夜にでも試させてもらうよ。



638 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [2005/06/12(日) 15:44:21 ]
>>636
> ありえないほど遅いです。

{}による名前の解決が多いのが原因かもしれないですねぇ。だとすればC++のテンプ
レートみたいに、functionの中でfunctionを定義する、ジェネリックなことができれ
ば解決できるかもしれません。

libcall()使っちゃうのが王道だとは思いますけど。

639 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/13(月) 01:20:26 ]
>>636
試してみた。
500行くらいまでなら、ありえないってほどには遅く感じなかったよ。
10000行のファイルは帰ってこねぇ、、、

640 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/17(金) 23:53:41 ]
synID(line,col,flag)のflagって0でも1でも同じに感じるんですが
どう違うんでしょうか?いまいちわからない…



641 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/19(日) 23:02:44 ]
transparent 属性がついてる構文アイテムの上では違う結果を返すんじゃない。
:set ft=c として ( の上で
:echo synID(line("."),col("."),1)
:echo synID(line("."),col("."),0)
すると違う結果になるよ。


642 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/06/20(月) 21:13:20 ]
ttp://tokyo.cool.ne.jp/hopper2/undo_ex.vim
undoのシリアライズとemacsのselective undoもどき(要vim7)

643 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/08/02(火) 05:10:24 ]
ttp://tokyo.cool.ne.jp/hopper2/kanaconv.vim
簡易ローマ字入力メソッド(要vim7)
まともな辞書を用意すればなんとか使いものになる...かも?

644 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/08/02(火) 12:08:37 ]
それよりim_customの強化きぼんぬ

645 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/08/03(水) 03:48:22 ]
ttp://tokyo.cool.ne.jp/hopper2/kanaconv.vim.gz
とりあえず、
かんな辞書の取り込み
変換リストのプレビュー
文節区切りの変更
MeCabや茶筌などの形態素解析器との連携
を実装した。
初期変換の制度を上げるのは難しそうだなぁ。

646 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/26(月) 19:30:09 ]
DLLの扱いが
libcall() -> DLLロード -> 関数呼び出し -> DLLアンロード
じゃなくて
libopen() -> DLLロード
libcall() -> 関数呼び出し
libclose() -> DLLアンロード
とか、DLLのインスタンスを保持できるようになってないのがちょっと不思議。

647 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [2005/09/26(月) 20:58:17 ]
>>646
インスタンスを保持する変数が無いから。というより変数にはインスタンスを保持でき
なかったから、と考えるのが正確かも。Vim7の変数は多少事情が違うので、うまく議論
できればそのようにすることは不可能じゃない、とは思います。

648 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/26(月) 21:46:15 ]
単純にDLLが状態保持できればと思ったんだけど、でもそうか、
どうせなら複数インスタンスを作れた方がおもしろそうだ。
それならlibopen()がDLLから関数リストをもらって、その関数をセットした
ディクショナリを返すとかがいいな。ついでに引数の制限もゆるめてほしい。
まぁ議論なんてできないわけだが...on

649 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [2005/09/27(火) 08:44:17 ]
>>648
> それならlibopen()がDLLから関数リストをもらって、

DLL自体にはタイプライブラリ機能はありませんから。COMやXPCOMとかいうあたりがな
いとダメでしょう。

> ついでに引数の制限もゆるめてほしい。

マーシャリングですねぇ。つい最近vim-devで、if_*で呼び出せるスクリプト言語か
ら、Vim本体の変数を操作するようなジェネリックな方法がどうとか、そういう議論が
ありました。ガンバレばその流れで関連技術を滑り込ませられるかもしれません。

とはいえ、なんかそれって.NETだよなぁ。

650 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/27(火) 20:06:51 ]
おれはVim専用のDLLを考えてました。
char* vim_getfunclist() という関数から"1,1,func1,1,3,func2"
みたいな文字列が返ってきて、この場合なら引数を一つ取るfunc1()と、
一つから三つまでの引数を取るfunc2()を、DLLは持っている。
関数のプロトタイプは char** func(int argc, char* argv[])
で、文字列のリスト(NULL終端)を返す。みたいな簡単なの。
あとはVimの関数をDLLに渡して、pVim->eval("@a")とかできるようにしたり。
あんまり深くVimの内部まで操作出来るようにすると、お手軽じゃなくなりそうなんで、
Vimへのアクセスは他のスクリプトと同程度になりそうだけど、DLLをC言語で書くなら
Vimの内部表現を直接いじりたいかも。
うーん…欲しいなぁ。



651 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/27(火) 21:38:28 ID:0]
あー、でもどうせvimスクリプトでDLLをラップするだろうから
DLLの扱いはシンプルでいいのかも。

652 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [2005/09/27(火) 22:01:32 ID:0]
内部表現をいじるなら、先ずはソースコードを直接触っちゃったほうが速いでしょう。
難しいところなんですが、エディタとしての価値を直接高めるのに必要な拡張であれ
ば、思いの他すんなり通るものです。一方、間接的なもの、スクリプトの表現力を上げ
てそれが結果的に、というのはなかなかに難しそうです。

653 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/28(水) 03:33:56 ]
どうもDLLをロードするたびに新しいインスタンスが作られるわけではないようで、
複数インスタンスを作るのは難しそう。
というわけで、DLLのインスタンスを保持するだけの最低限のものを作成。
これでもけっこう遊べるかな。
www.uploda.org/file/uporg203304.zip.html
こんな感じで使う
:call libopen('sum.dll')
:echo libcallnr('sum.dll', 'add', 1) => 1
:echo libcallnr('sum.dll', 'add', 32) => 33
:call libclose('sum.dll')
:echo libcallnr('sum.dll', 'add', 43) => 43  "いままでどおり使うこともできるが
:echo libcallnr('sum.dll', 'add', 32) => 32  "毎度初期化される
これだけでだいぶ幅が広がると思うんだけど…
GUIのウィンドウとか、通信とか...

654 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/28(水) 04:22:52 ]
そういうのは今でも出来るけど、ちょっとしたサーバ(daemon?)を作るのが面倒くさいな。

655 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/09/28(水) 06:02:12 ]
> 6   Add support for loading shared libraries, and calling functions in it.
>       :libload internal-name libname
>       :libunload internal-name
>       ...
優先度は低いながらもいちおうTodoには入ってるようで、ver5.3のころから。
たぶんこれはlibcall実装前のTodoな気もしますが…。
libcallの引数を増やすのも、DLLからVimのコマンドを呼べるようにするのも
Todoに入ってますね。

656 名前:名無しさん@お腹いっぱい。 [2005/11/14(月) 23:07:34 ]
verilogの回路を、vimを使ってで記述しています。
で、vimだけ(一部、tag生成のためにperl)をつかって、ドライブ元を自動検索する
スクリプトを作成中です。
そこで、質問ですが、以下の信号を検索するための正規表現をどうしたら最適だと思いますか?
正規表現が無理なら、関数でも可能です。
1.
xxxxが入力ピンとして存在することを調べる
input   xxxx;

input   yyyy,   /*testdesu*/
        xxxx;
2.xxxxが、ドライブされていることを検索
xxxx = yyyy ;

xxxx <= (zzzz <=
    yyyy) ;
3.xxxxが、接続されているピンを検索
.yyyy(xxxx)
や、
.yyyy(  // pin
    /* test */
    xxxx )
今の僕の検索は
1.input\_[^;]*\<xxxx\>
2.\<xxxx\>\_[ \t\[\]0-9:{}]*<\==\_[^;=]\+\_[^;]*;
3.(\_\s*\(\/\*\_.\{-\}\*\/\)\=\_\s*xxxx\>
なんて感じです。結構適当ですが、まぁ、そこそこヒットします。
微妙にスレ違いかもしれませんが、いいアイディアがあれば教えてもらえればと思います。
結構コメントがいろいろ入る可能性があるので、本来は構文解析させるべきなんでしょうが、
それだと、リアルタイム性が薄れるので、なんとか、ベースは検索+関数って感じで
やりたいと思っています。

657 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/20(日) 08:30:23 ]
Verilogというハードウェア記述言語のソースを書いていて、
それをサポートするツールをVimスクリプトで作っていて、
んで、C言語で例えるなら、ある変数の宣言位置や、代入されている位置や、
その変数を引数に取っているある関数を探したい、ということなんかな?
なにが問題なのかよくわかんないからなんとも言えないけど、
そこそこの割り切りは必要じゃないかと。
検索するだけなら:g/xxxx/.-3number 6とかして目視とかョョョ

658 名前:名無しさん@お腹いっぱい。 [2005/11/24(木) 11:56:54 ]
vim スクリプトで skk を実装してみました。
あやしいところが多々ありますが、
とりあえず動いているようです。
よかったら使ってみてください。
www.jt200x.com/uploder/src/up0272.zip

659 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/24(木) 16:12:56 ]
>>658
すごいですね。

660 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/24(木) 16:14:05 ]
たしかにあやしいw
けどまっつんさんのskkim.vimより変換がかろやか



661 名前:名無しさん@お腹いっぱい。 [2005/11/25(金) 00:30:13 ]
rate this script│(*)God ( )Life Changing ( )Helpful ( )Unfulfilling [rate]

再帰登録や補完にまで対応とは、凄いですね。さっそく使わせて頂いております。


ちょっとだけ改造してみました。検討して頂けると嬉しいです。
ttp://www.jt200x.com/uploder/src/up0293.zip
・▽を<C-H>で削除した後に挙動がおかしくなる現象を修正
・gSで辞書を手動セーブ
・以下のオプションを追加
let skk_egg_like_newline = 1 " <CR>で確定しても改行しない
let skk_show_annotation = 1 " skkinput2ライクなannotation表示 (ださい)
" skkサーバなんちゃって対応 (設定するとL辞書は読まない)
let skk_external_prog = "/usr/bin/env ruby -Ke ~/ruby/skkservcaller.rb -w"
"let plugin_skk_disable = 1 " pluginの無効化

直せなかったもの:
・「. /./・/。/…;.../」のような . や \ などを見出しに含むエントリがおかしい。
 search()が正規表現と解釈するため。(これはこれで/anno.* とかできて面白い?)
・タイプ速度が速いとキーを取りこぼす
・検索やコマンドラインなどで入力できない
・カタカナモードでの変換結果がかなを含む場合はトグルする必要がある(▽ヨミカタ→「読ミ方」)
・Chaliceでは[SKK:あ]が表示されない

その他:
mfdは200はないとダメみたいです。
Lisp対応は(concat "hoge")ってのだけあれば十分だと思います。
今後に大いに期待しておりますので、がんがって!

662 名前:658 mailto:sage [2005/11/25(金) 17:22:12 ]
>>659
>>660
さっそく使ってみてくれてありがとう。

>>661
素早い手直しありがとうございます。
ほとんど使わせてもらいましたが、
> ・▽を<C-H>で削除した後に挙動がおかしくなる現象を修正
これがよくわからないので詳しく説明して!
> ・gSで辞書を手動セーブ
ここにすると skk_keep_state == 0 のときに map されないので、
グローバルにしてみました。skk_manual_save_jisyo_keys を
空にするとこのグローバルマッピングは行わないことにしました。
> " skkサーバなんちゃって対応 (設定するとL辞書は読まない)
> let skk_external_prog = "/usr/bin/env ruby -Ke ~/ruby/skkservcaller.rb -w"
これはskkサーバを動かしていないのでわからない。取り入れたけど。

> ・「. /./・/。/…;.../」のような . や \ などを見出しに含むエントリがおかしい。
これは直しました。これを直してるときに SkkSaveEnv のバグを
発見したのでここも直しました。
> ・タイプ速度が速いとキーを取りこぼす
これは腕がないので再現できません。とりあえず screen の paste では
取りこぼしはないように見えるんだけど…。
> ・検索やコマンドラインなどで入力できない
やる気はあるけどちょっと時間がかかりそう。
> ・カタカナモードでの変換結果がかなを含む場合はトグルする必要がある(▽ヨミカタ→「読ミ方」)
これはわりとすぐにできそうです。
> ・Chaliceでは[SKK:あ]が表示されない
これは確かに自覚症状があったので、ちょっと調べてみます。

とりあえず今日できたところまで
ttp://www.jt200x.com/uploder/src/up0309.zip






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

前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