使用
vim中的弹出菜单完成选项卡可以很好地使用正确的配置.
http://vim.wikia.com/wiki/Make_Vim_completion_popup_menu_work_just_like_in_an_IDE
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接口?
插入模式完成弹出窗口可用于插入文本片段的选择.有两种方法可以实现它,请参阅:help complete-functions和:help complete().如果您的代码生成器返回要插入的单行(而不是太长)文本片段,您可以通过系统(…)调用生成器,然后将返回的值提供给完成函数.
另一方面,如果菜单选项不直接对应于插入的文本,而是战术选择或动作,大多数插件都会显示这样的选择菜单,其样式与内置菜单类似(例如来自: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开始映射来捕获所选文本.