Вопрос или проблема
У меня возникла небольшая проблема с настройкой моего клиента PuTTY
для работы с функцией автозавершения в оболочке ksh
.
Я делаю листинг корневого каталога с директориями /home
и /homeroot
, и он возвращает директории в списке без проблем. Однако я не могу выбрать их, нажав X = (где X — это номер).
/home/nitrodist>ls /h #нажимаю esc + =
1) home/
2) homeroot/
#нажимаю 2 + = для директории 'homeroot'
1) home/
2) homeroot/
#нажимаю просто клавишу '='.
1) home/
2) homeroot/
Есть идеи? Я su -
на другого пользователя, который действительно может это сделать в своей сессии PuTTY, а я не могу, что заставляет меня думать, что это проблема конфигурации PuTTY. Это работает в оболочке ksh93 на HP-UX, если это имеет значение.
Вот моя конфигурация ksh:
/home/campbelm>set -o
Текущие настройки опций
allexport off
bgnice on
emacs off
errexit off
gmacs off
ignoreeof off
interactive on
keyword off
markdirs off
monitor on
noexec off
noclobber off
noglob off
nolog off
notify off
nounset off
privileged off
restricted off
trackall off
verbose off
vi on
viraw on
xtrace off
/home/campbelm>
Это никак не связано с PuTTY.
Попробуйте:
Esc =, затем 2 Esc =
или
Tab Tab, затем 2 Tab
Ответ или решение
Проблема с автозаполнением в оболочке ksh при использовании клиента PuTTY может быть вызвана несколькими факторами, включая настройки оболочки и конфигурацию терминала. Давайте разберем возможные решения вашей проблемы.
1. Настройки PuTTY
Прежде всего, убедитесь, что в настройках PuTTY выбраны правильные параметры для работы с ksh:
- Тип шифрования: Убедитесь, что используется правильный метод шифрования. Откройте настройки PuTTY → Connection → SSH → Encryption, и выберите подходящие алгоритмы.
- Кодировка символов: Убедитесь, что кодировка терминала установлена на UTF-8. Для этого перейдите в настройки PuTTY → Window → Translation и выберите
UTF-8
. - Свойства окна: Проверьте настройки терминала в PuTTY, чтобы убедиться, что он правильно обрабатывает управляющие последовательности. Это установлено в настройках PuTTY → Window → Behaviour и должно быть включено.
2. Настройки ksh
На основе вашего вывода команды set -o
, можно заметить, что некоторые параметры, касающиеся редактирования, могут быть настроены на неактивные значения. Ваша оболочка настроена на использование режима vi
, что может влиять на поведение автозаполнения. Вы можете переключиться на режим emacs
, что может улучшить поведение автозаполнения:
set -o emacs
3. Проверка функций автозаполнения
Вы упомянули, что автозаполнение работает для другого пользователя. Это говорит о том, что у пользователя, с которым вы тестировали, могут быть дополнительные функции или настройки, включающие поддержку автозаполнения.
Убедитесь, что у вас установлен корректный файл конфигурации для оболочки ksh, такой как .kshrc
или .profile
, содержащий необходимые функции автозаполнения и настройки. Например, добавьте следующую функцию в ваш .kshrc
:
autoload -U compinit
compinit
Это позволит включить более полное автозаполнение для оболочки ksh.
4. Использование комбинаций клавиш
Попробуйте использовать альтернативные комбинации клавиш для выбора нужных элементов:
- Нажмите
Esc
, затем=
и после этого выберите номер, например,2
, затем сноваEsc
и=
. - Или попробуйте использовать
Tab
для выбора: наберитеTab
, чтобы получить список, а затем введите номер и сноваTab
для подтверждения.
Заключение
Если следуя указанным шагам и внося изменения в настройки, проблема не разрешится, возможно, потребуется больше информации о конфигурации системы или пользовательских настройках. Попробуйте провести сравнение с настройками работающего пользователя, возможно, существуют отличия в конфигурации окружения, которые требуют коррекции.
Если у вас возникли дополнительные вопросы или потребность в помощи, пожалуйста, не стесняйтесь обращаться.