Какой редактор я могу использовать в качестве простой альтернативы vi / vim?

17

Я являюсь пользователем Windows и прихожу на Ubuntu's Bash благодаря WSL . Теперь мне нужно отредактировать некоторые файлы, и я действительно ненавижу Vi. Должен ли я просто иметь дело с этим, или есть более простая альтернатива?

Особенности, которые я ищу:

  • На основе CLI
  • прост в использовании (набор текста и редактирование должны быть похожи на блокнот)
  • достаточно простых возможностей редактирования

Я постараюсь освоить Vim, но мне нужно сделать быстрое редактирование прямо сейчас!

sebagomez
источник
Это вопрос мнения. Новички используют нано howtogeek.com/howto/42980/… . vim (улучшенный vi) имеет некоторую кривую обучения, но он очень мощный - см. linux.com/learn/vim-101-beginners-guide-vim или любые другие руководства vim или учебник vim, vimtutor (включен в vim)
Пантера
Обратите внимание, что этот вопрос может быть закрыт как довольно основанный на мнении. Возможно, вы захотите перефразировать его в соответствии с правилами сайта (например, что я могу использовать в качестве альтернативы vim?)
Андреа
3
Голосование, чтобы закрыть это как основанный на мнении вопрос. Совет: начинайте с nano, а затем переходите к vim с помощью baby-steps. В конечном итоге это окупится, потому что vim в основном работает на любой Linux-системе
Сергей Колодяжный
1
Как продолжение моего комментария, текущий заголовок все еще остается дискуссионным и может привести к закрытию. Люди могут считать, что Vim сам по себе «хороший», и это субъективно. Могу ли я предложить вместо этого слово «проще»? Также определение некоторых желаемых функций может помочь сузить вопрос.
Андреа
2
@ Кстати, речь идет о WSL, где можно запускать программы с графическим интерфейсом, но это не тривиально. Кроме того, вопрос не существует для редакторов графического интерфейса, потому что они все проще, чем vim.
Андреа

Ответы:

24

Если вы ищете альтернативного редактора, вы не одиноки. В принципе жизнь слишком коротка, чтобы учиться, viи я говорю, что это разработчик программного обеспечения для жизни. Однако вы должны научиться выходить из него, потому что это проблема для одного из 20 тысяч программистов . Также стоит изучить некоторые базовые операции добавления / вставки, потому что на некоторых упрямых серверах вы не найдете другого редактора.

Теперь, ответ на ваш вопрос, вероятно nano.

Если вы запускаете какой-либо сценарий автоматической сборки, используете gitили запускаете другие команды, они могут открываться vimбез вашего ведома. Вы можете предотвратить это, выполнив следующее перед продолжением:

export EDITOR=nano
Андреа Лаззаротто
источник
1
Благодарность! дополнительный балл за EDITORчаевые
себагомез
3
«По сути, жизнь слишком коротка, чтобы учиться ви». Не нужно тратить всю жизнь, хотя можно, если они любят Vim. Я потратил 2 часа на просмотр хорошего урока на YouTube и продолжал практиковать основы, которые я узнал из видео. Теперь 70% всех моих ответов на Ask Ubuntu написаны на vim.
Сергей Колодяжный
7
На «жизнь слишком коротка», я подумал, что это эссе имеет смысл. Одним из самых больших (искусственных) препятствий в обучении Vim является ложная предпосылка о том, что вам нужно немедленно погрузиться в становление «хардкорного» пользователя. Вы не Используйте клавиши со стрелками. Используйте сочетания клавиш для копирования / вставки. Тусоваться в режиме вставки. Игнорировать вкладки и регистры и навороты (пока). Относительно быстро перейти к функциональности наноуровня в Vim, и вы можете постепенно добавлять расширенные функции по мере необходимости.
РМ
Сочетания клавиш @RM GUI?
Андреа
1
@Sergiy vim имеет смысл, если вы хотите использовать расширенные функции. Если бы я использовал vim так же, как я использую nano, я бы просто продолжил использовать nano (на самом деле я использую ... Я использую vim, когда нахожусь на сервере, на котором я не могу добавить программное обеспечение, например, на машину клиента).
Андреа
11

Это вопрос мнения.

Новички используют нано .

У vim («vi улучшенный») есть немного кривой обучения, но он очень мощный. См. Это руководство для начинающих для vim или любых других руководств vim или руководство по vim vimtutor(входит в vim).

Сейчас я настоятельно рекомендую нано

nano -B /path/to/file/to/edit

-B делает резервную копию

Команды выдаются с управляющим ключом и перечислены в нижней части окна редактора.

Существует руководство по подсветке синтаксиса, см. Как включить подсветку синтаксиса в nano?

нано

emacsявляется альтернативой для обоих vimи nanoи имеет много преимуществ , а также. emacsявляется более сложным, чем нано. Вы можете увидеть тур Emac .

Просто для полноты темы vim +, такие как Zenburn, могут быть весьма полезны

Zenburn

пантера
источник
2
Не только начинающие, в основном все люди, которые не хотят участвовать в войнах vim vs emacs. : P
Андреа
1
+1 Я бы тоже пошел с nano, даже для давних пользователей vi выглядит как какая-то старая хрень
xavier_fakerat
Ну, чтобы быть справедливым, вы можете тему vim и .vimrc проходит долгий путь. vim и emacs имеют расширенные функции, которые недоступны в nano, но это бесполезно, если вы не используете расширенные функции. Для быстрого базового редактирования я использую nano, хотя в целом я фанат vim. kippura.org/zenburnpage
Пантера
1
Учись vi/vim. :) Это на каждом устройстве nix. :) Основы не так сложно.
беглец
3
«Emacs является более сложным, чем нано». Это может быть преуменьшение года.
Даниэль Жур
3

Как Windows PowerUser, после попытки, vimи nanoя обнаружил, что мне нужно что-то среднее, мудрость сложности. поэтому я попытался дать пощечину, и это было то, что я искал.

пощечину

slap - это Sublime-подобный текстовый редактор на основе терминала, который стремится облегчить редактирование с терминала.


установка:

curl -sL https://raw.githubusercontent.com/slap-editor/slap/master/install.sh | sh
Soorena
источник
1
Вы забыли упомянуть основной момент продажи, первоклассную поддержку мыши (даже через соединение SSH)
blueray
2

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

  • ... как найти помощь?
  • ... что значит wq?
  • ... какого-нибудь маленького лиспера, которого ты читаешь как старшекурсник?

Маленький, храбрый мир ждет!

Пока мы выступаем за наши любимые легкие текстовые редакторы, позвольте мне порекомендовать eXcellent, крошечный и быстрый xo (exofrills) .

Это один файл Python 3, и он имеет хорошую поддержку подсветки синтаксиса через Pygments (хотя и не идеально с не-Python):

введите описание изображения здесь

У этого также есть чрезвычайно простые и полезные комбинации клавиш, которые могут быть легко и легко изменены в соответствии с вашим сердцем:

введите описание изображения здесь

Другие преимущества:

  • Менее 850 строк кода в одном файле!
  • Подсветка синтаксиса!
  • Соответствие и замена регулярных выражений!
  • Кэширование истории поиска!
  • WTFPL лицензирован!
  • Полностью настраиваемый!
  • Начните с неисследованных локаций!
  • Хоп между словами в строке!
  • Перейти в любое место в файле!
  • Целая вставка файла!
  • Новичок дружелюбен - возможно, вы новичок в словах!
  • Скопируйте и вставьте текст!
  • Статус строки и столбца!
  • Только одна строка пространства для нетекстового редактирования!
  • И сохранение и загрузка!

Исходный код Python3 находится на github , и его проще установить, используя:

sudo apt install python3-pip
sudo pip3 install exofrills 

exofrills: ваш текст был отредактирован ... но вы все еще голодны.

Отказ от ответственности: я никоим образом не связан с проектом exofrills.

Кот
источник
1
Это выглядит очень аккуратно, +1 от меня. Хотя это количество восклицательных знаков вызывает беспокойство. : P
Андреа
0

Хотя я не могу отрицать, что я слишком боролся с vi вначале, я думаю, что можно привести аргумент, что vi на самом деле очень легко изучить. (Когда я начал использовать Unix, выбор был либо vi, либо emacs, поэтому в то время я выбрал ed, ed был очень простым редактором строк, который я узнал уже из чтения ранних учебников по Unix.) Я использую vi ежедневно, но, вероятно, использовать только очень маленькое подмножество его функций.

Вот первый аргумент для использования vi: vi существует во всех системах, использует очень мало ресурсов и может использоваться при нестабильных и медленных соединениях, где другие редакторы могут выходить из строя или быть медленными и непригодными для использования. Или в ситуациях, когда система не работает, поэтому клавиши со стрелками интерпретируются неправильно (например, неверные настройки terminfo). Поэтому vi можно использовать для исправления файлов конфигурации, приводящих к проблеме, без влияния проблемы.

И вот как узнать полезное подмножество vi: во-первых: перестаньте думать о vi как об интерактивном «редакторе» GUI терминала и посмотрите на него как на язык программирования для работы с текстовыми файлами. В начале "vi" означало режим VIsual, а у vi есть невизуальный аналог ex, который является хорошим началом. Введите ex в приглашении оболочки (я буду использовать ¬ для представления возврата):

$ ex¬
Entering Ex mode.  Type "visual" to go to Normal mode.
:

Теперь нажмите Enter.

:¬
E749: empty buffer
:

Итак, давайте вложим что-то в это. Введите «a¬» и введите строку текста, а затем точку в строке:

:a¬
Hello World¬
.¬
:

Это была команда добавления. Легкий, короткий и мнемонический. Но было бы неплохо посмотреть, что находится в буфере:

:%p¬
Hello World
:

Это была команда печати, p, очевидно. % - это сокращение диапазона строк. Каждой команде может предшествовать номер строки или диапазон, к которому должна применяться команда. % означает «все строки». $ означает последнюю строку, а точка означает текущую строку. Число означает эту конкретную строку. Диапазон записывается как n, m, и число может быть добавлено или вычтено, поэтому + 1, $ - 1 означает от следующей строки до второй-последней строки. Команда, состоящая только из номера строки, отправляется на эту строку. Вот оставшееся небольшое подмножество команд, которые я использую:

:1i¬
this text is inserted before line 1.¬
.¬
:

:w /tmp/filename¬
"/tmp/filename" [New] 2L, 49C written
:

w записывает все (или выбранный диапазон) строк в файл.

:1d¬

удаляет строку 1

:.s/Hello/Hello,/¬
Hello, World
:.s/$/!/¬
Hello, World!

s заменяет регулярное выражение. Хорошо знать регулярные выражения!

:q¬
E37: No write since last change (add ! to override)

д выходит wq пишет и выходит. д! выходит без записи, и в том же духе, ш! форсирует запись в файл, если это возможно.

Теперь классный:

:p
Hello, World!
:.!tr a-z A-Z
:p
HELLO, WORLD!

! как команда фильтрует строки в команду оболочки.

И наконец:

:vi¬

входит в ВИЗУАЛЬНЫЙ режим. Не обманывайтесь. Это похоже на редактор, но это все еще просто оболочка для интерактивного программирования. Вы просто все время просматриваете буфер и еще несколько команд. В визуальном режиме a: показывает подсказку: из режима ex. Клавиши со стрелками (если они работают) перемещаются, а если нет, то hjkl делает! h влево, j вниз, k вверх и l вправо. 0 перемещается к первому символу и ^ (подумайте здесь о регулярном выражении!) К первому непробельному символу в строке. $ (снова regex!) перемещается в конец строки. Ввод: 999¬ переходит к строке 999, естественно, как в режиме ex.

«i» входит в режим вставки, который теперь вставляет символы вместо строк, и заканчивается нажатием клавиши escape вместо «.¬». «I» вставляет в начале, «a» после символа под курсором и «A» после конца текущей строки. Всегда нажимайте escape, когда закончите ввод текста. «x» удаляет символ под курсором, а «D» удаляет курсор от конца строки. «Y» возвращает (копирует) текущую строку, а «P» вставляет ее обратно. ": pu" делает то же самое, но перед ним может стоять номер строки. «: ya» является бывшим эквивалентом «Y», и снова полезно применять к диапазону строк. Я думаю, что есть команда mark, но я признаю, что не помню ее. Я не скучаю по этому.

Это то, что я использую, и я знаю, что я, вероятно, не очень «эффективный» пользователь vi. С другой стороны, я использую универсальность ex, например, для редактирования скриптов в файлах конфигурации. Нужно изменить имя хоста foo.bar.com на www.foobar.com в нескольких файлах conf?

for file in conf/*
do (echo "%s/foo.bar.com/www.foobar.com/" ; echo "wq") |ex $file ; done

Я пытаюсь сказать, что проблема с vi заключается в том, что люди думают, что это сложный редактор. Все, что вам нужно, это немного изменить свое мышление и вместо этого рассматривать его как очень простой, но также очень мощный интерактивный язык программирования. Настолько мощный, что даже с подмножеством доступных команд, вы можете использовать его с большим эффектом - не только как редактор, но и как общий инструмент с возможностью написания сценариев, хорошо интегрированный с остальной частью Unix. Я сомневаюсь, что nano сделает все это - emacs ... возможно.

КТТ
источник
3
Извините, но ... это не отвечает на вопрос. OP попросил альтернативу vim, и ответы должны предоставить это.
Андреа
1
Я высоко оцениваю работу, которую вы вложили в этот ответ, но он на самом деле не отвечает на этот вопрос - учебник и плагин для vim здесь не принадлежат вообще, но они есть в вашем блоге.
кот
Именно этот ответ и объясняет, почему так много людей просят альтернативу viemacs - чем больше мы говорим, что ими неприятно пользоваться, тем больше обращенные настаивают на том, что мы стараемся их использовать.
Шукри Адамс
0

Если вам нужен основанный на терминале Sublime-подобный текстовый редактор с поддержкой мыши, выберите Micro , Slap или Suplemon .

Однако, если вы ищете модальный текстовый редактор, смотрите не дальше, чем в Kakoune .

синий луч
источник