如何在VIM中编写条件映射?

How to write a conditional mapping in VIM?

我想做 nnoremap Q :q!<cr>nnnoremap Q :bd<CR>,如何混合这两个绑定?
我理想中想要的是使 Q 绑定足够智能,以知道我们何时在缓冲区中,以及何时这是 window.

中的最后一个缓冲区

map <expr> (:h map-<expr>) 是你的朋友。

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

以上

yourConditionExpression

可以是布尔表达式3>0 或函数 returns 布尔值。您可以将检查逻辑放在那里。