VIM学习笔记 终端模式的快捷键映射(tmap)

:tmap命令

在内置的终端窗口中,为了能正常使用外部 shell 本身的快捷键,Vim 禁用了绝大部分快捷键。也就是说,在内置终端窗口中键入shell命令,既不是插入模式也不是命令行模式,所以imap与cmap都不会生效。Vim为此定义了一种特殊模式,叫做终端作业(Terminal-Job)模式。如果希望为终端作业模式自定义快捷键,那么需要使用:tmap命令。

例如定义Shift+Insert键,用于在终端中粘贴系统剪切板的内容:

:tmap <S-Insert> <C-W>"+

请注意:在内置终端窗口中,Esc键也保留为外部shell所用,并不会返回到终端普通(Terminal-Normal)模式。

可以点击Ctrl-\ Ctrl-N快捷键,返回到终端普通模式。请参考:help CTRL-\_CTRL-N帮助信息。

也可以自定义Shift+Del键,用于返回到终端普通模式:

:tnoremap <S-Del> <C-\><C-N>

在内置终端窗口中,点击ia键,则可以返回到终端作业模式,继续执行命令。

使用以下命令,可以删除所有终端作业模式的键盘映射:

:tmapclear

termwinkey选项

'termwinkey'选项,用于设置终端窗口中引导为<CTRL-W>系列命令的键。其默认值为空,即在终端窗口与普通窗口中,<CTRL-W>引导的快捷键含义保持一致。

:set termwinkey?

termwinkey=

使用默认选项的好处在于,不论是在普通窗口还是在终端窗口之中,点击<CTRL-Ww>键都可以切换到下一窗口;点击<CTRL-Wp>键都可以切换到之前所在窗口。也就是说,适用于普通窗口的<CTRL-W>快捷键,也同样适用于终端窗口。

使用<CTRL-W:>快捷键,则可以在内置终端中进入vim命令行模式。

请注意,为了保持操作的一致性,不建议对'termwinkey'选项进行修改。

命令小结
:tmap创建终端作业模式的键盘映射:help :tmap
:tmapclear删除所有终端作业模式的键盘映射:help :tmapc
:set termwinkey设置终端窗口中引导CTRL-W系列命令的键:help termwinkey

Ver: 250701 | YYQ<上一篇 | 目录 下一篇>