1. Требует для работы исключительно алфавитно-цифровой блок клавиатуры плюс клавишу [Esc]. Поэтому им можно пользоваться в удалённой консоли даже через криво настроенный или вообще ненастроенный терминал. В то время как nano требует как минимум функциональных стрелочных и навигационных клавиш, то есть при удалённом соединении нужно убедиться, что гетти на том конце воспринимает их нормально, а не плюёт кракозяблами в консоль. Было очень актуально в доинтернетную эпоху, когда управляющие производственными процессами серверы админились по телефонной линии через модемное соединение.
1а. Также для работы в vi было вполне достаточно клавиатурки от ZX Spectrum, Commodore и прочих 8-битных недокомпьютеров. Что давало возможность кое-как использовать их как (почти) полноценные терминалы для UNIX-машин.
2. Не требует отображения меню -- абсолютно всё можно сделать командами, с которыми, в случае забывчивости, можно ознакомиться во встроенной справке. Поэтому для работы достаточно всего 4-х строк, что, как правильно заметил выше
fdroid, позволяет им пользоваться на любой кофеварке, если в ней есть какой-нибудь TN-дисплейчик разрешением 128х32. (Для чего может понадобиться полноценный текстовый редактор на кофеварке -- это уже отдельный вопрос...)
3. Для позиционирования курсора в требуемое место приходится всё время считать глазами расстояние в строках и знакоместах в строке, что требует напрягать не только спинной мозг с двигательным центром, но и кору, а также развивает внимание, хоть и создаёт некоторое неудобство в работе. Поэтому, то, что среднестатистический пользователь vi/emacs умнее среднестатистического пользователя любого другого редактора -- правда.
4. Хранит все изменения для конкретного редактируемого файла в файле-буфере (который может быть создан либо в той же директории, либо в домашней директории пользователя в зависимости от настроек в файле конфигурации .vimrc). Поэтому потребляет очень мало оперативной памяти и позволяет продолжить прерванную внезапным форс-мажором работу.
5. Ну и как выше отметил
Vitaly Karasik, умеет
очень много. Правда, это зависит от того, с чем и как его собирали, что выкинули при сборке (хотя при современных вычислительных мощностях что-либо выкидывать из vi бессмысленно). Например, если libc, с которой линковался vi при сборке, не поддерживает юникод, то и сам vi тоже не будет его понимать.