Ed - хардкорнее чем Vi

October 12, 2014

Однажды мне захотелось отредактировать файл прямо на Хероку, потянувшись за Vim с удивлением узнал, что на Хероку Vim/Vi нету. Увы.

Интернет заботливо подсказал, что в 1970 году, симпатичный парень Кен Томпсон написал редактор ed, который точно есть абсолютно на всех unix-системах уже 40 с лишним лет. И точно на Хероку он есть. Ed - прадедушка вима и сейчас мы немного посмотрим на него поближе.

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

Вот пример работы работы с ed:

$ ed -p: # опция -p:, делает ed более похожим на вим
:a
This is new file.
Ed is the gest!
.
:%l
This is new file.$
Ed is the gest!$
:1d
:s/gest/best
Ed is the best!
:w demo.txt
16
:q
$ cat demo.txt
Ed is the best!

Строчки, которые начинаются с двоеточия - это команды в ed. В данном примере мы добавили в буфер две строчки, вывели их, удалили первую строку, исправили опечатку и сохранили результат в файл demo.txt. При некоторой сноровке можно легко создавать и редактировать небольшие файлики.

Редактор ed мне очень понравился, кроме Хероку я его использую, например, чтобы вставить предупреждение на вторую строчку в каждом баш скрипте:

for binary in *.sh
do
ed > /dev/null $binary <<EOF
1
a
# GENERATED AUTOMATICALLY. DO NOT MODIFY THIS FILE!
.
w
EOF
done

Кстати, это Кен Томпсон - мне кажется так и должен выглядеть настоящий разработчик:

comments powered by Disqus