Я отправлю то, что я думаю, основные преимущества каждого:
Emacs имеет значительно больше расширений, чтобы позволить Вам сделать задачи, которые являются только неопределенно связанным текстовым редактором, как просмотр файловой системы или питание с управлением версиями и расширениями, которые никоим образом не являются связанным текстовым редактором, как чтение каналов RSS. Если Вы хотите среду вместо просто текстового редактора, Emacs будет лучше, чем Vim. Я также думаю, что Emacs намного легче изучить, несмотря на то, чему некоторые сделали бы, чтобы Вы верили:
В частности, я думаю, что пользователь новичка Emacs будет быстрее, чем пользователь Vim новичка
С другой стороны, Vim бесспорно быстрее. Кажется, что это - базовая часть аргумента, но по-моему нет никакого конкурса вообще; я считаю меня быстрым пользователем Emacs, и я не иду ни в какое сравнение с людьми пары, я знаю, что имеют равное знание Vim. Проблема, число людей, которые имеют достаточное мастерство Vim, чтобы быть, который быстро является невероятно маленьким (этих ~30 человек я регулярно говорю, кто использует Vim, я думаю, что только один исключительно хорош в нем). Существует большой разрыв между возможным выигрышем в быстродействии и усилением действительной скорости, которого Вы достигаете; пользователи Emacs собираются быть почти с такой скоростью, как 99% пользователей Vim, и (как я сказал в разделе Emacs), начинающие пользователи Emacs, вероятно, будут быстрее, чем начинающие пользователи Vim
Когда Vim читает существующий файл, он пытается обнаружить кодирование файла. При выписывании файла Vim использует файл, кодирующий это, он обнаружил (кроме тех случаев, когда Вы говорите его по-другому). Так файл, обнаруженный, поскольку, UTF-8 записан как UTF-8, файл, обнаруженный, как латинский 1 записан как латинский 1 и так далее.
По умолчанию процесс обнаружения сыр. Каждый файл, который Вы открываете с Vim, как будет предполагаться, будет латинский 1, если он не обнаружит метку порядка байтов Unicode наверху. Файл UTF-8 без метки порядка байтов будет трудно отредактировать, потому что любые многобайтовые символы покажут в буфере как последовательности символов вместо отдельных символов.
Хуже, Vim, по умолчанию, использует латинский 1 для представления текста в буфере. Таким образом, файл UTF-8 с меткой порядка байтов будет поврежден понижающим преобразованием к латинскому 1.
Решение состоит в том, чтобы настроить Vim для использования UTF-8 внутренне. Это, на самом деле, рекомендуется в документации Vim и единственной причине, она не настроена, тот выход из поля состоит в том, чтобы не создавать огромный беспорядок среди пользователей, которые ожидают, что Vim будет действовать в основном в качестве латинского 1 редактора.
В Вашем .vimrc
, добавить set encoding=utf-8
и Vim перезапуска.
Или вместо этого, установите
LANG
переменная среды, чтобы указать, что UTF-8 является Вашей предпочтительной кодировкой символов. Это будет влиять не только на Vim, но и любое программное обеспечение, которое полагаетсяLANG
определить, как это должно представить текст. Например, чтобы указать, что текст должен появиться на английском языке (en
), как говорится в Соединенных Штатах (US
), закодированный как UTF-8 (utf-8
), наборLANG=en_US.utf-8
.
Теперь Vim будет использовать UTF-8 для представления текста в буфере. Плюс, это также приложит более решительное усилие для обнаружения кодировки UTF-8 в файле. Помимо поиска метки порядка байтов, это также проверит на UTF-8 без метки порядка байтов перед отступанием к латинскому 1. Таким образом, это больше не будет повреждать файл, кодированный в UTF-8, и это должно правильно отобразить символы UTF-8 во время сессии редактирования.
Для получения дополнительной информации о том, как Vim обнаруживает кодирование файла, посмотрите fileencodings
опция в документации Vim.
Для получения дополнительной информации об установке кодирования, которое Vim использует внутренне, посмотрите encoding
опция.
Если необходимо переопределить кодирование, используемое при обратной записи файла к диску посмотрите fileencoding
опция.
Согласно vimdoc попыткам энергии обнаружить автоматически кодирование файла, поэтому если Вы редактируете существующие файлы Вы shold быть хорошими.
Можно всегда вызывать кодирование, если Вы хотите с :set fileencodings=utf-8
. Можно найти документацию здесь.
.vimrc
; на самом деле значение по умолчанию кодирования является "latin1" или значением от $LANG, который в моей системе установлен наen_US.UTF-8
. Поэтому:set encoding
даетencoding=utf-8
из поля. Как ожидалось, если ЛЕНГ сброшен,:set encoding
даетencoding=latin1
. Спасибо за большой ответ! – Paolo 27.10.2011, 23:39