Я не использовал oh-my-zsh (мм о), но я действительно использую zsh, и он и другие оболочки не перезагружает конфигурационные файлы между командами. Необходимо явно перезагрузить их с исходной командой:
source ~/.zsh_config_file_you_modified_or_another_file
или
. ~/.zsh_config_file_you_modified_or_another_file
Запуск новой оболочки zsh делает это (полностью с новой оболочкой входа в систему, частично с новой оболочкой sub, как Вы сделали на правой панели выше).
Полный список которого zsh файлы конфигурации загружаются на входе в систему по сравнению с нормальными оболочками:
╔════════════════╦═══════════╦═══════════╦══════╗
║ ║Interactive║Interactive║Script║
║ ║login ║non═login ║ ║
╠════════════════╬═══════════╬═══════════╬══════╣
║/etc/zshenv ║ A ║ A ║ A ║
╠════════════════╬═══════════╬═══════════╬══════╣
║~/.zshenv ║ B ║ B ║ B ║
╠════════════════╬═══════════╬═══════════╬══════╣
║/etc/zprofile ║ C ║ ║ ║
╠════════════════╬═══════════╬═══════════╬══════╣
║~/.zprofile ║ D ║ ║ ║
╠════════════════╬═══════════╬═══════════╬══════╣
║/etc/zshrc ║ E ║ C ║ ║
╠════════════════╬═══════════╬═══════════╬══════╣
║~/.zshrc ║ F ║ D ║ ║
╠════════════════╬═══════════╬═══════════╬══════╣
║/etc/zlogin ║ G ║ ║ ║
╠════════════════╬═══════════╬═══════════╬══════╣
║~/.zlogin ║ H ║ ║ ║
╠════════════════╬═══════════╬═══════════╬══════╣
║ ║ ║ ║ ║
╠════════════════╬═══════════╬═══════════╬══════╣
║ ║ ║ ║ ║
╠════════════════╬═══════════╬═══════════╬══════╣
║~/.zlogout ║ I ║ ║ ║
╠════════════════╬═══════════╬═══════════╬══════╣
║/etc/zlogout ║ J ║ ║ ║
╚════════════════╩═══════════╩═══════════╩══════╝
Если файлы существуют, они загружаются в первом, то B, C, D и т.д. Я и J только загружаемся/выполняемся при том, чтобы выходить из системы / выход из оболочки входа в систему.
Вот соответствующая выдержка из минус
' FAQ:
Может ли меньшее количество пакетов оставить экран в покое при выходе из репозитория?
Когда начинается меньше, он посылает строку "ti" termcap на терминал, и когда она уходит, она посылает строку "те". Именно то, что "te" строка действительно зависит от используемой системы, типа терминала, и вашу версию терминологии. На некоторых системах он ничего не делает; на другие восстанавливают экран до того состояния, в котором он находился, когда меньше запущен, таким образом удаляя с экрана последнюю страницу файла, которая меньше просмотра.
Если тебе не нравится поведение "te" в твоей системе, ты можешь отключить отправка строк "ti" и "te" путем меньшего вызова с помощью -X. вариант. К сожалению, иногда это имеет и другие побочные эффекты, потому что строки "ti"/"te" могут делать другие необходимые вещи. Для Например, на некоторых терминалах отключение "ti" и "te" приводит к появлению стрелок. перестать функционировать.
Если вы хотите, чтобы "te" сделал что-то другое (например, восстановил бы экран, если он еще этого не сделал), тебе придется выяснить, как для изменения терминала в вашей системе. К сожалению, на разных системах это делается по-разному, поэтому вам придется проверить документацию для вашей системы.
Исследования приводят к тому, что возможности "ti" и "te" termcap в терминологии называются "smcup" и "rmcup", что является более современным эквивалентом терминологии.
Вы можете увидеть, как ваш терминал ($TERM
, скорее всего xterm
) конфигурируется с помощью:
infocmp -1 # which will print out capabilites one per line
Вы можете расшифровать значение последовательностей с помощью ссылки на управляющие символы VT100.
Если вы удалите возможности "smcup" и "rmcup" из терминала:
infocmp -1 | sed -r '/[sr]mcup.*/d' > new-terminfo-for-$TERM
и затем сообщите терминальной библиотеке, что это новая, предпочтительная спецификация возможностей для $TERM,
tic new-terminfo-for-$TERM
# you reverse this with `rm -ri ~/.terminfo`
вы заметите, что less
' альтернативный экран больше не очищается (так как он никогда не был введен). ] Но мышь больше не работает .
Если вы проделываете скрипку с управляющими символами "rmcup" и разгадываете их, пожалуйста, дайте мне знать!
Рабочая альтернатива - обернуть меньше как функцию, которая запускает cat, когда файл соответствует высоте терминала (поместите это в ваш .bashrc):
less () {
# When single file argument, and file small enough, cat it
if [ $# = 1 ] && [ -f "$1" ] && [ $(wc -l "$1" | cut -d' ' -f1) -le $((${LINES:-0} - 3)) ]; then
cat "$@"
else
command less "$@"
fi
}
:
A) строки появлялись на главном экране по мере их поступления, затем переключитесь на другой экран, как только понадобится прокрутка (поэтому первые $LINES
вывода всегда будут отображаться в прокрутке); если это так, перейдите к 2-му из Gilles's ответов на похожий вопрос .
B) строк, которые будут отображаться на другом экране, но выйдите из другого экрана и распечатайте строки на главный экран, если прокрутка окажется ненужной (поэтому при прокрутке не будет выводиться ответ, если прокрутка была необходима); если это так, посмотрите на мой ответ на аналогичный вопрос .