1

На машине с FreeBSD, которую я использовал, клавиша со стрелкой вверх вызывает предыдущую команду BASED на уже набранных буквах. Однако на машине с CentOS, которую я использую, клавиша со стрелкой вверх просто вызывает предыдущую команду.

Кто-нибудь знает, есть ли способ установить его как клавишу со стрелкой вверх FreeBSD для CentOS?

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

5 ответов5

2

Вы также можете настроить приватный файл ~/.inputrc для вашего bash следующим образом:

"\e[5~": history-search-backward
"\e[6~": history-search-forward

Теперь клавиша page-up выполняет поиск в истории назад и вниз. Это то, что я использую. (Вам нужно перезапустить оболочку, чтобы она вступила в силу.)

Нажмите CTRL+V, а затем KEY, чтобы определить последовательность клавиш, если вы хотите связать команды оболочки с другим KEY (вместо page-up/page-down).

1

Поведение, которое вы описываете, основано на вашей оболочке.

Оболочкой по умолчанию в CentOS является bash: вы можете подтвердить это, набрав следующее:

$ echo $SHELL
/bin/bash

Если это так, то вы можете получить аналогичную функциональность для вашей оболочки FreeBSD (скорее всего, ksh), нажав CTRL-r. Вы увидите что-то вроде этого:

(reverse-i-search)`': 

Просто начните вводить текст, и вы получите команды, которые вы ранее выполняли, основываясь на том, что вы ввели.

Например, в этом терминале, когда я набираю CTRL-r, я получаю это:

(reverse-i-search)`s': sudo port install ruby

Затем вы можете прокрутить вверх или вниз с помощью клавиши со стрелкой, чтобы пройти все команды, которые соответствуют вашим критериям поиска (в данном случае, 's').

1

Оболочкой по умолчанию во FreeBSD является CSH. В CentOS должен быть пакет для него (для этого обратитесь к менеджеру пакетов).

HOWTO: Загрузите и установите оболочку csh / tcsh в Linux

0
  1. Установите tcsh, как упомянуто @flokra.
  2. Поместите файл .cshrc в свой домашний каталог. Внутри этого файла настройте tcsh для отображения списка совпадений с частично набранной командой при нажатии стрелки вверх или вниз. Используйте http://svnweb.freebsd.org/base/stable/9/share/skel/dot.cshrc?revision=244007&view=co&pathrev=244007 в качестве руководства, но вы ищете:

    bindkey -k up history-search-backward
    bindkey -k down history-search-forward
    
0

Это определяется вашей оболочкой. Вы можете определить, какую оболочку вы используете, набрав: echo $ 0

В FreeBSD вы обычно используете csh (который был изобретен в Беркли, доме BSD). В Linux вы обычно запускаете bash. Вы можете получить поведение «стрелка вверх», переключившись в режим редактирования истории emacs. Попробуйте набрать: установить -o emacs в вашем терминале.

Если вам нравится такое поведение, вы можете отредактировать свой файл $ HOME/.bashrc и добавить эту строку, и вы будете иметь в каждой оболочке

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