如何在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 布尔值。您可以将检查逻辑放在那里。
我想做 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 布尔值。您可以将检查逻辑放在那里。