2

Кто-нибудь знает лучшую терминальную программу для снежного барса, которая позволяет редактировать текст? (т.е. переход к определенному персонажу без необходимости использовать стрелки для перехода по одной) и т. д.? Спасибо!

ОБНОВЛЕНИЕ: Извините, я имел в виду обновление команды, которая уже была написана. Скажем, я хотел сделать что-то вроде script/generate migration add_field_to_something . Я написал это, и Rails произвел миграцию. Теперь я решил, что хочу избавиться от этой миграции, потому что сделал какую-то ошибку. Для этого мне нужно написать script/destroy migration add_field_to_something . Прямо сейчас у меня есть три варианта: 1) написать всю команду от начала до конца 2) нажать кнопку «вверх», чтобы воспроизвести последнюю команду, а затем стрелку влево, пока я не доберусь до слова « generate а затем удалить и написать « destroy или 3) скопируйте последнюю команду в TextEdit, выделите ее с помощью мыши (или пропустите слова с помощью команды + стрелка влево, чтобы выбрать быстрее - в терминале это невозможно), а затем замените ее словом « destroy , а затем скопируйте обратно в терминал. , Мой вопрос - есть ли терминальная программа, которая позволяет редактировать с помощью мыши / пропуская слова, как я делаю в TextEdit (то есть с помощью команды + стрелка влево), чтобы сэкономить время?

Спасибо!

6 ответов6

4

Вы можете многое сделать для редактирования командной строки в bash , оболочке по умолчанию. Обратите внимание, что это не зависит от того, какая программа терминала используется. В разделе « Редактирование командной строки » документации по bash или в этой заставке есть много информации.

Обновление За мой комментарий к другому ответу вы можете использовать Mf (опция +F) и Mb (опция +B), чтобы переходить вперед и назад по слову. Скринкаст, на который я ссылаюсь, показывает, как это сделать. Также обсуждается поиск в истории команд с использованием Cr (то, чего я никогда не пробовал).

3

Вы ищете редактор или терминальную программу? Эмулятор терминала отделен от редактора и не поддерживает указатель мыши.

РЕДАКТИРОВАТЬ

Спасибо за разъяснения. Возможно, вас заинтересует оболочка zsh, в которой есть несколько сочетаний клавиш для перемещения курсора:

  • Alt-A - перейти к началу строки
  • Alt-E - перейти к концу строки
  • Alt-F - двигаться вперед на одно слово
  • Alt-B - переместиться назад на одно слово

Кроме того, bash, который является оболочкой по умолчанию, имеет сочетания клавиш для перемещения в начало и конец строки:

  • Ctrl-A - перейти к началу строки
  • Ctrl-E - перейти к концу строки
3

Существуют всевозможные советы и подсказки в оболочке, где такие вещи быстро исправляются с помощью сочетаний клавиш и команд оболочки.

Например, используя оболочку zsh и ваш пример сценария, у вас есть 4-й вариант:

zsh% script/generate migration add_field_to_something

К сожалению! Я не хотел этого делать. Позвольте мне напечатать это ...

zsh% script/destroy !*

Исправлена! !* означает: использовать все параметры из предыдущей команды.

В качестве альтернативы вы могли бы просто набрать:

zsh% r generate=destroy

Команда r означает заменить в предыдущей команде. Таким образом, предыдущая команда будет работать с генерировать заменены уничтожить.

Я думаю, что я говорю, что программисты ленивы. Очень ленивый. Они подумали о сотнях ярлыков и трюков с автозаполнением, чтобы сделать эти задания быстрыми и легкими. Когда вы научитесь использовать оболочку и оптимизируете ее, вы увидите, что "исправление" команд с помощью выбора мыши, возможно, не самый эффективный путь…

PS.

Многие разработчики rails также создали файл псевдонимов в ~/.zsh который вызывается из их .zshrc .

alias sg='script/generate'

Таким образом, это сэкономит еще больше нажатий клавиш. script/destroy вы можете не псевдоним, просто чтобы избежать случайного вызова. ;-)

2

Я предпочитаю iTerm для терминальных операций в OSX. http://iterm.sourceforge.net/

Терминал допускает взаимодействие с мышью (через стандартную xmouse) и имеет много наворотов, которых стандартный терминал не имеет.

1

Другой вариант - использовать режим оболочки emacs. если вы знакомы с emacs, вы можете набрать Mx shell-mode, он выдаст обычное приглашение. Вы можете использовать все обычные команды редактирования Emacs.

ОДНО ПРЕДУПРЕЖДЕНИЕ, поскольку стрелка вверх (или Cp) фактически перемещает курсор вверх по строке, вам нужно использовать Mp и Mn для получения предыдущей и следующей команд ...

Насколько я знаю, у vim может быть похожий режим, но я настоящий сторонник культа Emacs, так что ...

1

Используйте vi в качестве редактора (export EDITOR = vi), а затем настройте оболочку на использование режима vi (set -o vi), и после этого вы получите золотую медаль. Хотите вспомнить ту огромную строку, которая у вас была, нажмите Esc и косую черту, чтобы начать поиск по истории команд. Введите первые пару символов, которые вы ввели. Прокрутите их, нажимая вперед, и затем входите. Наслаждаться.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .