Доступ к нескольким файлам в VIM - PullRequest
11 голосов
/ 19 апреля 2009

Книга "Unix в двух словах" обсуждает доступ к нескольким файлам на страницах 572-573. Кажется, есть очень полезные команды, такие как:: e, ": e #", ": e new_file", ": n files", ": args", ": prev" и ": n!". Команды меня смущают:

": n Изменить следующий файл в списке файлов."

": args Показать список файлов для редактирования."

": prev Редактировать предыдущий файл в списке файлов."

Я не вижу никакого реального списка, когда я делаю ": args". В углу только маленький текст. Я хотел бы видеть все файлы, к которым я обращался с помощью ": e", т.е. список файлов в буфере.

Где я могу увидеть список, когда выполняю команду ": n files"? Какие команды ": prev" и ": n" должны делать? Я получил сообщение об ошибке:

Существует только один файл для редактирования.

Ответы [ 5 ]

17 голосов
/ 19 апреля 2009

Я не читал упомянутую книгу, но попробую объяснить, как vim обрабатывает файлы.

Vim имеет буферы. Вы открываете каждый файл с помощью:

:e name_of_the_file.txt (загружает файл в буфер, то есть «открывает файл»)

Вы также можете:

:e *.txt

При этом можно использовать следующие опции:

:set laststatus=2 (чтобы всегда показывать строку состояния)

:set wildmenu (для облегчения открытия файлов)

Если у вас есть стандартный vim с плагином netrw, вы можете:

:e . (так сказать, для одного из файловых менеджеров vim)

Для управления буферами:

:ls выдаст вам список открытых в данный момент буферов (файлов)

:bnext и :bprevious (или :bn и :bp) позволяют циклически проходить через буферы

:bd закрывает буфер / файл (буфер готов)

Другие типы буферов служат для других целей (восстановление / вставка, временный, внутренний vim и т. Д.)

9 голосов
/ 19 апреля 2009

В дополнение к тому, что сказал Джонатан Леффлер, если вы не вызываете Vim с несколькими файлами из командной строки, вы можете задать список аргументов Vim после открытия Vim через:

:args *.c

Обратите внимание, что список аргументов отличается от списка открытых буферов, которые вы получаете из :ls. Даже если вы закроете все открытые буферы в Vim, список аргументов останется прежним. :n и :prev могут открыть новый буфер в Vim (если буфер для этого файла еще не открыт) или могут перенести вас в существующий буфер.

Аналогично, вы можете открыть несколько буферов в Vim, не затрагивая список аргументов (или даже если список аргументов пуст). :e открывает новый буфер, но не обязательно влияет на список аргументов. Список открытых буферов и список аргументов независимы. Если вы хотите перебирать список открытых буферов, а не перебирать список аргументов, используйте :bn и :bp и друзей.

5 голосов
/ 19 апреля 2009

: n: p: ar: rew: последняя операция со списком аргументов командной строки.

* 1003 Е.Г. *

> touch aaa.txt bbb.txt ccc.txt
> gvim *.txt

vim открывается в aaa.txt

:ar gives a status line

[aaa.txt] bbb.txt ccc.txt

:n moves to bbb.txt

:ar gives the status line

aaa.txt [bbb.txt] ccc.txt

:rew rewinds us back to the start of the command line arg list to aaa.txt

:last sends us to ccc.txt

:e ddd.txt edits a new file ddd.txt

:ar gives the status line

aaa.txt bbb.txt [ccc.txt]

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

5 голосов
/ 19 апреля 2009

Чтобы эти команды имели смысл, вы должны:

vim *.c

в каталоге, где, например, двадцать файлов C. В одном файле нет следующего, предыдущего или значимого списка файлов.

3 голосов
/ 04 ноября 2011

Чтобы уточнить, у Vim есть список аргументов, список буферов, окна и вкладки. Список аргументов - это список файлов, с которыми вы вызвали vim (например, vim file1 file2); команды: n и: p работают с этим. Список буферов - это список копий в памяти файлов, которые вы редактируете, как в emacs. Обратите внимание, что все файлы, загруженные при запуске (в списке аргументов), также находятся в списке буферов. Попробуйте: помочь списку буферов для получения дополнительной информации о обоих.

Окна являются окнами просмотра для буферов. Думайте об окнах как о «рабочих столах», на которые вы можете устанавливать буферы для работы с ними. Окна могут быть пустыми или отображать буферы, которые также могут отображаться в других окнах, которые можно использовать, например, для одновременного просмотра двух разных областей одного и того же буфера. Попробуйте: помочь Windows для получения дополнительной информации.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...