Вопрос или проблема
Я на системе Linux:
jla@jaspden-desktop$ uname -a
Linux jaspden-desktop 2.6.35.13-92.fc14.i686 #1 SMP Sat May 21 17:39:42 UTC 2011 i686 i686 i386 GNU/Linux
Здесь, в командной строке, клавиша Backspace удаляет символ перед курсором, а клавиша Delete удаляет символ под курсором.
Я вхожу удаленно на другой наш сервер:
$ ssh anvil
Последний вход: Чт Сен 15 11:58:38 2011 с maspben-desktop.uk.level5networks.com
$ uname -a
Linux anvil 2.6.9-89.ELlargesmp #1 SMP Пн Апр 20 10:43:12 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux
Теперь клавиша Backspace по-прежнему работает как раньше, но клавиша Delete ничего не удаляет. Вместо этого она вставляет тильду так:
jla@anvil$ misspell~ling
Если я затем запущу tcsh на удаленном сервере,
$ tcsh
Клавиша Delete будет работать так же, как Backspace, удаляя символ перед курсором.
Если я вернусь в bash, она снова переключится в режим вставки тильды.
Есть идеи, как это исправить/отладить? Это меня сводит с ума.
Вот два руководства, которые помогут вам понять и, надеюсь, исправить работу клавиш Backspace и Delete в различных оболочках и других командных приложениях:
Они помогли мне много раз решить подобные проблемы.
Я воздержался от цитирования “самой релевантной” части, потому что любая часть этих документов может быть для вас самой релевантной, это зависит от специфики ваших систем.
Ответ или решение
Чтобы корректно настроить клавишу "Delete" на вашем Linux-системе и устранить проблемы, связанные с ее функциональностью, необходимо рассмотреть несколько аспектов конфигурации терминала и используемой оболочки. Ваша ситуация показывает, что поведение клавиши "Delete" зависит от оболочки (bash и tcsh) и, возможно, от настроек терминала.
1. Проверка настроек терминала:
Первым делом, вам нужно убедиться, что ваш терминал корректно настроен. В большинстве терминалов (таких как xterm, GNOME Terminal или Konsole) есть возможность настроить поведение клавиш. Убедитесь, что для клавиши "Delete" выбрана правильная привязка.
2. Файлы конфигурации оболочки:
Проблемы с поведением клавиши "Delete" могут быть связаны с настройками в конфигурационных файлах оболочки. Для bash
проверьте следующее:
.bashrc
Откройте файл .bashrc
в вашем домашнем каталоге:
nano ~/.bashrc
Добавьте или раскомментируйте следующую строку:
stty erase "^H"
Эта команда настраивает оболочку bash на восприятие клавиши "Backspace" как ^H
.
.inputrc
Также стоит проверить настройки в файле .inputrc
. Этот файл управляет поведением readline, который используется многими командными оболочками:
nano ~/.inputrc
Добавьте следующие строки:
"\e[3~": delete-char
Это означает, что нажатие клавиши "Delete" должно удалять символ под курсором.
3. Проверка терминала при SSH:
Когда вы подключаетесь к удаленному серверу через SSH, терминал может передавать разные последовательности управления, что приводит к несоответствию в поведении клавиш. Для тестирования этого можно запустить следующие команды для получения информации о том, какие символы передаются:
cat
Теперь нажмите клавишу "Delete" и посмотрите, какие символы выводятся. Если вы видите ~
, это указывает на то, что ваш терминал неправильно распознает эту клавишу.
4. Использование альтернативных оболочек:
Как вы заметили, в tcsh
клавиша "Delete" работает правильно, так как обрабатывает ее как "Backspace". Этот момент говорит о том, что в оболочке bash
сохраняются оригинальные назначенные функции клавиш. Если проблема не решается, вы можете рассмотреть возможность использования tcsh
или другой оболочки, более оптимально подходящей для вашего рабочего процесса.
5. Обновление и исправление программного обеспечения:
Так как ваша система работает на относительно старом дистрибутиве Fedora (выпущенном в 2011 году), рекомендуется проверить наличие обновлений для вашего программного обеспечения. Устаревшие пакеты могут иметь нерешенные баги, которые влияют на работу клавиатуры.
sudo yum update
Заключение
Проблемы с функциональностью клавиши "Delete" в Linux могут быть вызваны множеством факторов, начиная от конфигурации терминала и заканчивая настройками оболочки. Следуя предложенным шагам, вы сможете настраивать и тестировать необходимые параметры для устранения ошибки. Если трудности продолжаются, рекомендуется обратиться на специализированные форумы или сообщества Linux для более детальной помощи.