给出了这个脚本(包装建议被简化,原始照顾< cword>)
function! CompleteImport()
let packages = ['java.util.Vector','java.lang.String']
call complete(col('.'),packages)
return ''
endfunction
inoremap <F8> import <C-R>=CompleteImport()<CR>
在插入模式下,您可以添加导入并在按 F8
的建议包之间进行选择但是我希望能够从普通模式
到达弹出窗口选择function! InsertImport()
exe "normal iimport \<C-R>=CompleteImport()\<CR>"
"this commented line would work too
"exe "normal i\<F8>"
endfunction
map <Leader>ji :call InsertImport()<CR>
所以从正常模式,ji
(代表java导入)添加导入到光标下的单词(如果找到)
(移到正确的位置不是问题所以我在这里省略)
到目前为止,ji
从弹出窗口添加了第一个建议并且存在插入模式
我试过:startinsert
但没有运气。
在http://vimdoc.sourceforge.net/htmldoc/eval.html#:execute上查看建议的代码:
:execute "normal ixxx\<Esc>"
但最终的 Esc 根本不重要(至少我的vim安装)这对我来说完全一样:
:execute "normal ixxx"
如果我没有在docs上找到它,我认为这是不可能的。那么,是否可以通过函数保持弹出调用?
其他感兴趣的文档:
http://vimdoc.sourceforge.net/htmldoc/various.html#:normal http://vimdoc.sourceforge.net/htmldoc/insert.html#:startinsert
答案 0 :(得分:1)
g(f(x)) = c (a x + b) + d = ac x + cb + d = (ac) x + (cb + d)
通常是正确的方法,但它确实将控制权交还给用户,因此您无法自动触发完成。
通过a x + b
功能,您可以发送任意键“就像输入一样”。这允许您开始插入模式和触发完成:
:startinsert
PS:You should use :noremap
也用于正常模式映射;它使映射不受重映射和递归的影响。