Подтвердить что ты не робот

Как открыть файл в списке файлов в vim?

У меня есть длинный список файлов, открытых в vim, который выглядит так:

/dir1/file1
/dir2/file2
/dir2/file3
.....

Как я могу открыть все из них один за другим самым простым способом в одном сеансе vim с помощью split или edit?

4b9b3361

Ответ 1

Я бы сказал, что -p для вкладок

vim -p `cat yourlistoffiles`

Ответ 2

Вы можете использовать режим fastfix, как показано ниже

:set errorformat=%f
:cf myfilelist

в этот момент вы можете использовать обычные быстрые клавиши быстрого доступа, чтобы просмотреть ваши файлы, :cn для следующего файла, :cp для предыдущего и :cr, чтобы перейти к первому снова.

EDIT:

oh, если вы хотите прочитать список из текущего буфера, используйте :cb вместо :cf в инструкциях выше

Ответ 3

Я собираюсь предположить, что у вас есть список файлов, открытых внутри Vim, и хотите имитировать команду "gf" по всему списку...

Отредактируйте свой .vimrc, чтобы включить эту функцию:

function Openall()
    edit <cfile>
    bfirst
endfunction

Затем вы можете выделить весь файл (или набор путей, которые вы хотите открыть), используя визуальный режим (1G, Shift-V, G) и набрав ": call Openall()". После этого строка команды покажет это:

:'<,'>call Openall()

Это приведет к запуску новой функции Openall() по всем выделенным строкам.

Нажмите "Enter", и все файлы будут открыты в фоновых буферах. Затем вы можете получить к ним доступ, используя обычные команды буфера.: ls отобразит их как список.

Ответ 4

Вы можете сделать следующее

cat file | xargs vim

Где "файл" содержит ваш список файлов, это откроет файлы в том же сеансе vim. Как обычно при открытии нескольких буферов вы можете перемещаться вперед с помощью: bn и backward: bp.

Ответ 5

Я предполагаю, что вы хотите выбрать и перечислить в vim. все файлы определенного расширения. Из вашего домашнего каталога или конкретного источника.

find . -name "*.sh" | vim -

Затем в vim вы можете искать и просматривать этот потенциально огромный список. (Еще одна тема)

Вы нашли свой файл, теперь вы хотите открыть его в расколе?

CTRL-W F                        *CTRL-W_F*
    Split current window in two.  Edit file name under cursor and
    jump to the line number following the file name. See |gF| for
    details on how the line number is obtained.
    {not available when the |+file_in_path| feature was disabled
    at compile time}


CTRL-W gf                       *CTRL-W_gf*
    Open a new tab page and edit the file name under the cursor.
    Like "tab split" and "gf", but the new tab page isn't created
    if the file does not exist.
    {not available when the |+file_in_path| feature was disabled
    at compile time}

Ответ 7

Это так же просто, как набирать

vim /dir1/file1 /dir2/file1 /dir2/file2 ...

Как только вы в vim, вы можете переключить betwen, затем на ": n", чтобы перейти к следующему файлу "prev", чтобы перейти к предыдущему файлу.

Ответ 8

My searchInRuntime плагин имеет команды: Sp и a: Vsp, которые будут делать трюк при вызове banged. Однако файлы должны существовать.

Ответ 9

Попробуйте это с помощью bash:

$ vim -S <(sed "s/^/badd /" <your file name>)

Но я не знаю, почему первая строка файла игнорируется...: -O

Этот script работает как ожидалось:

rm -f myfile
for i in `seq 10000`
do
  touch $i
  echo $i >> myfile
done
vi -c "badd `head -1 myfile`" -S <(sed "s/^/badd /" myfile)

http://vimdoc.sourceforge.net/htmldoc/starting.html#-S
http://vimdoc.sourceforge.net/htmldoc/windows.html#:bad

Ответ 10

Мне часто нужно открывать меняющийся список файлов, которые были изменены в моей SVN-кассе. Этот один лайнер работает, чтобы открыть все измененные файлы в вкладках vim.

svn st | grep ^M | awk "{print($2)}" | xargs vim -p