vim-users.jp
December 22, 2009
660 messages
<pre>http://weathernews.jp/pinpoint/cgi/search_result.fcgi?service=11&lat=&lon=&ameno=41277&name=%E5%AE%87%E9%83%BD%E5%AE%AE&pref=41</pre>
<pre>http://www.theweathernetwork.com/common/images/weathermaps/en/images/floods/can_temp_obs.jpg</pre>
Error detected while processing function <SNR>81_Start:
line 9:
E486: Pattern not found: ParseMarkdown()
line 15:
E486: Pattern not found: ShowPage(1)
<pre>Error detected while processing function <SNR>81_Start: line 9: E486: Pattern not found: ParseMarkdown() line 15: E486: Pattern not found: ShowPage(1)</pre>
<pre>http://www.weatheronline.co.uk/images/charts/en/over/20091221/euro/euro/1261431406/tag.gif</pre>
<pre>http://ujihisa.blogspot.com/2009/12/today-rubyspec-dec-21-2009.html</pre>
Error detected while processing function <SNR>81_Start..<SNR>81_ParseMarkdown:
line 16:
E684: list index out of range: 5
E116: Invalid arguments for function getline(pages_line[i],pages_line[i+1]-1),"\n"))
E116: Invalid arguments for function join(getline(pages_line[i],pages_line[i+1]-1),"\n"))
E116: Invalid arguments for function add
<pre>Error detected while processing function <SNR>81_Start..<SNR>81_ParseMarkdown: line 16: E684: list index out of range: 5 E116: Invalid arguments for function getline(pages_line[i],pages_line[i+1]-1),"\n")) E116: Invalid arguments for function join(getline(pages_line[i],pages_line[i+1]-1),"\n")) E116: Invalid arguments for function add</pre>
<pre>http://github.com/sorah/presen.vim/blob/master/plugin/presen.vim まだうごかない</pre>
Error detected while processing function <SNR>81_Start..<SNR>81_ShowPage:
line 3:
E684: list index out of range: 1
E116: Invalid arguments for function append
<pre>Error detected while processing function <SNR>81_Start..<SNR>81_ShowPage: line 3: E684: list index out of range: 1 E116: Invalid arguments for function append</pre>
>let s:b = exists('*vimproc#system')
>function b#b()
>return s:b
>endfunction
>これだとvimprocがsourceされて1が返ってきた。仕方ないからこれで回避するか。
<pre>>let s:b = exists('*vimproc#system') >function b#b() >return s:b >endfunction >これだとvimprocがsourceされて1が返ってきた。仕方ないからこれで回避するか。</pre>
>要するにこの関数は、#で始まる行をs:pagesに格納するんですよね?
s:pagesには、#で始まる行から次の#で始まる行の前の行までの文字列を格納します。
<pre>>要するにこの関数は、#で始まる行をs:pagesに格納するんですよね? s:pagesには、#で始まる行から次の#で始まる行の前の行までの文字列を格納します。</pre>
return map(split(join(getline(1, '$'), "\n"), '\v(^|\n)\ze#+'), 'split(v:val, "\n")')
<pre>return map(split(join(getline(1, '$'), "\n"), '\v(^|\n)\ze#+'), 'split(v:val, "\n")')</pre>
neocomplcache source code readingのために、thincaさんがlingrをwatchしているようです。
<pre>neocomplcache source code readingのために、thincaさんがlingrをwatchしているようです。</pre>
inoremap <expr><C-l> neocomplcache#complete_common_string()
<pre>inoremap <expr><C-l> neocomplcache#complete_common_string() </pre>
if exists('g:NeoComplCache_EnableAtStartup') && g:NeoComplCache_EnableAtStartup
" Enable startup.
call neocomplcache#enable()
endif"}}}
<pre>if exists('g:NeoComplCache_EnableAtStartup') && g:NeoComplCache_EnableAtStartup " Enable startup. call neocomplcache#enable() endif"}}} </pre>
28 +--218 lines: function! neocomplcache#enable() ----
<pre> 28 +--218 lines: function! neocomplcache#enable() ----</pre>
>理論上、無限のプログラミング言語に対応可能
文字を使わないプログラミング言語にも・・・対応・・・
<pre>>理論上、無限のプログラミング言語に対応可能 文字を使わないプログラミング言語にも・・・対応・・・</pre>
neocomplcache#set_variable_patternはどこにあるんだ1!!
<pre>neocomplcache#set_variable_patternはどこにあるんだ1!!</pre>
ちなみに、neocomplcache#enable()にて、complfuncの読み込みも行っています。
<pre>ちなみに、neocomplcache#enable()にて、complfuncの読み込みも行っています。</pre>
ちなみに、AutoComplPopはここを処理してないので、日本語入力中に自動補完が動いて暴走します。
<pre>ちなみに、AutoComplPopはここを処理してないので、日本語入力中に自動補完が動いて暴走します。</pre>
if l:cur_text == s:old_text || l:cur_text == '' || char2nr(l:cur_text[-1:]) >= 0x80
<pre> if l:cur_text == s:old_text || l:cur_text == '' || char2nr(l:cur_text[-1:]) >= 0x80 </pre>
g:NeoComplCache_KeywordPatternsにない場合iskeywordを見てるので、そのせいかと。
<pre>g:NeoComplCache_KeywordPatternsにない場合iskeywordを見てるので、そのせいかと。</pre>
g:NeoComplCache_EnableQuickMatch *g:NeoComplCache_EnableQuickMatch*
省入力のために、-を入力すると候補の横に表示される英数字で候
補を選択できるようにするかを制御する。 1ならば有効になる。
初期値は1なので、有効になっている。
<pre>g:NeoComplCache_EnableQuickMatch *g:NeoComplCache_EnableQuickMatch* 省入力のために、-を入力すると候補の横に表示される英数字で候 補を選択できるようにするかを制御する。 1ならば有効になる。 初期値は1なので、有効になっている。 </pre>
let g:NeoComplCache_KeywordPatterns['default'] = '\v\h\w*'
こうするといいです。
<pre>let g:NeoComplCache_KeywordPatterns['default'] = '\v\h\w*' こうするといいです。</pre>
call feedkeys("\<C-x>\<C-u>", 'n')
<pre> call feedkeys("\<C-x>\<C-u>", 'n') </pre>
executeでなくfeedkeysを使っているのは、ユーザの入力完了を一旦待つという理解でいいのでしょうか
<pre>executeでなくfeedkeysを使っているのは、ユーザの入力完了を一旦待つという理解でいいのでしょうか</pre>
<C-r>=expression<CR>を使うと、勝手にATOKがONになるんですよ。
<pre><C-r>=expression<CR>を使うと、勝手にATOKがONになるんですよ。</pre>
さきほどの日本語入力中に誤作動するバグと相まって、AutoComplPopは使用不能になります。
<pre>さきほどの日本語入力中に誤作動するバグと相まって、AutoComplPopは使用不能になります。</pre>
伊達に一年もこればかり作っていません。thincaさんにも色々突っ込まれたりしたので。
<pre>伊達に一年もこればかり作っていません。thincaさんにも色々突っ込まれたりしたので。</pre>
autoload/neocomplcache.vimはほとんどやり尽くしたんですけどね。
<pre>autoload/neocomplcache.vimはほとんどやり尽くしたんですけどね。</pre>
buffer_complete, include_complete, snippet_complete はまだ洗練が足りないです
<pre>buffer_complete, include_complete, snippet_complete はまだ洗練が足りないです</pre>
filename_complete, keyword_complete, omni_complete, vim_completeの候補を統合しています。
<pre>filename_complete, keyword_complete, omni_complete, vim_completeの候補を統合しています。</pre>
E486: Pattern not found: integrate_complete
<pre>E486: Pattern not found: integrate_complete</pre>
l:result.rankがどこで生成されてるのかが分からない俺には無理なようです・・・
<pre>l:result.rankがどこで生成されてるのかが分からない俺には無理なようです・・・</pre>
if !empty(l:words)
let l:complete_result[l:complfunc_name] = {
\'complete_words' : l:words,
\'cur_keyword_pos' : l:cur_keyword_pos,
\'cur_keyword_str' : l:cur_keyword_str,
\'rank' : call(l:complfunc . 'get_rank', [])
\}
endif
<pre> if !empty(l:words) let l:complete_result[l:complfunc_name] = { \'complete_words' : l:words, \'cur_keyword_pos' : l:cur_keyword_pos, \'cur_keyword_str' : l:cur_keyword_str, \'rank' : call(l:complfunc . 'get_rank', []) \} endif </pre>
@| 907 function! s:integrate_completion(complete_result)"{{{
<pre>@| 907 function! s:integrate_completion(complete_result)"{{{</pre>
l:complfuncとは、neocomplcache#complfunc#補完関数名#のことです。
<pre>l:complfuncとは、neocomplcache#complfunc#補完関数名#のことです。</pre>
buffer_complte.vimやsnippet_complete.vimとかはこんなものじゃないです
<pre>buffer_complte.vimやsnippet_complete.vimとかはこんなものじゃないです</pre>
call neocomplcache#complfunc#補完関数名#get_rank()なのです。
<pre>call neocomplcache#complfunc#補完関数名#get_rank()なのです。</pre>
ちなみに、complfuncの他にfiletype pluginも増える予定なので、さらにややこしくなる予定があります。
<pre>ちなみに、complfuncの他にfiletype pluginも増える予定なので、さらにややこしくなる予定があります。</pre>
とりあえず。ujihisaさんの流れに戻しましょう。。 さらにカオスにならないために・・・
<pre>とりあえず。ujihisaさんの流れに戻しましょう。。 さらにカオスにならないために・・・</pre>
ujihisaさんがs:integrate_completion()の解読終わったら、keyword_complete.vimに移動しましょう。
<pre>ujihisaさんがs:integrate_completion()の解読終わったら、keyword_complete.vimに移動しましょう。</pre>
omni_completionでは.付きで補完できなかったりするので、このようなややこしいことになってます
<pre>omni_completionでは.付きで補完できなかったりするので、このようなややこしいことになってます</pre>
ちなみに、keyword_complete.vimで呼び出される通常のpluginは補完開始位置が決まっています。
<pre>ちなみに、keyword_complete.vimで呼び出される通常のpluginは補完開始位置が決まっています。</pre>
Vimの補完もよく見てみると、補完開始位置が一定のものはkeyword completionとしてまとまっていますよね。
<pre>Vimの補完もよく見てみると、補完開始位置が一定のものはkeyword completionとしてまとまっていますよね。</pre>
C-xではじまるいろいろはvim hacksのshougoさんの記事にもあった気がしますね
<pre>C-xではじまるいろいろはvim hacksのshougoさんの記事にもあった気がしますね</pre>
neocomplcacheも以前は補完関数を一つしか同時に呼べなかったのはこれが原因です。
<pre>neocomplcacheも以前は補完関数を一つしか同時に呼べなかったのはこれが原因です。</pre>
let s:quickmatch_table = {
\'a' : 0, 's' : 1, 'd' : 2, 'f' : 3, 'g' : 4, 'h' : 5, 'j' : 6, 'k' : 7, 'l' : 8,
\'q' : 9, 'w' : 10, 'e' : 11, 'r' : 12, 't' : 13, 'y' : 14, 'u' : 15, 'i' : 16, 'o' : 17, 'p' : 18,
\'z' : 19, 'x' : 20, 'c' : 21, 'v' : 22, 'b' : 23, 'n' : 24, 'm' : 25,
\'1' : 26, '2' : 27, '3' : 28, '4' : 29, '5' : 30, '6' : 31, '7' : 32, '8' : 33, '9' : 34, '0' : 35,
\}
<pre>let s:quickmatch_table = { \'a' : 0, 's' : 1, 'd' : 2, 'f' : 3, 'g' : 4, 'h' : 5, 'j' : 6, 'k' : 7, 'l' : 8, \'q' : 9, 'w' : 10, 'e' : 11, 'r' : 12, 't' : 13, 'y' : 14, 'u' : 15, 'i' : 16, 'o' : 17, 'p' : 18, \'z' : 19, 'x' : 20, 'c' : 21, 'v' : 22, 'b' : 23, 'n' : 24, 'm' : 25, \'1' : 26, '2' : 27, '3' : 28, '4' : 29, '5' : 30, '6' : 31, '7' : 32, '8' : 33, '9' : 34, '0' : 35, \} </pre>
autoload/neocomplcache/complfunc/keyword_complete.vim
<pre>autoload/neocomplcache/complfunc/keyword_complete.vim</pre>
autoload/neocomplcache/complfunc/keyword_complete.vimをざっと見て、
<pre>autoload/neocomplcache/complfunc/keyword_complete.vimをざっと見て、</pre>
# USSR#1: Neocomplcache ソースコード読解会
今日は neocomplcache-4.0.3/autoload/neocomplcache.vim を読みました。
特にしっかりと読んだ関数:
* `function! neocomplcache#enable()`
* `function! s:complete()`
* `function! s:integrate_completion(complete_result)`
<pre># USSR#1: Neocomplcache ソースコード読解会 今日は neocomplcache-4.0.3/autoload/neocomplcache.vim を読みました。 特にしっかりと読んだ関数: * `function! neocomplcache#enable()` * `function! s:complete()` * `function! s:integrate_completion(complete_result)` </pre>
ちょっとShougoさんに質問。vimscriptの書き方のスタンスとかにもなると思うのだけど、 "{{{{ と "}}} の前にスペースを入れてないのは、何故でしょう?<中身と関係無いところですっごく気になった。
<pre>ちょっとShougoさんに質問。vimscriptの書き方のスタンスとかにもなると思うのだけど、 "{{{{ と "}}} の前にスペースを入れてないのは、何故でしょう?<中身と関係無いところですっごく気になった。</pre>
> "{{{{ と "}}} の前にスペースを入れてないのは、何故でしょう?
<pre>> "{{{{ と "}}} の前にスペースを入れてないのは、何故でしょう?</pre>
VimKaigi2010でujihisaさんが発表するのは「hacking (vimのソースコード )
<pre>VimKaigi2010でujihisaさんが発表するのは「hacking (vimのソースコード )</pre>
今はvimprocやvimshellとかもやってるので、アイデアがなければ放置される可能性もある。
<pre>今はvimprocやvimshellとかもやってるので、アイデアがなければ放置される可能性もある。</pre>
段階的にやった方がいいと思うんだけど・・・ vimproc,vimshell,neocomplcacheの中でより簡単な順番にならべるとどうなるんだろう?
<pre>段階的にやった方がいいと思うんだけど・・・ vimproc,vimshell,neocomplcacheの中でより簡単な順番にならべるとどうなるんだろう?</pre>
vimprocはちょっと特殊なので、判断が難しいところ。外部プログラム起動系の話なので。
<pre>vimprocはちょっと特殊なので、判断が難しいところ。外部プログラム起動系の話なので。</pre>
vimshellはVimでシェルを実装するという、正気の沙汰とは思えないプロジェクトなので。
<pre>vimshellはVimでシェルを実装するという、正気の沙汰とは思えないプロジェクトなので。</pre>
auto_cd, auto_pushd, コマンドラインスタック, ファイル名生成とか。
<pre>auto_cd, auto_pushd, コマンドラインスタック, ファイル名生成とか。</pre>
みなさんMacだから分からないと思いますが、特にWindows環境にはzshとかscreenといった便利な環境がなく、
<pre>みなさんMacだから分からないと思いますが、特にWindows環境にはzshとかscreenといった便利な環境がなく、</pre>
PowerShellは起動が遅いんですよね。シェルだけではなく、端末の仕様も時代遅れです。
<pre>PowerShellは起動が遅いんですよね。シェルだけではなく、端末の仕様も時代遅れです。</pre>
みんながMacに逃げている今だからこそ、Windowsでどれだけやれるか踏ん張りたいのです。
<pre>みんながMacに逃げている今だからこそ、Windowsでどれだけやれるか踏ん張りたいのです。</pre>
WindowsだろうとMacだろうとLinuxだろうと、Vim+neocomplcache+vimshellで幸せになれると信じています。
<pre>WindowsだろうとMacだろうとLinuxだろうと、Vim+neocomplcache+vimshellで幸せになれると信じています。</pre>
とりあえず。サーバ(Ubuntu9.10)の方には入れてあります<neocomplcache
<pre>とりあえず。サーバ(Ubuntu9.10)の方には入れてあります<neocomplcache</pre>
<pre>http://github.com/Shougo/neocomplcache/tree/10b5fa2c19bb51df06da16b59dae3ed8a3593c60</pre>
まずはvimprocのMinGWビルドとWindows環境におけるptyサポートが急務なのですが、
<pre>まずはvimprocのMinGWビルドとWindows環境におけるptyサポートが急務なのですが、</pre>










