我已经开始使用Vim来开发Perl脚本,并开始发现它非常强大。
我喜欢的一件事是能够同时打开多个文件:
vi main.pl maintenance.pl
然后在他们之间跳来跳去
:n
:prev
然后查看哪个文件是打开的:
:args
要添加一个文件,我可以说:
:n test.pl
我希望它会被添加到我的文件列表中,但相反,它会清除我当前的文件列表,当我输入:args时,我只有test.pl打开。
那么我如何在我的args列表中添加和删除文件?
我已经开始使用Vim来开发Perl脚本,并开始发现它非常强大。
我喜欢的一件事是能够同时打开多个文件:
vi main.pl maintenance.pl
然后在他们之间跳来跳去
:n
:prev
然后查看哪个文件是打开的:
:args
要添加一个文件,我可以说:
:n test.pl
我希望它会被添加到我的文件列表中,但相反,它会清除我当前的文件列表,当我输入:args时,我只有test.pl打开。
那么我如何在我的args列表中添加和删除文件?
当前回答
我使用缓冲区命令-:bn(下一个缓冲区),:bp(上一个缓冲区):buffers(列表打开缓冲区):b<n>(打开缓冲区n):bd(删除缓冲区)。:e <filename>将打开一个新的缓冲区。
其他回答
我认为您在查看已打开的文件列表时可能使用了错误的命令。
尝试执行一个:ls来查看你已经打开的文件列表,你会看到:
1 %a "./checkin.pl" line 1
2 # "./grabakamailogs.pl" line 1
3 "./grabwmlogs.pl" line 0
etc.
然后,您可以通过引用列出的数字来浏览文件,例如: b: 3
或者你可以通过输入数字,但使用sb而不是b来分割屏幕。
作为旁白,%表示当前可见的文件,#表示备用文件。
您可以通过按Ctrl Shift 6在这两个文件之间轻松切换
编辑:像:ls,你可以使用:reg来查看你的寄存器的当前内容,包括0-9寄存器,其中包含你已经删除的内容。如果您想重新使用以前删除的文本,这尤其有用。
Vim(但不是原始的Vi!)有制表符,我发现(在许多情况下)比缓冲区更好。你可以说:table [filename]在新选项卡中打开一个文件。标签之间的循环是通过点击标签或组合键[n]gt和gt来完成的。graphic Vim甚至有图形标签。
像:e和:badd这样的东西只接受一个参数,因此下面的将会失败
:e foo.txt bar.txt
:e /foo/bar/*.txt
:badd /foo/bar/*
如果您想从vim中添加多个文件,请使用arga[dd]
:arga foo.txt bar.txt
:arga /foo/bar/*.txt
:argadd /foo/bar/*
这里有很多答案!我不用重新发明轮子——最著名的插件(不会很快消亡,被很多人使用)是超快和极客的。
ctrlpvim / ctrlp。Vim -查找文件的名称模糊搜索的位置或只是它的名称 jlanzarotta/bufexplorer -用来浏览打开的缓冲区(当你不记得最近打开和修改了多少文件,也不记得它们在哪里时,可能是因为你用Ag搜索了它们) rk / ag)。Vim搜索关于gitignore的文件 Scrooloose /nerdtree查看目录结构,查找,添加/删除/修改文件
编辑:最近我一直在使用dyng/ctrlsf。vim搜索上下文视图(像Sublime搜索),我把引擎从ag切换到ripgrep。演出非常出色。
EDIT2:与CtrlSF一起,您可以使用mg979/vim-visual-multi,一次更改多个文件,然后在最后一次保存它们。
:ls
用于打开缓冲区的列表
:bp前一个缓冲区 :bn下一个缓冲区 :bn (n个数字)移动到第n个缓冲区 :b <filename-part> with tab-key提供自动补全功能(太棒了!!)
在某些版本的vim中,bn和bp实际上分别是bnext和bprevious。Tab自动补全在这种情况下很有用。
或者当您处于正常模式时,使用^切换到您正在处理的最后一个文件。
另外,您可以保存vim的会话
:mksession! ~/today.ses
上面的命令将当前打开的文件缓冲区和设置保存到~/today.ses。您可以使用
vim -S ~/today.ses
记起昨天讲到哪里就不麻烦了。;)