0

UltiSnips プラグインと neosnippet プラグインを同時に使用しようとしています。これは、ある機能とない機能があり、その逆の場合があるためです。したがって、次のようにマップされた Ultisnips と neosnippet :

"UltiSnips
let g:UltiSnipsExpandTrigger="<Tab>"
let g:UltiSnipsJumpForwardTrigger="<Tab>"
let g:UltiSnipsJumpBackwardTrigger="<S-Tab>"`

"neosnippet
imap <C-b> <Plug>(neosnippet_expand_or_jump)
smap <C-b> <Plug>(neosnippet_expand_or_jump)
xmap <C-b> <Plug>(neosnippet_expand_target)

キーを押して両方のプラグイン選択モードでジャンプするスーパータブを作成することを決定するまで、すべてが正常に機能しTabます。UltiSnip でのジャンプは、プラグイン自体によって設定される次のマップを使用して、Tab キーで行われます。

exec "snoremap <silent> " . g:UltiSnipsExpandTrigger . " <Esc>:call UltiSnips#ExpandSnippetOrJump()<cr>"

選択モードでTabキーでシームレスにジャンプできます。ネオスニペットがタブキーで選択モードにジャンプするには、次のようにsmapを変更します:

smap <Tab> <Plug>(neosnippet_expand_or_jump)

UltiSnips は neosnippet プラグインの後にキーをマッピングするため、これは機能しません。だから私はマッピングを次のように変更します:

au InsertEnter * exec "smap " . g:UltiSnipsExpandTrigger . " <Plug>(neosnippet_expand_or_jump)"

しかし今、選択モードでタブキーを使用してneosnippetの拡張スニペットにジャンプでき、UltiSnipsスニペットにジャンプすることはできません。だから私の質問は、これをどのように達成できるのですか?

私は試した :

au InsertEnter * exec "smap " . g:UltiSnipsExpandTrigger . " neosnippet#expandable_or_jumpable() ? '\<Plug>(neosnippet_expand_or_jump)' : '\<Esc>:call "UltiSnips#ExpandSnippetOrJump()<cr>'"

au InsertEnter * exec "smap " . g:UltiSnipsExpandTrigger . " exists(g:ulti_expand_or_jump_res) ? '\<Esc>:call "UltiSnips#ExpandSnippetOrJump()<cr>' : '\<Plug>(neosnippet_expand_or_jump)'"

しかし、それらは機能しません:(

4

0 に答える 0