我想用 VIM 做一些技巧,所以我请求你们的帮助!
- 是否可以检测插件是否处于活动/运行/打开状态?
- 您可以通过名称关闭插件吗?
- 当插件失去焦点时您可以关闭它吗?
目标是创建在“vimrc”中配置的键盘快捷键(条件),以便我可以轻松地在插件之间切换!
加!
是否有任何插件可以促进所提到的活动?
下面是一个例子:
我举了一个例子来说明我喜欢做的一些事情。在本例中,我在键盘上放置了一个快捷方式(在 vimrc 中),它允许您根据特定插件的状态执行特定操作。例如,如果“Dbg”插件已打开,它会关闭该插件,如果已关闭,则在打开插件之前执行一些操作。
"Note: Open or close "VIM Debug" depending on whether it is opened or closed! By Questor
function! ToggleDbg()
if exists("g:Dbg")
Dbg quit
unlet g:Dbg
else
try
"HYPOTHETICAL EXAMPLE ->
if isrunning("FOO_PLUGIN")
quit("FOO_PLUGIN")
"... or do something else...
endif
"<- HYPOTHETICAL EXAMPLE
Dbg .
let g:Dbg = 1
catch
echo "No Errors found!"
endtry
endif
endfunction
nmap <script><silent><C-F5> :call ToggleDbg()<CR>
答案1
插件不是“在后台”运行;它的效果是通过定义自定义映射/命令/事件处理程序来实现的。
要检查这些,您可以使用exists()
和hasmapto()
函数。
警告
“做一些小把戏”是一个模糊而危险的动机。一般来说,插件可以很容易地共存;只需选择不同的映射即可。一些插件(如所须) 和包管理器 (醋酸乙烯共聚物)允许“延迟”加载插件(首次使用时),但这只是有助于减少启动时间(无论如何,使用自动加载功能编写良好的插件应该不会有任何问题)。
请提供更多背景信息;你的最终目标是什么?当问题只是涉及一个小的技术步骤时,很难给出好的答案。如果你不告诉我们为什么你想要这个,很容易屈服于XY问题。