根据windows打开的键位映射

Key mapping based depending on a number of windows open

我将此映射设置为:

noremap  <C-W>  :wq<CR>

并希望仅当屏幕上有一个 window 时才工作(即使之前有其他 windows,我有 关)。我该怎么做?

您可以使用 :help :map-expr 定义条件映射;单个 window 的条件是 winnr('$') == 1:因此:

noremap <expr> <C-W>  winnr('$') == 1 ? ":wq<CR>" : ""

如果有多个 windows,我已将映射设为空操作。您还可以 return "<C-w>" 然后避免丢失非常有用的 CTRL-W 子模式(正如@romainl 已经指出的那样)。我也不明白你的动机; :wq 仅适用于当前缓冲区;如果其他人打开,Vim 无论如何都不会退出。