Добавьте следующее к Вашему ~/.Xmodmap
файл:
keycode 66 = Escape NoSymbol Escape
clear Lock
Посмотрите, что Повторно отображающаяся Caps Lock с xmodmap не работает на объяснения.
Выполненный xmodmap - <~/.Xmodmap
применить Ваши изменения сразу. Они будут применены автоматически, когда Вы войдете в систему в будущем.
(Между прочим, это по существу, что продолжается под капотом в RHEL 6, который является, по-видимому, где Вы получили требование этой функции в RHEL 5. Это - то, что я подразумевал под своим удаленным комментарием, что этот материал был закреплен за годы до этого. Все, что они сделали, помещается немного глазури GUI сверху древнего механизма.)
При установке переменных среды на одном экране (скажите, что рабочий удар), и затем открывают новый экран, это - отдельный процесс удара и поэтому уже не возьмет среду на отдельном рабочая оболочка удара. Быстрое исправление для обхождения проблемы было бы:
env TERMCAP= env | sed -r 's/^(\w+)=(.*)$/\1="\2"/' > env.sh
затем, после того как у Вас есть Ctrlac для получения новой оболочки, Вы можете затем
source env.sh
Это - hacky, и я использую env TERMCAP= env
потому что переменная среды TERMCAP является мультилинией и делает sed
намного более сложный. Это не симпатично, но это работает :)
Можно хотеть изменить его, чтобы сделать:
env TERMCAP= env | sed -r 's/^(\w+)=(.*)$/export \1="\2"/' > env.sh
Таким образом, переменные также экспортируются.
Экспортированные переменные, как показано env
, должны автоматически наследоваться вашим новым screen
.
Однако локальные переменные, которые вы определили в своей оболочке перед запуском screen
, но которые вы не экспортировали, не будут существовать в сеансе экрана.
В зависимости от того, как вы называете свои переменные, вы можете использовать что-то подобное в Bash, чтобы получить удобочитаемый список:
(set -o posix ; set) | egrep -v '^(_.*|[A-Z0-9_]+)='
set
сам по себе также содержит множество функций.
(set -o posix ; set)
перечислит только переменные, но в этом списке есть масса системных переменных.
egrep -v '^(_.*|[A-Z0-9_]+)='
отфильтровывает все переменные, имя которых начинается с символа подчеркивания, а также все те, которые состоят только из заглавных букв, цифр и символов подчеркивания. Это должно избавиться от большинства системных переменных.
Таким образом, список ограничен переменными, которые также (или только )используют строчные буквы (, символы подчеркивания и цифры ). Теперь вы можете скопировать то, что хотите, из этого списка перед запуском экрана и вставить его туда.
Конечно, это полезно только в том случае, если у вас есть много переменных, которые вы забыли экспортировать, но вы не забыли проверить их перед запуском экрана...
bash --rcfile env.sh
также. – slm♦ 10.09.2013, 14:16fn="() {function body"
в Вашем env.sh. Также не работает, если у Вас есть переменная с символом "в значении. – ricab 10.09.2013, 17:16env
должны только сообщить настройки переменной среды,set
сообщили бы функции, и sed был установлен искать слово\w+
связанный с началом строки^
сопровождаемый a=
, таким образом, это не было должно произведенных функций. Но я понимаю, что это был в значительной степени "быстрый взлом", я не уверен, найдете ли Вы решение, хотя :( – Drav Sloan 10.09.2013, 18:24test() { echo test; } ; export -f test ; env | grep test
). BTW, отметьте меня, если Вы отвечаете здесь, иначе я не предупрежден (Ваше сообщение) – ricab 11.09.2013, 13:41