2012-01-04 2 views
4

Я пытаюсь пройти через список буферов, выбрать одну строку из каждого буфера и объединить их в один файл (или другой буфер). Как и в:VIM - Объединить строку из нескольких файлов в один файл

file1

... line2 ...

file2

... line2 ...

file3

.. . линия2 ...

и так далее.

все в:

MYFILE

line2 (file1)

line2 (file2)

line2 (file3)

Я не могу получить мои регистры работают , и bufdo вызывает у меня страдание по какой-то причине ...

[пояснение] Я надеялся, что я могу использовать bufdo, чтобы пройти через все мои буферы, вытащить вторую строку из каждого и добавить ее в регистр.

Затем в другой файл просто вставьте содержимое регистра в него (содержащее вторую строку из всех моих буферов).

+0

(1) Ваш вопрос не является полным (что вы на самом деле делаете, а вы подразумеваете под «не могут заставить мои регистры работать» и «страдать»?) И (2) почему вы должны это делать? в Vim, когда вы можете просто использовать обычные * nix-утилиты для захвата второй строки из каждого файла? – Cascabel

+0

Прошу прощения, я должен уточнить. gVIM 7.3.46 на Win 7, поэтому нет доступа к каким-либо нормальным * nix-командам. Просто хотелось быстро объединить их непосредственно с VIM (где я уже работал над другими вещами). я надеялся, что могу просто загрузить мои буферы и вытащить вторую строку из каждого буфера в регистр (добавленный), а затем просто вставить регистр обратно в мой файл. –

ответ

4

Вы должны быть в состоянии сделать это с чем-то вроде:

bufdo normal 2G"Ayy 

которые перебирают буфера и запускают данную команду в обычном режиме. 2G переходит к соответствующей строке и "Ay yanks в регистр a, добавляя вместо перезаписывания (так как A капитализируется). Убедитесь, что перед запуском зарегистрируйтесь.

Вы можете использовать windo или tabdo, если у вас есть окна или вкладки вместо буферов.

+0

Aaand, там он смотрит мне в лицо. Большое спасибо! –

+1

Я никогда не знал, как добавить в регистр. Спасибо! – gpojd

+3

@Pat Вместо этого вы можете использовать командную команду ': bufdo 2yank A'. – ZyX