2016-01-14 8 views
2

Начну с сценарием: Я использую GVIM на Windows-GVIM: автопрокрутка глобальной команды

  1. У меня есть огромный файл сказать размер 3 Гб.
  2. Найдите что-то, используя глобальную команду, которая имеет много случаев в файле.
  3. Я перенаправил этот вывод глобальной команды на новый файл.

Проблема: мне нужно прокрутить выделение, нажимая пробел или другие клавиши, чтобы получить этот вывод в новый файл.

В любом случае, я могу пропустить прокрутку без потери результатов? Команда

+0

использовать командную строку, например. grep foobar bigfile> newfile? –

ответ

0

Как уже говорили другие, фильтрация выполняется легко за пределами Vim с помощью инструментов grep, но если вы должны ...

  • Если вы используете :redir, вы можете использовать :silent global/... для подавления вывода в пределах GVim , Он все равно будет снят с :redir.
  • Если вы в основном используете :g/<pattern>/p фильтровать соответствующие строки, можно использовать в качестве альтернативы :vglobal/<pattern>/d для удаление несовпадающих линий, то сохраняется, что остается через :w another-filename.
+0

Thansk много @lngo Karkat: тихий работал для меня :) – Geek

+0

Отлично! Затем, пожалуйста, примите ответ, нажав на отмеченную галочку рядом с ним. –

3

Используйте Vim, :grep (:vimgrep будет работать, тоже), чтобы искать foo в файле, связанном с текущим буфером:

:grep foo % 

Затем отобразить все матчи в QuickFix окне:

:cwindow 

В одном дыхании:

:gr foo %|cw 

Ссылка:

:help :grep 
:help :vimgrep 
:help quickfix 
:help :cwindow 
+0

Я забыл сказать, что я использую GVIM на окнах. и не может использовать командную строку. Используя следующую команду, чтобы получить выход в новый файл, но это заставит меня прокрутить весь путь вниз, чтобы создать новый временный файл в раскол screen- nnoremap : REDIR @a : г // : REDIR END : новый : класть! a Geek

0

Это работает для меня: :!grep 'foo' path/to/file > newOutputFile.txt && vim newOutputFile.txt Это, вероятно, не так чисто, как ответ romainl в выше, но я не особо знаком с использованием :cwindow (будет смотреть на него сейчас, хотя), так что я нашел создание нового файл и открытие с помощью vim, чтобы быть немного более удобным для меня.

Кроме того, в зависимости от того, что вы делаете, я являюсь поклонником ag для выполнения подобных grep-вещей.

+1

Я забыл сказать, что я использую GVIM на окнах. и не может использовать командную строку.Используя следующую команду, чтобы получить выход в новый файл, но это заставит меня прокрутить весь путь вниз, чтобы создать новый временный файл в раскол screen- nnoremap : REDIR @a : г // : REDIR END : новый : класть! a Geek