如何有效地在Vim中处理多个文件?

房东的猫 提交于 2019-12-12 18:09:28

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

我已经开始使用Vim开发Perl脚本,并且开始发现它非常强大。

我喜欢的一件事是能够使用vi main.pl maintenance.pl例如一次打开多个文件,然后使用以下命令在它们之间跳转:

:n
:prev

并查看打开哪个文件

:args

要添加文件,我可以说:

:n test.pl

我希望它将添加到我的文件列表中,但是它将清除当前文件列表,当我键入:args我只打开了test.pl

那么如何将文件添加和删除到我的args列表中?


#1楼

如果您使用的是osx,并且希望能够单击选项卡,请使用MouseTerm和SIMBL(从此处获取 )。 另外,请查看此相关讨论


#2楼

您可能需要使用Vim全局标记

这样,您可以快速在文件之间跳动,甚至跳到文件中标记的位置。 而且,关键命令很简短: 'C带我进入正在使用的代码, 'T带我进入正在使用的单元测试。

当您更改位置时,重置标记也很快: mC标记新的代码点, mT标记新的测试点。


#3楼

尝试以下地图以方便编辑多个文件

分割窗户

nmap <leader>sh :leftabove vnew<CR>

nmap <leader>sl :rightbelow vnew<CR>

nmap <leader>sk :leftabove new<CR>

nmap <leader>sj :rightbelow new<CR>

“ 到处走

nmap <Cj> <Cw>j

nmap <Ck> <Cw>k

nmap <Cl> <Cw>l

nmap <Ch> <Cw>h


#4楼

有效处理多个文件的方法是使用tmux。

它允许您垂直和水平分割窗口,如下所示:

我在Mac和linux机器上都以这种方式工作,并且发现它比提供的(在Mac上)本机窗口窗格切换机制更好。 我发现切换更加容易,并且只有使用tmux才能在Mac上运行“位于同一当前目录的新页面”(尽管似乎存在在同一目录中打开新窗格的选项)。一个非常关键的部分。 当前位置的即时新窗格非常有用。 对于我来说,使用两个操作系统具有相同按键组合的新窗格的方法对我来说至关重要,对于所有人的未来兼容性而言,这也是一种奖励。 除了多个tmux窗格,我还尝试使用多个选项卡,例如

和多个新窗口,例如

最终我发现多个tmux窗格对我来说最有用。 我非常“视觉化”,喜欢将各种环境摆在我面前,就像窗格一样。

tmux还支持旧screen不支持的水平和垂直窗格(尽管mac的iterm2似乎支持它,但同样,当前目录设置对我不起作用)。 tmux 1.8


#5楼

我经常使用命令行和git,因此我的bashrc中有以下别名:

alias gvim="gvim --servername \$(git rev-parse --show-toplevel || echo 'default') --remote-tab"

这将在现有窗口的新选项卡中打开每个新文件,并将为每个git存储库创建一个窗口。 因此,如果您从存储库A打开两个文件,从存储库B打开三个文件,则最终会出现两个窗口,一个窗口用于带有两个选项卡的存储库A,一个窗口用于带有三个选项卡的存储库B。

如果您要打开的文件未包含在git repo中,它将进入默认窗口。

要在选项卡之间跳转,请使用以下映射:

nmap <C-p> :tabprevious<CR>
nmap <C-n> :tabnext<CR>

要一次打开多个文件,应将其与其他解决方案之一结合使用。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!