Так много вариантов! Так запутанно!
- Когда один должен использоваться в предпочтении к другому?
- Как они связаны друг с другом?
- Каковы же различия между ними?
- Как они влияют на команды, которые вы вводите?
- Как они связаны с регистрами, макросами, метками, параметрами и историей команд?
- Какое гнездо внутри других, например, является вкладкой подразделом окна, как в типичных программах с графическим интерфейсом, или окном является подразделом вкладки?
- Как это связано с несколькими аргументами командной строки (arglist), доступными через
:next
и:prev
? - И, наконец, какие из них (если таковые имеются)
vi
совместимы?
Я собирался «опубликовать стиль вопросов и ответов» и сделать его вики-сообществом, но когда я немного расширил свой список вопросов, я понял, что на самом деле не понимаю их достаточно хорошо, чтобы начать вики. Может быть, немного почистить формулировку, как только она будет сделана.
—
Wildcard
Нет, список аргументов является подмножеством списка буферов.
—
Ромен
Первоначально каждый аргумент создает буфер, но затем буферы и аргументы начинают иметь свою собственную независимую жизнь. Вы можете изменить список аргументов с помощью
—
Сато Кацура
:args
(который не изменяет буферы), и вы можете удалить буферы, включая те, которые соответствуют аргументам, с помощью :bdelete
(который не влияет на список аргументов). Редактирование новых файлов с помощью :e
создает новые буферы, как и, скажем, открытие справки, но ни один из них не меняет список аргументов. И так далее; Вы не можете полагаться ни на какие отношения между этими двумя за запуском.
Я на самом деле нашел этот ответ очень бесполезным, все было наслоено в терминах Vim, оскорбляя других текстовых редакторов. Хорошо, если вы уже знаете, что такое вкладки, но бесполезно, если вы пытаетесь учиться. На этот вопрос мне было проще понять ответ Джонатана Бринка .
—
icc97