84

Is it possible to get vim to open multiple files into tabs, similar to the way the args <path> command will open multiple files into buffers?

Doing something like :tabe ./* results in the error "E77: Too many file names", even though the number of files is less than the value set in the tabpagemax property.

(I believe the vim -p <files> option will open in tabs, but I'm hoping to find a way to do it when vim is already open.)

81
:tab all

will open all the files in Vim's argument list in individual tabs. The argument list is initially set to the list of file names given on the command line when Vim is started. The list may be changed with the :args and related commands. See

:help :all
:help argument-list

Example:

:args *.c
:tab all

will open all the .c files in the current directory in individual tabs.

  • I'm not sure how this is meant to work. Say if I want to open all .txt files in the current directory, what would I enter? If I enter :tab all *.txt, vim counters with "E488: Trailing characters" – Ash Aug 4 '10 at 9:52
  • I edited the answer to clarify what I meant by "arguments". I meant Vim's argument list rather than arguments to :tab all. – garyjohn Aug 4 '10 at 15:39
  • 1
    I don't know of a single command that can do that, but you can put two commands on one line by separating them with a vertical bar, like this: :args *.c | tab all. – garyjohn Aug 5 '10 at 0:31
  • 9
    The downside is that using :tab all replaces your existing tabs. Because of this, in my use case, it doesn't provide much benefit over reopening files with vim -p. However, if there were some way to stuff existing tabs into :args, it might be possible to open new tabs and keep the existing ones. – Kevin Qi Jul 19 '12 at 23:36
  • 3
    If a tab is already open, substitute argadd for args. – cdosborn Jun 16 '15 at 19:17
4

You actually can open new tabs and keep your current tabs without writing new functions. See this answer on Stack Overflow: https://stackoverflow.com/a/11430615/200234

:args file1 file2 | argdo tabe

You may want to open a new empty tab (:tabe) before doing that, because the first file will open in the current tab. Also, an extra empty tab will be left open (see :help argdo to understand why).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.