Автозавершение слов от терминального буфера

Можно попытаться добавить строку init=/bin/sh к командной строке ядра в личинке. Это должно принести Вам в оболочку. Затем смонтируйте корневое чтение-запись файловой системы с

mount / -o remount,rw

и внесите свои изменения.

7
29.06.2012, 05:13
3 ответа

Короткий ответ: Нет, не с классическими оболочками как zsh или bash поскольку обычно Ваша оболочка и терминал являются различными объектами.

Длинный ответ: Возможно. То, что типичный происходит, является Вами, вводят команду и нажимают Enter - теперь Ваши ветвления оболочки, и выполняет указанную команду. Затем оболочка понятия не имеет, что происходит, оболочка не знает то, что будет записано в терминал или что сделала выполненная программа, если это запустило другие программы, записал в Ваш терминал или что-либо.

Существует два возможных решения Вашей проблемы:

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

Решение для 2, например, использует emacs и multi-term и просто использование M-/как Вы нормальный было бы для завершения вещей от терминала. Другие терминалы могут предложить аналогичное решение.

Но Вам действительно нужен этот вид завершения? завершение оболочки в наше время может завершить страницы справочника, команды, pids, сокеты, опции команды, пути к файлам от удаленных систем, и многое другое. Это может быть уже достаточно для Вашего варианта использования или могло быть улучшено для Вашей определенной проблемы.

3
27.01.2020, 20:18
  • 1
    Хотя неутешительный, это было в значительной степени ответом, который я ожидал. Спасибо за объяснение Вы дали относительно разъединения между оболочкой, выполняющей команду и материалом, который переходит в фоновом режиме без ведома к нему. А-ч –  noffle 29.06.2012, 19:06

http://www.iterm2.com/#/section/features/autocomplete

iterm2 имеет точно, в чем Вы нуждаетесь. Плохая вещь это для Mac.

Но так как это является терминальным, Вы можете ssh к linux/unix, и это все еще работает.

2
27.01.2020, 20:18
  • 1
    спасибо за рекомендацию; я не был осведомленным iTerm2, мог сделать это. –  noffle 09.07.2012, 22:40

Это - вероятно, не ответ, который Вы ожидали бы, но он может удовлетворить некоторые Ваши потребности.

Можно использовать ВКЛАДКУ, чтобы автоматически заполнить команду, которая находится в $PATH (или внутренние команды), поэтому если Вы, имя файла является исполняемым файлом и это находится в $PATH, это будет автоматически заполнено.

Если Вы хотите автоматически заполнить на имени файла, которое не является исполняемым файлом, можно ввести"."-точка, затем расположите с интервалами (или безотносительно вместо точки) затем часть имени файла и ВКЛАДКИ. Таким образом, Вы обманете оболочку, чтобы полагать, что Вы выполняете команду и даете имя файла как аргумент команде. Нажатие TAB автоматически заполнит имя файла, но необходимо будет удалить dot+space впереди, возможно.

Другая возможность состоит в том, чтобы использовать функцию завершения Bash. Это может автоматически заполнить больше, чем просто имена файлов.

0
27.01.2020, 20:18
  • 1
    цветов Спасибо за то, что заняли время, чтобы попытаться помочь, но это не то, что я ищу. Я уже знаю (и часто используйте), заполнение клавишей Tab в моей оболочке. Что я, после способ получить завершение на произвольном терминальном выводе. Я обновил свое сообщение для лучше описания этого. –  noffle 29.06.2012, 05:14

Теги

Похожие вопросы