Федорчук Алексей Викторович
Шрифт:
alias ls='ls -F'
alias ll='ls -lh'
alias la='ls -A'
alias li='ls -ial'
alias lsd='ls -ld *(-/DN)'
alias lsa='ls -ld .*'
На самом деле их можно придумывать ещё и ещё — этот тот необходимый минимум, который я в состоянии запомнить без вреда для рассудка. Расшифровывать псевдонимы не буду — кому надо, и так могут сорвать с них маски, а кто не знает — так ему это и не нужно.
Далее идёт серия псевдонимов для различных команд и утилит разного назначения. Здесь также расшифровка будет лишней. Ибо они или оболее-менее общеприняты:
alias h=history
alias df='df -h'
alias du='du -h'
Либо обусловлены давними привычками (как, например, more-образный вывод команды less):
alias less='less -M'
alias wget='wget -c'
alias nano='nano -$'
Либо связаны со спецификой деятельности:
alias wcl='wc -l'
alias wcw='wc -w'
alias wcm='wc -m'
alias wcc='wc -c'
Так что можно переходить к следующей убойной фиче Zsh — определению глобальных псевдонимов:
alias -g N='2>/dev/null'
alias -g L='|less'
alias -g G='|grep'
alias -g W='|wc -m'
Где, впрочем, комментарии тоже излишни.
А посему перехожу к тем самым дистрибутив-специфическим блокам, которые я предназначил для применения в Mint. Это — псевдонимы для субкоманд её утилиты apt, призванные минимизировать ввод при наиболее частых действиях по пакетному менеджменту:
alias aptin='apt install --yes'
alias apter='apt purge'
alias aptup='apt update'
alias aptug='apt upgrade'
alias aptse='apt search'
alias aptsh='apt show'
Псевдонимы для внутренних команд apt из APT также имеет смысл определить, по крайней мере один, для получения списка инсталлированных пакетов:
alias aptlist='/usr/bin/apt list --installed'
Смысл этих псевдонимов будет ясен после знакомства с очерком об утилите apt. И в них нет ничего Zsh-специфичного. В отличие от альтернативного метода, основанного на псевдонимах глобальных, которые определяются для соответствующих аргументов команды sudo. Правда, особенность реализации утилиты apt в Mint такова, что она не требует ввода этой команды в явном виде. И потому здесь у меня осталась единственная строка для псевдонима команды добавления репозиториев:
alias -g Ar='add-apt-repository'
Хотя я и утверждал не так давно, что приглашение оболочки — нечто вроде вешалки для театра, сам добрался до этой темы только к концу своего конфига. Однако вот — обычное левосторонне приглашение:
#PROMPT='%B[%n]$=>%b '
Вторичное приглашение:
#PROMPT2='%i%U> '
Правостороннее приглашение:
#RPROMPT=' %B[%~]%b '
А вот это — альтернативы, которыми я баловался во время сочинения раздела про приглашения. Все они начинаются с такой пары строк:
autoload -Uz promptinit
promptinit
После которых вызывается уже одна из конкретных тем:
#prompt fade
prompt fade white grey blue
#prompt clint
Естественно, что остальные строки должны быть закомментированы.
Осталось немного — всякая всячина. Например, предотвращение выхода из оболочки после случайного нажатия Control+D в пустой командной строке:
setopt IGNORE_EOF
Отключение раздражающего звукового сигнала при ошибках набора:
setopt NO_BEEP
Фиксация emacs-образного поведения клавиш (хотя это и так имеет место быть по умолчанию):
bindkey -e
И под занавес — определение пары переменных среды, для начала умолчального пейджера. Хотя я не так давно говорил, что расширенное перенаправление делает его практически не нужным, но, кроме всего прочего, это ещё и средство для просмотра man-страниц:
export PAGER="less"
И умолчальный редактор: не смотря на свою любовь к Joe, навыки работы с ним я утратил напрочь, поэтому так:
export EDITOR="nano"
Вот вроде и всё. Остаётся последний дистрибутив-специфичный стришок — исправление нехорошего поведения history-substring-search в Mint, унаследованного от Ubuntu. А точнее, поведения никакого — эта фича без дополнительных мер просто не работает. Благо меры эти очень просты — создание файла ~/.zshenv с единственной строкой:
DEBIAN_PREVENT_KEYBOARD_CHANGES=yes
Вот теперь действительно всё — с конфигурированием Zsh «мануальным» способом покончено.