-3

Я хотел бы сделать некоторые трюки с 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 ответ1

3

Плагин не работает "в фоновом режиме"; его эффект заключается в определении пользовательских сопоставлений / команд / обработчиков событий.

Чтобы проверить , для тех, вы можете использовать exists() и hasmapto() функции.

Предупреждение

"Делай трюки" - это смутная и опасная мотивация. В общем, плагины могут легко сосуществовать; просто выберите разные отображения. Некоторые плагины (AsNeeded) и менеджеры пакетов (VAM) позволяют "лениво" загружать плагины (при первом использовании), но это только помогает сократить время запуска (что при хорошо написанных плагинах, использующих функцию автозагрузки, не должно иметь значения, тем не мение).

Пожалуйста, дайте больше фона; какова ваша конечная цель? Когда вопрос касается только небольшого технического шага, трудно дать хороший ответ. Если вы не скажете нам, почему вы этого хотите, легко поддаться проблеме XY.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .