使用vim中的弹出菜单完成选项卡可以很好地使用正确的配置。 http://vim.wikia.com/wiki/Make_Vim_completion_popup_menu_work_just_like_in_an_IDE
我有一小部分代码生成器和代码操作程序,我在vim中使用它。程序是:
1. initiate visual mode
2. highlight text
3. :'<,'>!hashify
我想利用vim弹出菜单提供一系列操作。
新程序将是:
1. initiate visual mode
2. highlight text
3. <Tab> -- select transform option from menu
是否有可用于此的vimscript接口?
答案 0 :(得分:3)
This plugin允许为Vim创建类似的弹出窗口:
答案 1 :(得分:2)
插入模式完成弹出窗口可用于插入文本片段的选择。有两种方法可以实现它,请参阅:help complete-functions
和:help complete()
。如果您的代码生成器返回要插入的单行(而不是太长)文本片段,则可以通过system(...)
调用生成器,然后将返回的值提供给完成函数。
另一方面,如果菜单选项不直接对应于插入的文本,而是战术选择或动作,大多数插件都会显示这样的选择菜单,其样式与内置菜单类似(例如来自:ilist
):
:echohl Title
:echo 'Code fragments:'
:echohl None
:echo '1. foo'
:echo '2. bar'
:let choice = nr2str(getchar())
:if choice == 1 ...
然后,通过:normal! iText
或setline()
插入与所选内容相对应的文字。
由于您似乎需要从可视模式完成,您可以先使用y
开始映射来捕获所选文本。