function - 如何使用命令切换到终端普通模式?
问题描述
我想做一个键映射,可以移动到终端窗口并切换到终端正常模式,然后再次执行相反的操作以查看长消息。
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>
切换到终端正常模式,但我想在函数中使用命令来代替做其他事情。
我尝试
- :execute "normal
\<C-w>N
" 也不起作用<C-\><C-N>
。 - :call term_sendkey(..) ,不起作用。
如何使用命令切换到终端正常模式?
解决方案
最后,我尝试<expr>
解决条件要求。
nnoremap <expr><F3> &bt=="" ? "<C-w>j<C-\><C-n>z100<CR>H" : "z10<cr>i" . "<C-_>k"
如果当前缓冲区类型为“”(空),它将跳到终端窗口(默认),进入普通模式,并将行高调整为最大大小(假设为 100)。在终端中查看长消息。
如果当前缓冲区类型是“终端”,它将恢复到 10 行高,进入终端模式,并返回上窗口。继续编辑代码窗口。
但我仍在寻找如何在命令中更改终端模式的方法(不是键映射方法)。
推荐阅读
- flutter - 如何更新导航抽屉中的有状态小部件,同时在 Android 中保持与片段相同的类?
- javascript - Promise 链不能接受我的参数
- html - 部分背景图片有问题
- reactjs - 如何在本机反应中从列表中更改所选文本的样式
- python - 在 Tkinter 画布中绘制的线条的饱和度
- java-8 - 获取两个本地日期实例之间的期间,例如 P1Y2M10DT2H30M
- r - R中的排列和组合
- ruby-on-rails - 按子属性 Ruby on Rails 选择和排序父记录
- bootstrap-4 - 将内容对齐到小型设备的中心,Bootstrap 4
- java - 如何显示时间戳之间超过 24 小时的时差