そのため、Python でカスタムを実装しようとしてcompletefunc
いますが、コードが正しくインターフェイスするのに問題があります。私はそれが(最初に)固定ディレクトリからのファイル名のリストを提供した後です(これはすぐに別のリストに置き換えられます)。
私の最新の試みは次のようになります。
function! CompleteNVIM(findstart,base)
python <<
import vim
import os
def complete( base ):
matches = [ "'"+os.path.splitext(x)[0]+"'" for x in os.listdir('notes') ]
vim.command( "let p = [" + ",".join(matches) + "]" )
return vim.eval('p')
def findstart():
r,c = vim.current.window.cursor
l = vim.current.line
while c>0 and l[c-1] != '[':
c=c-1
return c
def complete_nvim( findstart,base ):
if 1==findstart:
return findstart()
else:
return complete( base )
.
return python complete_nvim(a:findstart,a:base)
endfunction
set completefunc=CompleteNVIM
ただし、返品については文句を言いno variable named python
ます。を省略するとpython
、unknown function complete_nvim
エラーが発生します。
エンディングにもこれを試しました:
if 1==findstart:
return findstart()
else:
return complete( base )
.
endfunction
(つまり、を削除def complete_nvim chunk
しますが、関数の外部から戻ろうとしているために失敗します(またはpythonが考えます)。
また、python関数を初期化関数に入れてから試してみましたset completefunc=complete_nvim
が、それも不明な関数で失敗します。