2015-05-04 2 views
0

Я анализирую регрессию тысяч тестовых примеров в Linux. Поэтому я хочу открыть много файлов (сбой) в gvim сразу.Открыть muiltiple (100+) файлов в `gvim` - не в закладках, а не в vim

У меня есть файл, как упоминается ниже, со 100 + строками, указывающими более 100 файлов в каталоге. Я хочу открыть все эти файлы в gvim (в одном gvim).

./Linux2/Lint/case1/DIFF 
./Linux2/Lint/case4/DIFF 
./Linux2/Lint/case10/DIFF 
./Linux2/range/case1/DIFF 
./Linux2/operator/case7/DIFF 

100+ линий, подобных этому.

Есть ли способ открыть файлы во всех этих файлах в gvim с помощью некоторого механизма навигации.

Я знаю, что можно использовать,

gvim file1 file2 ..... 

Но это не так просто с 100+ файлов.

Мне нужно сделать это в gvim, а не в vim.

+0

Не все файлы DIFF, но все файлы DIFF в сбой поэтому я поместил их в отдельный файл – ANjaNA

+0

См. [этот вопрос] (http: // stack overflow.com/questions/437262/how-to-open-a-file-in-a-list-of-files-in-vim), особенно ответ «quickfix mode». – cge

+0

Спасибо @cgs, я изучаю его – ANjaNA

ответ

2

Я просто использовал find . -name DIFF | xargs vim и был в состоянии перемещаться по всем файлам с помощью :next и :prev и :buffers

только некрасиво бит был, когда я ударил около 1500 файлов, которые я хотел бы получить два инвокации Vim и будет должны закончить редактирование первых 1500 файлов, прежде чем переходить к следующему 1500 (из-за того, как работает xargs).

Другой вариант - использовать синтаксический анализ ошибок vims. Перечислите все файлы в файле с информацией о строке и ошибке, откройте этот файл и запустите :cbuffer в этом буфере (он закроет файл ошибки и переместит вас к первому указанному erro). :copen откроет полный список ошибок Quickfix List. Затем вы можете использовать обычную :cn и :cp перемещаться между вперед и назад в списке QuickFix (и <CR> в списке QuickFix тоже будет работать. Что-то, как это должно работать из коробки для вас.

:./Linux2/Lint/case1/DIFF:1: Not really an error 
:./Linux2/Lint/case2/DIFF:1: Not really an error 
:./Linux2/Lint/case3/DIFF:1: Not really an error 

сейчас это может быть улучшено, так как разбор ошибок vims является гибким. Вы можете удалить требование для ведущего : с помощью set errorformat=%f:%l:\ %m или просто использовать необработанный список файлов, используя set errorformat=%f.

+0

Я думаю, что у OP уже есть имена файлов, о которых он заботится в другом файле. – merlin2011

+0

спасибо, но в моем каталоге также есть пустые файлы DIFF в тестовых случаях PASSED. Мне нужно только открыть файлы DIFF в FAILED test casses – ANjaNA

+0

В этом случае мой второй метод должен работать хорошо.Вы могли бы даже добавить некоторый контекст в сообщение об ошибке о том, почему он не сработал и т. Д. –

2

Похоже, вы хотите создать аргумент командной строки из файла. Вы можете сделать это с command substitution в bash.

gvim $(cat ListOfFiles.txt) 
+0

Я пробовал 'gvim $ (cat failed)' command в bash. Где 'failed' - это файл, содержащий список файлов. Но дает ** Недопустимое имя переменной. ** ошибка. 'cat failed' отлично работает. – ANjaNA

Смежные вопросы