如何使用Vim 8.1的新终端/ termpack支持滚动终端?

时间:2018-05-25 18:56:37

标签: vim

我喜欢Vim 8.1提供的新终端支持,我喜欢将其向上/向下映射到终端,以便您可以选择之前的命令。但是如何在终端上下滚动?目前,在我的GDB程序输出窗口中,我看到如下字符:

^ [[A ^ [[A ^ [[A ^ [[A ^ [[B ^ [[B ^ [[B ^ [[d ^ [[d ^ [[

在终端窗口中,它只是在之前的命令之间移动。

3 个答案:

答案 0 :(得分:28)

在vim的终端上,你必须用' Ctrl-w N '切换到'终端正常模式',( Ctrl-w ,大写N 然后你可以使用常用的vim命令来移动,剪切,复制和粘贴。

Ctrl-w N

完成后,只需按“”或“ a ”即可继续使用终端。

答案 1 :(得分:3)

我这样做:

tnoremap <c-b> <c-\><c-n>

然后每当我需要向上滚动时使用<C-b>,使用gg一直向上滚动,然后使用G向下滚动(或<C-F>用于逐页)。我从任何页面按“ i”或“ a”以在外壳中输入命令。简单本身。

答案 2 :(得分:3)

如果您使用的是function Sum() { this.one = 1; this.two = 2; return new Number(this.one + this.two); } const s = new Sum(); console.log(s.valueOf()) // 3 console.log(s + 3) // 6,请按 Ctrl + \ ,然后按 Ctrl + n 进入终端的普通模式。

帮助(neovim)表示以下内容:

在这种模式下,除:help terminal-input以外的所有键都发送到基础程序。使用<C-\><C-N>返回正常模式。 <C-\><C-N>

此外,如果您经常执行此操作,我建议将其映射到更方便的内容,例如双击Escape:

CTRL-\_CTRL-N

(这样,您仍然可以在命令行中使用需要转义以保留其原始功能的程序,因为如果您不按其他任何键,它将仅在定义的{{3}之后发送常规转义事件} timeout。)