Отключить автокоманды VIm для определенного буфера

#vim #terminal #conque

#vim #терминал #завершение

Вопрос:

Как пользователь Windows, я использую conque term в качестве своего vim-терминала. Есть ли способ отключить автокоманды CursorHoldI и CursorMovedI, когда буфер является конечным термином. Мои навыки работы с vim-скриптами являются базовыми, я уверен, что есть строка, которую я могу добавить в свой vimrc.Спасибо

Комментарии:

1. «Как пользователь Windows, я использую conque term в качестве своего vim-терминала». Что это вообще значит?

2. Можете ли вы предоставить больше информации о проблеме, которую вы пытаетесь решить? Вы имеете в виду, что используете vim в Windows с подключаемым модулем vim-conque ?

3. Пользователи Unix используют TMUX, а neovim не поддерживает terminal в Windows. Итак, об этих двух вариантах не может быть и речи, я получаю это предупреждение, когда открываю conque term, и, похоже, оно выполняется медленно. tinypic.com/r/rhvmf5/9

4. Пользователи Unix не «используют tmux», и это, похоже, вопрос для отслеживания проблем этого плагина.

5. @romainl не уверен, почему вы отклоняетесь от касательной. Я использую conque_term в качестве своего repl. YCM, Vim-surround и т.д. Используют глобальные автокоманды при перемещении курсора, мне они не нужны, когда буфер является conque_term и они замедляют repl. Если бы я использовал Unix, я мог бы использовать tmux в качестве альтернативы для переключения с vim на repl. Мне просто нужно отключить два автокоманды, когда буфер является conque_term

Ответ №1:

Я не совсем понимаю, зачем вам это нужно делать, но способ отключить запуск определенных автокоманд — это использовать 'eventignore' опцию. (В качестве альтернативы, вы могли бы удалить соответствующие autocmds, но это будет работать только для тех, которые ограничены буфером, а не глобальными, поскольку вы, по-видимому, хотите, чтобы autocmds работали в неконкретных буферах.)

Дело в том, 'eventignore' что это глобальная настройка, поэтому вам нужна другая пара автокоманд для включения / выключения опции, основанной на входе / выходе из буфера Conque.

Внутри каждого буфера Conque запустите это:

 :autocmd WinEnter <buffer> set eventignore =CursorHoldI,CursorMovedI
:autocmd WinLeave <buffer> set eventignore-=CursorHoldI,CursorMovedI
  

Комментарии:

1. Правильно, это соответствует тому, что я ищу: чтобы отключить правописание, когда файл уценен, я бы использовал: autocmd FileType markdown setlocal syntax = отключить правописание

2. Есть ли эквивалент: autocmd BuffType Conque_term setlocal CursorHoldI,CursorMovedI отключен. вышеуказанное не сработало

3. Я не использую плагин — проверьте сами, например, с помощью :setl buftype? в буфере Conque. Также обратите внимание, что настройка в моем ответе должна быть вызвана для каждого буфера Conque, чтобы у вас было что-то вместе :autocmd FileType ... autocmd WinEnter ...