Обнаружение согнутой строки или пошаговый поиск (?) - PullRequest
2 голосов
/ 14 февраля 2012

Окей, я согласен - название бесполезно.Дело в том, что я понятия не имею, как поместить это в один слой ...

Я пытаюсь сопоставить клавишу пробела так, чтобы она служила : nohl отображение, но в то же время, когда оно находится на согнутой линии, чтобы служить za в обычном режиме (открытие / закрытие сгиба).

Возможно ли это вообще?

У меня возникли проблемы с различием между ними - есть ли способ «обнаружить» сложенную линию под курсором или обнаружить добавочный поиск «в данный момент» (как втам что-то выделено)?

Или я решаю это совершенно неправильно?Все советы приветствуются!

Ответы [ 3 ]

2 голосов
/ 14 февраля 2012

Повторное использование идей от Энди Рк :

function! FoldSetWithNoHL()
    set nohls
    if (foldclosed(line('.')) >= 0)
        exe "normal za"
    endif
endfunction

map <space> :silent! call FoldSetWithNoHL()<cr>
2 голосов
/ 14 февраля 2012

Это может быть некрасиво, но у меня это сработало:

noremap <Space> :nohl<CR> za

Недостатком является ошибка, возникающая при нажатии пробела на развернутых строках.

1 голос
/ 14 февраля 2012

Внесение исправлений в проблемы, которые я перечислил в своем предыдущем комментарии:

function! ToggleFoldWithNoHL()
  if foldlevel('.')
    normal! za
  endif
endfunction

nnoremap <silent> <space> :nohlsearch<cr>:call ToggleFoldWithNoHL()<cr>

Похоже, что нет способа обнаружить наличие активной подсветки поиска, поэтому, если у вас активен поиск внутрисгиб, это очистит поиск, но и закроет сгиб.В этом случае другое место должно вернуть вас туда, где вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...