Я ищу легкий текстовый редактор, который работает в терминале. В настоящее время я использую nano
2.2.6, но я немного недоволен ею (особенно тем, что в ней не работает отмена/повтор).
Обязательные к приобретению:
nano
это будет непригодно для использования.vim
отсутствует, если нет способа использовать его с комбинациями клавиш, а не с режимами.)Приятно иметь:
less
).Я буду использовать редактор в основном для редактирования сценариев оболочки, но я также могу использовать его для java-кодирования, написания уценки, написания html/javascript и т. д.
Примечание. Я пробовал emacs
, и мне не удалось выполнить эти два требования:
- Быстрое время запуска. Если это намного медленнее, чем
nano
это будет непригодно для использования.- Простая настройка вкладок/отступов.
(
vim
отсутствует, если нет способа использовать его с комбинациями клавиш, а не с режимами.)
Как ни странно, как только я действительно подумал об этом, я понял, что vim
это и есть ответ.
vim
имеет все «обязательные» и «приятные»:
- Возможность запуска в Терминале.
- Быстрое время запуска. Если он намного медленнее, чем nano, его нельзя будет использовать.
- Относительно простая настройка вкладок/отступов.
- Подсветка синтаксиса для основных языков.
- Функция отмены/возврата.
- Не может быть модальным (vim отсутствует, если нет способа использовать его с комбинациями клавиш, а не с режимами.)
- Настраиваемые комбинации клавиш для общих задач.
Я беспокоился о #6 и #7, но оказалось, что вы можете начать vim
в режиме вставки и настроить сочетания клавиш для режима вставки. Вдобавок ко всему, vim
имеет удивительно полезный ярлык Ctrl+ o, который позволяет вам выполнять одну команду в режиме вставки. Сочетание этих двух позволяет вам сопоставлять модальные vim
команды с nano
похожими сочетаниями клавиш (например , inoremap <C-u> <C-o>P " map vim paste to nano's [Ctrl]+[u] paste keyboard shortcut
).
- Свободно.
- Работает на OS X.
- Поддерживает мягкий перенос строк (длинные строки визуально переносятся, но не с переводом строки) .
Приятно иметь:
- Возможность использовать его вместо пейджера (т.е. меньше).
- Возможность делать умные отступы.
- Кроссплатформенность.
- Возможность установки через MacPorts.
macvim
- Возможность выполнять более сложное редактирование кода в стиле IDE.*
Вдобавок ко всему этому, vim
у него потрясающая документация от множества программистов (черт возьми, у него даже есть собственный сайт SE ), множество функций, и он очень настраиваемый. Я настоятельно рекомендую взломать vim
, чтобы работать так, если у вас есть похожие требования. Специалистам это может показаться кощунством vim
, но под мои требования подходит идеально.
* Я не знаю, есть ли у него функция, показанная в вопросе, но у него определенно есть много функций редактирования, подобных IDE.
Возможность запуска в Терминале.
emacsclient -nw
Кроме того, если вы хотите этого, потому что вы редактируете файлы на удаленной машине, где вы вошли в систему через SSH, есть другой способ: открыть удаленные файлы в вашем локальном сеансе Emacs . Чтобы редактировать файлы, доступ к которым осуществляется через SSH, введите hostname.example.com:/path/to/file
при открытии файла. См. руководство для более продвинутого использования.
Быстрое время запуска. Если он намного медленнее, чем nano, его нельзя будет использовать.
Вот что вы делаете неправильно: вы запускаете новый экземпляр Emacs каждый раз, когда редактируете файл. Emacs был разработан таким образом, что вы запускаете Emacs один раз и навсегда, и когда вы хотите открыть файл, вы открываете его в работающем экземпляре. Вызов emacsclient -nw
для запуска интерфейса к уже работающему Emacs в текущем терминале. Либо запустите emacs --daemon
как часть запуска вашего сеанса, либо запустите, emacsclient -a '' -nw …
чтобы указать emacsclient запустить Emacs, если он еще не запущен.
Простая настройка вкладок/отступов.
Emacs имеет множество возможностей для настройки отступов . Расширенная настройка, как правило, зависит от языка. У меня никогда не было проблем с тем, чтобы заставить Emacs следовать отступу. «Легко» — это субъективно, но если вы делаете что-то, что вообще возможно в любом редакторе, я сомневаюсь, что это будет сложно в Emacs — по крайней мере, если это очень необычный стиль, который не поддерживается поле, установив несколько переменных, вы сможете получить помощь , чтобы сделать это правильно с помощью нескольких строк Elisp.
Подсветка синтаксиса для основных языков.
Emacs дает ему странное имя font lock .
Функция отмены/возврата.
Конечно . По умолчанию «повторить» нельзя, но вы можете отменить операцию отмены. Существуют пакеты, обеспечивающие более знакомый интерфейс отмены/ возврата , деревья отмен и т. д.
Не может быть модальным (vim отсутствует, если нет способа использовать его с комбинациями клавиш, а не с режимами.)
Emacs может эмулировать Vi , но вам не обязательно этого делать.
Настраиваемые комбинации клавиш для общих задач.
Свободно.
Плакаты движения GNU . Достаточно сказано.
Работает на OS X.
Emacs для Mac OS X , Aquamacs и т. д.
Поддерживает мягкий перенос строк (длинные строки визуально переносятся, но не с переводом строки).
Возможность использовать его вместо пейджера (т.е. меньше).
Это делалось не раз . Я никогда не пробовал. Вместо этого вы можете запускать команды оболочки внутри Emacs, что дает вам возможность пейджинга бесплатно. Emacs также имеет собственный способ чтения справочных страниц, просмотра веб-страниц и т. д.
Возможность делать умные отступы.
См. отступ выше. Emacs можно настроить на автоматический отступ в различных ситуациях или по запросу; это, как правило, зависит от типа файла, поэтому я не буду вдаваться в подробности.
Кроссплатформенность.
Unix, родной OSX (см. также OSX выше), Windows , MS-DOS , Android iOS через Cydia и некоторые другие.
Возможность установки через MacPorts.
Возможность выполнять более сложное редактирование кода в стиле IDE:
Из коробки вы получаете отступы, подсветку синтаксиса, поиск идентификатора, сворачивание. Существует множество дополнительных пакетов, предоставляющих дополнительные возможности; CEDET — хорошее начало.
mcedit
— кроссплатформенный полнофункциональный текстовый редактор, входящий в состав Midnight Commander .
mcedit
или нажав F4в Midnight Commandereditor_tab_spacing
в конфигурационном файле ( ~/.config/mc/ini
)Options
менюeditor_word_wrap_line_length
, editor_option_typewriter_wrap
иwrap_mode
Редактировать:
Как обсуждалось в комментариях, перенос строки добавляет разрывы, поэтому он не удовлетворяет требованию мягкого переноса строки. Вьювер, который поставляется вместе с ним, mcview
поддерживает этот вид переноса, но без функций редактирования.
ne делает много этого.
Вещи, в которых я уверен:
Не уверена:
ne
, не поддерживает "мягкую упаковку" . Однако, похоже, у него есть способ настроить вкладки и отступы ( Ctrl
+ f
: TabSize , чтобы найти его на связанной странице ).joe
имеет все необходимое, кроме мягкой упаковки (насколько я знаю):
Обязательные к приобретению:
- Возможность запуска в Терминале (и через MacPorts).
- Быстрое время запуска. Если это намного медленнее, чем
nano
это будет непригодно для использования.- Простая настройка вкладок/отступов.
- Подсветка синтаксиса для основных языков.
- Функция отмены/возврата.
- Настраиваемые комбинации клавиш для общих задач.
nano
аналогичный режим со знакомыми комбинациями клавиш, начиная joe
с альтернативной jpico
команды.
- Свободно.
- Работает на OS X.
joe
является кроссплатформенным.
Поддерживает мягкий перенос строк (длинные строки визуально переносятся, но не с переводом строки).
joe
на самом деле очень хорош, и я рекомендую его всем, кто хочет более полнофункциональную версию nano
(если вас не волнует программная упаковка).
В 2018 году ответ на этот вопрос: нано! Он ставит все галочки. Сейчас (сентябрь 2018 г.) версия 3.0, они продолжают улучшать функциональность и кодовую базу, и продолжают это делать! Помимо отмены, теперь также есть запись макросов клавиш. Для моего использования (и это звучит также как использование OP) многие сочетания клавиш нуждаются в переопределении и изменении настроек по умолчанию, но сделайте это в ~/.nanorc или глобально в /etc/nanorc, и Боб будет вашим дядей на долгие годы вперед ..!
Я только что обнаружил, что нано имеет мягкую упаковку. В настоящее время я использую jed (ранее ne, но он плохо обрабатывает UTF-8), и jed очень мощный, но если вы добавите «set softwrap» в свой ~/.nanorc, это позволит вам softwrap (и переопределить большинство клавиш и установить множество других параметров!). Я никогда не вернусь к nano, но при новой установке он часто включается. Я все еще устанавливаю ne, потому что он вряд ли нуждается в настройке. К сожалению, jed требует от меня множества настроек (как и joe).
Тимрик
emacs -q
? Это все еще медленно?stimannkj1
emacs
, и ни одно из них не дошло до времени запуска nano.