【问题标题】:How to use command to switch to Terminal-Normal mode?如何使用命令切换到终端普通模式?
【发布时间】:2021-09-25 03:47:43
【问题描述】:

我想做一个键映射,可以移动到终端窗口并切换到终端普通模式,然后再次执行相反的操作以查看长消息。

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

我知道我可以使用&lt;C-w&gt;N&lt;C-\&gt;&lt;C-n&gt; 切换到终端正常模式,但我想在函数中使用命令而不是执行其他操作。

我试试

  1. :执行“正常\&lt;C-w&gt;N”不起作用, 和&lt;C-\&gt;&lt;C-N&gt;
  2. :调用 term_sendkey(..) ,不起作用。

如何使用命令切换到终端普通模式?

【问题讨论】:

  • 查找tnoremaphere
  • @wxz 我猜你的意思是在映射时将调用函数()和&lt;C-W&gt;N之间的过程分开,以防止出现问题。这是一个可行的方法。谢谢。

标签: function vim terminal mode


【解决方案1】:

最后,我尝试&lt;expr&gt;来解决条件要求。

nnoremap <expr><F3> &bt=="" ? "<C-w>j<C-\><C-n>z100<CR>H" : "z10<cr>i" . "<C-_>k"

如果当前缓冲区类型为“”(null),则跳转到终端窗口(默认), 进入普通模式,将行高调整为最大尺寸(假设为 100)。在终端中查看长消息。

如果当前缓冲区类型为“终端”,它将恢复到 10 行高,进入终端模式,并返回上窗口。继续编辑代码窗口。

但我仍在寻找如何在命令中更改终端模式的方法(不是键映射方法)。

【讨论】:

    猜你喜欢
    • 2017-02-02
    • 1970-01-01
    • 1970-01-01
    • 2020-05-28
    • 1970-01-01
    • 2012-10-20
    • 2020-08-11
    • 2014-11-18
    • 2019-06-21
    相关资源
    最近更新 更多