Подтвердить что ты не робот

Почему старые редакторы, такие как Vim и Emacs, раскрывают разницу между файлом и буфером в интерфейсе?

Имеет ли смысл мой вопрос? Используя Vim или Emacs, вы понимаете, что интерфейс предоставляет представление кода состояния файла, который вы редактируете в буфере, файл - это дисковое хранилище, на которое вы можете заполнить буфер или записать буфер. Все эти вещи программист знал бы, но когда просто редактировал текст, почему он разоблачен? Любой новый редактор просто говорит вам: "Вот файл. Отредактируйте его".

Да, я понимаю технические значения, но это не мой вопрос. Это вопрос даже не о том, стоит ли это делать или нет. Сегодня Vim и Emacs являются нашими двумя самыми старыми редакторами, и они разделяют это поведение. Я не знаю нового редактора, который делает то же самое. Когда редакторы перестали это делать и почему?

4b9b3361

Ответ 1

Для начала Emacs использует множество буферов, которые не связаны ни с каким файлом. Каждый раз, когда вы открываете каталог, читаете почту, открываете терминал, компилируете программу, запускаете интерактивный сеанс Python или подключаетесь к базе данных, вы получаете буфер. Следовательно, базовая единица работы Emacs является буфером, а не файлом, и для Vim существует такая же логика.

Новые приложения, которые редактируют файлы only, не делают различий, потому что каждый экран или окно или вкладка представляют собой файл. Более надежные приложения, такие как Emacs и Vim, в этом отношении намного более гибки.

Ответ 2

ОК, вот мой странный философский ответ:

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

Думаете, это устарело? Одно место, где идея вернулась с удвоенной силой, находится в браузере, где у вас нет соответствия 1-1 между вкладками и веб-страницами. Вместо этого внутри каждой вкладки вы можете перемещаться вперед и назад между несколькими страницами. Никто не попытается сделать интерфейс MDI-типа в Интернете, где каждая страница имеет собственное внутреннее окно. Это было бы невозможно использовать. Он просто не масштабируется.

Лично я считаю, что в настоящее время среда IDE слишком сложна, и статическая привязка между документами и буферами является одной из причин этого. Я ожидаю, что в какой-то момент произойдет прорыв, когда они перейдут в браузерную модель с вкладками-буферами, где:

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

b) общие буферы могут хранить любые типы данных: исходный код, командную строку, динамически генерируемый графический вывод, контур проекта и т.д.

Другими словами, большая часть модели Vim/Emacs, за исключением того, что она была более близка к открытиям, которые делают браузеры.

Ответ 3

Поскольку несколько буферов могут показать вам разные представления одного и того же файла. Я не знаю других редакторов, но это касается Emacs. И что вы имеете в виду со старым?

Ответ 4

Когда приложения стали сильно использоваться не-geeks, которые не хотели беспокоиться о неулокальных деталях.

Ответ 5

Я думаю, что новые редакторы перестали делать это по причинам, которые вы заявили, что это абстракция, которая просто мешает. Кроме того, большинство современных редакторов имеют неограниченный откат, поэтому идея "буфера" является своего рода неявной.

Ответ 6

Я думаю, что я просто старая туманность (в тяжелом лагере vim), но другие пакеты редактирования, которые я использую, такие как MS Word или Open Office, сохраняют различие между копией файла, m и последней сохраненной версии. Это совершенно бесценно - я не хочу, чтобы редактор попирал мою последнюю хорошую версию, пока я не готов к этому. Действительно, есть приличный шанс (скажем, один из тысячи), что я создам новый файл с буфером, который я редактирую.

С другой стороны, возможность создания образа файла путем чтения нескольких файлов (либо нескольких копий одного и того же файла, либо копий нескольких разных файлов) также полезна. В других документах есть слабо похожие объекты.

Итак, я мог бы пропустить этот момент - я не знаю, какие редакторы вы называете удалением различия. Но я думаю, что все редакторы сохраняют различие между копией файла, который вы редактируете, и последней версией, сохраненной на диске.

Ответ 7

Поскольку разработчикам этих редакторов не хотелось скрывать детали реализации от пользователей.