Можно ли настроить Bash для поиска строки в текущей строке ввода? - PullRequest
2 голосов
/ 07 октября 2009

Для быстрого определения местоположения при использовании командной строки (Да, я фанат Emacs). После просмотра Bash 'man, я не могу найти такие советы. Нужно ли изменять исходный код readline для поддержки этого?

Большое спасибо !!

Ответы [ 2 ]

3 голосов
/ 07 февраля 2010

CTRL-r (reverse-i-search) позволит вам искать как текущую строку, так и что-либо в вашей истории.

Если вы хотите вернуться к паре аргументов, вы можете нажать пробел, затем снова нажмите CTRL-r, чтобы «найти снова». Escape вырвется из него с курсором на последнем результате поиска.

3 голосов
/ 07 октября 2009

Я не знаю способа сделать это непосредственно в командной строке, но bash поддерживает нажатие клавиш, которое открывает командную строку в выбранном вами редакторе. Из справочной страницы bash:

   edit-and-execute-command (C-xC-e)
          Invoke  an  editor  on the current command line, and execute the
          result as shell commands.   Bash  attempts  to  invoke  $FCEDIT,
          $EDITOR, and emacs as the editor, in that order.

Поэтому нажатие CTRL-x CTRL-e в режиме привязок emacs (по умолчанию) или ESC v в режиме привязок vi (set -o vi для этого) откроет существующую командную строку в редакторе, указанном вышеупомянутыми переменными среды. Вы можете редактировать командную строку, и после сохранения и выхода из редактора команда будет выполнена.

...