2017-02-03 4 views
3

Я хочу сделать nnoremap Q :q!<cr> и nnnoremap Q :bd<CR>, как я могу смешать эти две привязки?
В идеале я хочу сделать привязку Q умнее, чтобы знать, когда мы находимся в буфере, и когда это последний буфер в окне.Как написать условное отображение в VIM?

ответ

6

map <expr> (:h map-<expr>) является вашим другом.

nnoremap <expr> Q yourConditionExpression ? ':q!<cr>':':bd<cr>' 

В выше

yourConditionExpression 

может быть логическое выражение, например, 3>0 или функция возвращает boolean. Вы можете поместить туда контрольную логику.

Смежные вопросы