2016-06-16 2 views
0

Мне нужно переназначить <Space> для запуска MyFunction() (в нормальном режиме), а затем в зависимости от результата обработки MyFunction() должно быть возможно, чтобы оно работало как нормальное пространство, т.е. перемещать курсор вправо. Как это сделать?Переопределить пространство с собственным кодом и потенциально пространство

Exmaple: курсор находится на «[]», нажатие пробела меняется на «[x]», курсор не перемещается.

Пример: курсор находится на «слове», нажатие пробела перемещает курсор вправо (нормальный режим).

ответ

1
nnoremap <expr> ... 

- это то, что вы ищете.

E.g. если ваш MyFunc() возвращает логическое значение, вы можете сделать :nnoremap <expr> <space> MyFunc()?"\<space>":"\<CR>" Так что это отображает пространство для нормального пространства или Enter зависит от результата MyFunc()

Вы также можете позволить MyFun() возвращать строку, то вы можете непосредственно использовать его в ключевом отображении.

для получения более подробной информации. :h :map-expr.