Monday, July 27, 2020

Re: Opening files in a certain pattern

On 2020-07-28 02:56, Manas wrote:
> Hi, I have 2 directories, supposedly dir1 and dir2. And both of them
> contains equal number of files (say n each) which are named in the
> following fashion:
> - In dir1: All files are named as L1.md, L2.md, ...., Ln.md
> - In dir2: All files are named as A1.md, A2.md, ...., An.md
>
> How can I open all of those files such that each window contains two
> vertically-split panes namely, Lx.md and Ax.md (where x is any
> number) and they open in n-different windows?
>
> First I was thinking of writing a bash script to open but I got
> stuck at the initial step of finding the appropriate Vim command to
> open two files in a new tab and in vertically-split panes from Ex
> mode (as I would have passed this command using -c flag from my
> script).

You might try something like this:

$ vim -p -c 'set tabpagemax=50' -c 'tabdo exec "vsp ".substitute(substitute(expand("%"),"dir1", "dir2", ""), "/L", "/A", "")' dir1/*

(there's a space after the "vsp" in case mail between here and there
decides to eat it)

By default 'tabpagemax' is 10, so you don't need to change that to
50 if you have 10 or fewer files. Just set it to the number of files
you have. The "-p" then opens each dir1/L*.md file in its own tab
(they're specified on the command-line). It then iterates over each
of those tabs (tabdo), transforms the current filename into its mate's
filename (s/dir1/dir2/ and s@/L@/A@) and builds an command to
vertically split (vsp) as a string, and then :exec's it to do the
actual vertical split in each tab.

-tim




--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/vim_use/20200727183201.41f492e8%40bigbox.attlocal.net.

No comments: