我想这样做 -
打开一个文件,比如a.txt
在 vim 中。然后,执行ctrl+z
,这将带我回到终端,并在后台隐藏 vim。当我在终端中时,现在我想b.txt
在新选项卡中打开,就在 旁边a.txt
。然后,我可以执行fg
以返回 vim,并同时a.txt
为b.txt
我打开 和 。
有什么想法可以做到这一点吗?当我b.txt
从终端打开时,它会在自己的窗口中启动 vim。
答案1
在 vim 中,我使用
:tabnew filename
在新选项卡中打开文件。
从终端,您可以以vim -p filename1 filename2
选项卡形式打开这两个文件。
我添加了以下几行代码.vimrc
,以便我能够轻松地在选项卡之间切换。
nnoremap <C-Left> :tabprevious<CR>
nnoremap <C-Right> :tabnext<CR>
nnoremap <C-j> :tabprevious<CR>
nnoremap <C-k> :tabnext<CR>
C
代表 Ctrl 键。因此,我可以使用Ctrl-Right
或Ctrl-k
切换到下一个选项卡,也可以使用 或 切换到上一个选项卡。
这对我有用。
对于使用 tmux 的用户 - 我已经映射了Ctrl-h
和 ,Ctrl-l
用于在 tmux 中切换窗口。因此,使用 Ctrl 键和 h、j、k、l,我能够在所有 tmux 窗口和 vim 选项卡之间切换。
编辑:我问这个问题的时候并不知道这一点,但你确实应该避免使用标签来简单地管理多个打开的文件之间的切换。改用缓冲区。今天,我有
nnoremap <C-j> :bprev<CR>
nnoremap <C-k> :bnext<CR>
答案2
只需同时打开这两个文件:
vim a.txt b.txt
然后使用:b#
在选项卡之间切换。
答案3
首先,暂停 Vim 的命令是<C-z>
,而不是<C-x>
。
它不是在所有地方都有效,但它可以可以做这样的事情来实现你的目标,如果你的 Vim 编译时带有该clientserver
功能:
$ vim --remote-tab b.txt
看:help clientserver
。
但…
你不需要需要暂停 Vim 以打开另一个文件进行编辑。你可以非常轻松地从 Vim 本身执行此操作:
:e filename
标签页与其他编辑器的标签完全不同。请使用缓冲区。