通过在vim中使用远程功能,是否可以重用vim实例来根据需要加载多个文件。
在同一个终端实例中拥有该工具会很好。
我更希望有一个基于标签的界面,可在vim 7+中使用 场景应该是
这可能吗?!
答案 0 :(得分:6)
我不确定这是否可以按照您指定的方式完成,但可以使用在本地计算机上运行的vim服务器完成非常类似的操作。
查看Vim中的:help remote.txt
。
如果您的vim版本是使用+clientserver
编译的,则可以使用vim创建vim服务器,然后在其上执行命令,例如:打开另一个文件
--servername
开关可以创建新服务器,--remote
开关可以向其发送其他命令或文件。
e.g。
vim --servername test file1.txt
vim --servername test --remote file2.txt
我看过了,我在我的一台计算机上使用xubuntu作为标准的vim没有它,但有一些说明here可能有帮助,如果你的编译。如果不是,安装gvim和symlinking显然是一个选项(因为gvim默认包含它),或者从源代码编译二进制文件。
修改强>
我有更多的gvim游戏,这看起来不可能在终端内做到这一点。 Control-Z在进程级别暂停作业。我认为它可能适用于屏幕,但除非gvim已在图形窗口中启动,否则似乎没有进行任何通信,
答案 1 :(得分:5)
如果您将+clientserver
编译为Andy suggested in a previous answer,则很容易做到。
我做了以下事情:
我将VIM作为服务器启动:
vim --servername abc
我用CTRL+Z
暂停了它并执行了:
vim --servername abc --remote ~/.cshrc
fg
现在VIM已~/.cshrc
打开。
然后我做了:
vim --servername abc --remote ~/.aliases
fg
现在,VIM有一个缓冲区~/.cshrc
,另一个缓冲区~/.aliases
。
然后我做了:
vim --servername abc --remote-tab ~/foo_bar
fg
现在我VIM有一个选项卡,前两个缓冲区打开,另一个选项卡打开~/foo_bar
。
在通话情况下,VIM在终端中运行,而不是作为GUI。
答案 2 :(得分:3)
您可以按以下方式拆分当前屏幕并打开两个(或更多)文件:
对于水平分割,请执行:
:sp 'filename'
对于垂直拆分,请执行:
:vsp 'filename'
要在两者之间切换选项卡,请按ctrl + w,然后使用箭头键导航到要编辑的文件。
此外,如果您只想切换文件(并且只打开一个文件),您可以这样做:
:e 'filename'
答案 3 :(得分:3)
我有几个建议给你,虽然这两个都不是你所说的。第一个是NERD Tree,它为您提供了一个很好的基于树的文件浏览器,用于打开其他文件。非常便利。我还为我设置了一个热键(ctrl+o
)来打开NERD Tree。我保留了~/curr/trunk
中我所参与的任何项目的别名,所以这对我来说总是有用的:
map <C-O> :NERDTreeToggle ~/curr/trunk/<CR>
我建议的另一件事是取消ctrl + z。它有些笨重,我知道使用该方法的每个人都会迷失方向并最终在后台运行3或4个vim。看看如何为自己打开一个shell。我使用map来执行shell脚本:
map ;s :!~/.vim/shell.sh<CR>
执行:
#!/bin/sh
/usr/local/bin/bash -l;
我的.profile中也有一些魔法让我明白我在VIM:
if [ "$VIMRUNTIME" != "" ] ; then
export PS1="\u@\h \W \t$ vim> "
fi
&lt; / 2美分&gt;
答案 4 :(得分:2)
天儿真好,
或者,如果您想拥有多个文件,但一次只能将整个vim窗口用于一个文件,您只需输入
:e 'filename'
打开新文件。你可以多次这样做。要查看您当前打开的内容,请输入
:ls
要在您打开的文件之间跳转,您可以使用cntl- ^(shift-cnt-6),它将在主文件和辅助文件之间切换(在文件列表中以%和#显示)
或者你可以输入
:n b
其中n是'ls'命令显示的列表中所需文件开头的数字。
HTH
欢呼声,
答案 5 :(得分:1)
您可以在vim上设置hidden
功能,以允许其打开多个文件:
:set hidden
然后您可以根据需要打开任意数量的文件,而无需在每次要切换“缓冲区”时都保存它们:
:e 'filename'
您有几个命令可以导航缓冲区:
:bnext
:bprev
:buffers
当然,正如samoz所提到的,您可以拆分屏幕以在同一窗口中查看多个缓冲区。
我建议您阅读this以了解有关vim的详细介绍,它将为您节省大量时间。
祝你好运!