问题描述
我想做一个可以移动到终端窗口并切换到终端正常模式的键映射,然后再次执行相反的操作来查看长消息。
map <F4> call Toggle_Terminal_Mode()<cr>
function Toggle_Terminal_Mode()
if &buftype ==""
move to terminal-window
switch terminal-normal mode " ?????
do blah blah blah....
elseif &buftype=="terminal" && mode()=="n"
swich terminal-mode
move back to edited buffer window
endif
endfunc
我知道我可以使用 <C-w>N
或 <C-\><C-n>
切换到终端正常模式,但我想在函数中使用命令来做其他事情。
我试试
如何使用命令切换到终端-普通模式?
解决方法
最后,我尝试使用 <expr>
来解决条件需求。
nnoremap <expr><F3> &bt=="" ? "<C-w>j<C-\><C-n>z100<CR>H" : "z10<cr>i" . "<C-_>k"
如果当前缓冲区类型为“”(空),则跳转到终端窗口(默认), 转到普通模式,并将行高调整为最大大小(假设为 100)。在终端中查看长消息。
如果当前缓冲区类型为“终端”,则恢复到10行高,进入终端模式,返回上窗口。继续编辑代码窗口。
但我仍在寻找如何在命令中更改终端模式的方法(不是键映射方法)。