当我使用4个文件时,所有文件都在选项卡(VIM)中打开。我想保存更改并编译它,而不必关闭选项卡,即我想在新选项卡中打开一个终端沿着现有的4个?在VIM中应如何执行此操作?
mccptt671#
:tab ter
在新标签页中打开终端,而不是像:ter那样在新窗口中打开它。您也可以使用等效的、更长的:tab terminal。感谢使用者wolloda in this Reddit post。
:ter
:tab terminal
额外信息
Ctrl-d
exit
Ctrl-w
N
Ctrl-\ Ctrl-n
gt
:ls
i
a
:tab ter++kill=hup
:qa
tnoremap
tnoremap <S-Tab> <C-W>:tabprevious<CR> tnoremap <C-N> <C-W>N
有关:help :terminal和:help :tab的更多信息。
:help :terminal
:help :tab
1yjd4xko2#
2019年,vim现在有了终端模式。
:help terminal
例如,您可以这样使用它。
# go to terminal-job mode :terminal # go to terminal-normal mode ctrl-w N # go back to terminal-job mode i
dced5bon3#
一种更有活力的方法是使用:make。
:make
'makeprg'
make
:compiler
:make foo-command
%
:make %
:cnext
:cprev
:copen
:cclose
:cwindow
<c-z>
:!
:!make
结论如果你刚开始使用:make,我建议你学习如何使用:make和快速修复列表。此外,Syntastic是一个很好的方式来快速启动和运行与短绒。
Vim的选项卡与大多数文本编辑器的选项卡不同,它们更像是一组窗口/分割的视口。而不是像大多数编辑器那样以标签为中心。因此,使用类似快速修复列表的特性通常在没有标签的情况下更容易(如果必须使用制表符,请参见:h 'switchbuf). Vim'的选项卡经常会妨碍使用分割,因为有更好的窗口和缓冲区导航命令可用。我个人有许多文件打开(有时100+)不使用标签,平均使用1-2个分割没有任何问题。底线:学会use buffers effectively。有关更多帮助,请参阅以下内容:
:h 'switchbuf
:h :make :h 'makeprg :h quickfix :h :cnext :h :cope
bttbmeg04#
Vim 8.1现在有一个内置的终端,可以用:term命令打开。这提供了与Vim其余特性更完整的集成。原始答案:我会建议看看tmux或screen。我自己使用tmux,沿着vim-tmux-navigator在终端和vim之间移动是非常容易的。
insrf1ej5#
投票最多的答案使用:tab ter。这在NeoVim上不起作用(至少对我来说是这样)。然而,它仍然相当简单::tabe term://bash个tabe正在打开新tab和e编辑文件。term://是一种NeoVim打开终端的方式bash是您要使用的shell类型(例如,我使用了zsh,所以我的命令实际上是:tabe term://zsh)我创建的一些有用命令:
:tabe term://bash
tabe
tab
e
term://
bash
:tabe term://zsh
" open terminal if has('nvim') command Terminal vsplit term://zsh command TerminalTab tabe term://zsh else command Terminal vert term command TerminalTab tab ter endif
ki0zmccv6#
另一种方式Ctrl-w组合键:这将进入命令行,然后可以输入tablast、tabnext或tabprevious或者简称为tabl、tabn、tabp还是这样:Ctrl-w gt和Ctrl-w gT(下一个选项卡和上一个选项卡)或Ctrl-w Number gt(用于特定选项卡)那也行。
6条答案
按热度按时间mccptt671#
在新标签页中打开终端,而不是像
:ter
那样在新窗口中打开它。您也可以使用等效的、更长的:tab terminal
。感谢使用者wolloda in this Reddit post。
额外信息
Ctrl-d
或exit
终止shell会关闭终端缓冲区。Ctrl-w
N
或Ctrl-\ Ctrl-n
将缓冲器置于终端正常模式:击键不会被转发到shell,而是被Vim作为一个正常的缓冲区使用(尽管shell任务仍然在运行)。然后你可以使用gt
来改变制表符,键入Ex命令,如:ls
等。要恢复终端缓冲区,i
,a
,...:tab ter++kill=hup
,这样当你使用:qa
时,终端作业不会阻止Vim退出。tnoremap
,例如有关
:help :terminal
和:help :tab
的更多信息。1yjd4xko2#
2019年,vim现在有了终端模式。
例如,您可以这样使用它。
dced5bon3#
一种更有活力的方法是使用
:make
。:制造商
:make
将执行'makeprg'
。默认值为make
,这在C项目中非常有用:make
后,快速修复列表将包含所有错误。:compiler
命令设置编译器。:make foo-command
这样传递额外的参数%
表示,例如:make %
快速修复列表
:cnext
和:cprev
在错误之间移动。:copen
在窗口中打开快速修复列表(:cclose
关闭):cwindow
仅在出现错误时打开快速修复列表窗口:cnext
和朋友使用更好的Map。我推荐Tim Pope的unimpaired插件替代项和插件
<c-z>
来挂起Vim并运行您的构建系统。(缺点:在快速修复列表中丢失):!
进行编译。(与挂起的缺点相同)例如:!make
:make
,并减少了一些工作量结论
如果你刚开始使用
:make
,我建议你学习如何使用:make
和快速修复列表。此外,Syntastic是一个很好的方式来快速启动和运行与短绒。关于选项卡的旁白
Vim的选项卡与大多数文本编辑器的选项卡不同,它们更像是一组窗口/分割的视口。而不是像大多数编辑器那样以标签为中心。因此,使用类似快速修复列表的特性通常在没有标签的情况下更容易(如果必须使用制表符,请参见
:h 'switchbuf
). Vim'的选项卡经常会妨碍使用分割,因为有更好的窗口和缓冲区导航命令可用。我个人有许多文件打开(有时100+)不使用标签,平均使用1-2个分割没有任何问题。底线:学会use buffers effectively。有关更多帮助,请参阅以下内容:
bttbmeg04#
Vim 8.1现在有一个内置的终端,可以用:term命令打开。这提供了与Vim其余特性更完整的集成。
原始答案:
我会建议看看tmux或screen。我自己使用tmux,沿着vim-tmux-navigator在终端和vim之间移动是非常容易的。
insrf1ej5#
对于任何使用 NeoVim 的人:
投票最多的答案使用
:tab ter
。这在NeoVim上不起作用(至少对我来说是这样)。然而,它仍然相当简单::tabe term://bash
个tabe
正在打开新tab
和e
编辑文件。term://
是一种NeoVim打开终端的方式bash
是您要使用的shell类型(例如,我使用了zsh,所以我的命令实际上是:tabe term://zsh
)我创建的一些有用命令:
ki0zmccv6#
另一种方式
Ctrl-w组合键:
这将进入命令行,然后可以输入tablast、tabnext或tabprevious
或者简称为tabl、tabn、tabp
还是这样:
Ctrl-w gt和Ctrl-w gT(下一个选项卡和上一个选项卡)
或Ctrl-w Number gt(用于特定选项卡)
那也行。