vim-users.jp
December 22, 2009
660 messages
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
Error detected while processing function <SNR>81_Start:
line 9:
E486: Pattern not found: ParseMarkdown()
line 15:
E486: Pattern not found: ShowPage(1)
Error detected while processing function <SNR>81_Start:
line 9:
E486: Pattern not found: ParseMarkdown()
line 15:
E486: Pattern not found: ShowPage(1)
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
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
http://github.com/sorah/presen.vim/blob/master/plugin/presen.vim
まだうごかない
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
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
>let s:b = exists('*vimproc#system')
>function b#b()
>return s:b
>endfunction
>これだとvimprocがsourceされて1が返ってきた。仕方ないからこれで回避するか。
>let s:b = exists('*vimproc#system')
>function b#b()
>return s:b
>endfunction
>これだとvimprocがsourceされて1が返ってきた。仕方ないからこれで回避するか。
>要するにこの関数は、#で始まる行をs:pagesに格納するんですよね?
s:pagesには、#で始まる行から次の#で始まる行の前の行までの文字列を格納します。
>要するにこの関数は、#で始まる行をs:pagesに格納するんですよね?
s:pagesには、#で始まる行から次の#で始まる行の前の行までの文字列を格納します。
return map(split(join(getline(1, '$'), "\n"), '\v(^|\n)\ze#+'), 'split(v:val, "\n")')
return map(split(join(getline(1, '$'), "\n"), '\v(^|\n)\ze#+'), 'split(v:val, "\n")')
neocomplcache source code readingのために、thincaさんがlingrをwatchしているようです。
neocomplcache source code readingのために、thincaさんがlingrをwatchしているようです。
inoremap <expr><C-l> neocomplcache#complete_common_string()
inoremap <expr><C-l> neocomplcache#complete_common_string()
if exists('g:NeoComplCache_EnableAtStartup') && g:NeoComplCache_EnableAtStartup
" Enable startup.
call neocomplcache#enable()
endif"}}}
if exists('g:NeoComplCache_EnableAtStartup') && g:NeoComplCache_EnableAtStartup
" Enable startup.
call neocomplcache#enable()
endif"}}}
28 +--218 lines: function! neocomplcache#enable() ----
28 +--218 lines: function! neocomplcache#enable() ----
>理論上、無限のプログラミング言語に対応可能
文字を使わないプログラミング言語にも・・・対応・・・
>理論上、無限のプログラミング言語に対応可能
文字を使わないプログラミング言語にも・・・対応・・・
ちなみに、neocomplcache#enable()にて、complfuncの読み込みも行っています。
ちなみに、neocomplcache#enable()にて、complfuncの読み込みも行っています。
ちなみに、AutoComplPopはここを処理してないので、日本語入力中に自動補完が動いて暴走します。
ちなみに、AutoComplPopはここを処理してないので、日本語入力中に自動補完が動いて暴走します。
if l:cur_text == s:old_text || l:cur_text == '' || char2nr(l:cur_text[-1:]) >= 0x80
if l:cur_text == s:old_text || l:cur_text == '' || char2nr(l:cur_text[-1:]) >= 0x80
g:NeoComplCache_KeywordPatternsにない場合iskeywordを見てるので、そのせいかと。
g:NeoComplCache_KeywordPatternsにない場合iskeywordを見てるので、そのせいかと。
g:NeoComplCache_EnableQuickMatch *g:NeoComplCache_EnableQuickMatch*
省入力のために、-を入力すると候補の横に表示される英数字で候
補を選択できるようにするかを制御する。 1ならば有効になる。
初期値は1なので、有効になっている。
g:NeoComplCache_EnableQuickMatch *g:NeoComplCache_EnableQuickMatch*
省入力のために、-を入力すると候補の横に表示される英数字で候
補を選択できるようにするかを制御する。 1ならば有効になる。
初期値は1なので、有効になっている。
let g:NeoComplCache_KeywordPatterns['default'] = '\v\h\w*'
こうするといいです。
let g:NeoComplCache_KeywordPatterns['default'] = '\v\h\w*'
こうするといいです。
executeでなくfeedkeysを使っているのは、ユーザの入力完了を一旦待つという理解でいいのでしょうか
executeでなくfeedkeysを使っているのは、ユーザの入力完了を一旦待つという理解でいいのでしょうか
buffer_complete, include_complete, snippet_complete はまだ洗練が足りないです
buffer_complete, include_complete, snippet_complete はまだ洗練が足りないです
filename_complete, keyword_complete, omni_complete, vim_completeの候補を統合しています。
filename_complete, keyword_complete, omni_complete, vim_completeの候補を統合しています。
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
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
@| 907 function! s:integrate_completion(complete_result)"{{{
@| 907 function! s:integrate_completion(complete_result)"{{{
l:complfuncとは、neocomplcache#complfunc#補完関数名#のことです。
l:complfuncとは、neocomplcache#complfunc#補完関数名#のことです。
buffer_complte.vimやsnippet_complete.vimとかはこんなものじゃないです
buffer_complte.vimやsnippet_complete.vimとかはこんなものじゃないです
call neocomplcache#complfunc#補完関数名#get_rank()なのです。
call neocomplcache#complfunc#補完関数名#get_rank()なのです。
ちなみに、complfuncの他にfiletype pluginも増える予定なので、さらにややこしくなる予定があります。
ちなみに、complfuncの他にfiletype pluginも増える予定なので、さらにややこしくなる予定があります。
ujihisaさんがs:integrate_completion()の解読終わったら、keyword_complete.vimに移動しましょう。
ujihisaさんがs:integrate_completion()の解読終わったら、keyword_complete.vimに移動しましょう。
omni_completionでは.付きで補完できなかったりするので、このようなややこしいことになってます
omni_completionでは.付きで補完できなかったりするので、このようなややこしいことになってます
ちなみに、keyword_complete.vimで呼び出される通常のpluginは補完開始位置が決まっています。
ちなみに、keyword_complete.vimで呼び出される通常のpluginは補完開始位置が決まっています。
Vimの補完もよく見てみると、補完開始位置が一定のものはkeyword completionとしてまとまっていますよね。
Vimの補完もよく見てみると、補完開始位置が一定のものはkeyword completionとしてまとまっていますよね。
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,
\}
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,
\}
autoload/neocomplcache/complfunc/keyword_complete.vim
autoload/neocomplcache/complfunc/keyword_complete.vim
autoload/neocomplcache/complfunc/keyword_complete.vimをざっと見て、
autoload/neocomplcache/complfunc/keyword_complete.vimをざっと見て、
# USSR#1: Neocomplcache ソースコード読解会
今日は neocomplcache-4.0.3/autoload/neocomplcache.vim を読みました。
特にしっかりと読んだ関数:
* `function! neocomplcache#enable()`
* `function! s:complete()`
* `function! s:integrate_completion(complete_result)`
# USSR#1: Neocomplcache ソースコード読解会
今日は neocomplcache-4.0.3/autoload/neocomplcache.vim を読みました。
特にしっかりと読んだ関数:
* `function! neocomplcache#enable()`
* `function! s:complete()`
* `function! s:integrate_completion(complete_result)`
ちょっとShougoさんに質問。vimscriptの書き方のスタンスとかにもなると思うのだけど、 "{{{{ と "}}} の前にスペースを入れてないのは、何故でしょう?<中身と関係無いところですっごく気になった。
ちょっとShougoさんに質問。vimscriptの書き方のスタンスとかにもなると思うのだけど、 "{{{{ と "}}} の前にスペースを入れてないのは、何故でしょう?<中身と関係無いところですっごく気になった。
VimKaigi2010でujihisaさんが発表するのは「hacking (vimのソースコード )
VimKaigi2010でujihisaさんが発表するのは「hacking (vimのソースコード )
今はvimprocやvimshellとかもやってるので、アイデアがなければ放置される可能性もある。
今はvimprocやvimshellとかもやってるので、アイデアがなければ放置される可能性もある。
段階的にやった方がいいと思うんだけど・・・ vimproc,vimshell,neocomplcacheの中でより簡単な順番にならべるとどうなるんだろう?
段階的にやった方がいいと思うんだけど・・・ vimproc,vimshell,neocomplcacheの中でより簡単な順番にならべるとどうなるんだろう?
みなさんMacだから分からないと思いますが、特にWindows環境にはzshとかscreenといった便利な環境がなく、
みなさんMacだから分からないと思いますが、特にWindows環境にはzshとかscreenといった便利な環境がなく、
WindowsだろうとMacだろうとLinuxだろうと、Vim+neocomplcache+vimshellで幸せになれると信じています。
WindowsだろうとMacだろうとLinuxだろうと、Vim+neocomplcache+vimshellで幸せになれると信じています。
http://github.com/Shougo/neocomplcache/tree/10b5fa2c19bb51df06da16b59dae3ed8a3593c60
まずはvimprocのMinGWビルドとWindows環境におけるptyサポートが急務なのですが、
まずはvimprocのMinGWビルドとWindows環境におけるptyサポートが急務なのですが、







