vim 自带的终端
neovim 自带的终端: https://neovim.io/doc/user/nvim_terminal_emulator.html
在 vim8 打开的文本中执行 :terminal
会在文本栏上方新开一个终端栏:
- 使用
C-W
C-W
(按两次Ctrl+W
键,vim 里面的习惯用c-w
或者C-W
来表示,一般组合键不区分字母的大小写)可以在两个窗口之间切换 - 终端栏也有 normal / insert 两种模式,在终端栏按:
<c-\><c-N>
(Ctrl+\
和Ctrl+N
键)进入 insert 模式,能够像文本一样控制光标实现复制和翻页,但是无法写入/修改a
或i
(A
或I
也可以)来进入 normal 模式,像终端一样进行输入/输出
- 终端栏输入命令
exit
来关闭退出终端,如果停留在 vim 文本的界面,则输入:q
退出。
当然,vim 可以针对这个终端进行快捷键和样式等设置:vimhelp: terminal-use
貌似在 neovim 输入 :terminal
是打开一个缓冲区终端页面。参考前面部分 关于 buffer (缓冲区)的一些操作 ;使用 exit
来退出终端。
vim-terminal-help
官网:https://github.com/skywind3000/vim-terminal-help
这个国人开发的小工具能让反常的 vim 终端更美观一些:
- 默认让终端处在底部,当然也可以用
Alt+Shift+hjkl
等快捷键来改变终端位置 C-q
用于在终端栏进入 insert 模式M-=
(Alt+=
)唤起/隐藏终端M-S-p
(Alt+Shift+p
)切换窗口g:terminal_height
在 vimrc 文件里设置终端栏的行数(高度),默认为 10,注意终端的上下一行会有窗口的信息,这不包括在高度里面。例如设置成5行:let g:terminal_height=5
g:terminal_pos
在 vimrc 文件里设置终端的默认位置- ……
几个需要注意的问题:
vim 分栏后切换窗口的快捷键貌似也改成了 ~~`Alt+Shift+p~~`
这个作者(skywind3000)也写了 asyncrun.vim 插件(比这里介绍的小插件更多 star),另一种在 vim 中编译项目的方式,具体参看文档。