我想在 Vim 中进行映射,以便 CtrlTab 切换到前一个缓冲区 (:b#
),但随后如果再次按下 Tab 而不释放 Ctrl,则切换到下一个缓冲区 (:bn
)。
这类似于 MS Windows 中的 AltTab 功能的工作方式。有什么办法可以达到这样的效果吗?
我似乎在其他地方找不到这个问题。
最佳答案
Vim 只处理完整的按键; <LeftMouse>
中只有轻微的语义差异与 <LeftRelease>
。您需要以某种方式将键和弦处理为不同的、单独的击键(也许是一些未使用的 <F13>
键?),然后可以 :map
Vim 内部的那个。在 Windows 上,AutoHotkey tool会让你实现这一目标。
或者,您可以 :nmap <C-Tab>
,并检查先前的调用是否最近才发生(使用 localtime()
)。这应该会给你一些实际上按照你想要的方式工作的东西。
关于vim - 区分 Vim 中两次击键之间修饰键的按住和释放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16564293/