"Работа с многокнопочными мышами в Xorg" (Леонид Пономарев) Option "Protocol" "ExplorerPS/2" Option "Buttons" "9" Option "ButtonMapping" "1 2 3 8 9" Option "ZAxisMapping" "4 5 6 7" Option "ButtonMapping" "1 2 3 6 7" Option "ZAxisMapping" "4 5" "xvkbd -xsendevent -text "\[Control_L]\[KP_Divide]"" b:8 "xvkbd -xsendevent -text "\[Control_L]\[KP_Multiply]"" b:9 ------------------------------------------------------------ "Клавиатурные привязки в zsh в стиле Vim" (Леонид Пономарев) #vi insert mode like keybindings #defining something more usable than the defaults vi bindings #creating two keymaps bindkey -N myviins viins bindkey -N myvicmd vicmd #defining widgets, to switch between them function my_viins_to_vicmd(){print -n "\033]0;zsh\a";bindkey -A myvicmd main} function my_vicmd_to_viinsi(){print -n "\033]0;zsh INSERT\a";bindkey -A myviins main} function my_vicmd_to_viinsa(){print -n "\033]0;zsh INSERT\a";zle vi-forward-char;bindkey -A myviins main} zle -N my_viins_to_vicmd zle -N my_vicmd_to_viinsi zle -N my_vicmd_to_viinsa bindkey -M myviins '^[' my_viins_to_vicmd bindkey -M myvicmd 'i' my_vicmd_to_viinsi bindkey -M myvicmd 'a' my_vicmd_to_viinsa function list_mappings(){bindkey}; zle -N list_mappings bindkey -M myvicmd ':map' list_mappings #setting my vi-like insert mode by default bindkey -A myviins main #making work some special keys bindkey "\e[2~" yank bindkey "\e[3~" delete-char bindkey "\e[5~" up-line-or-history bindkey "\e[6~" down-line-or-history ## up arrow for back-history-search bindkey "\e[A" up-line-or-search ## down arrow for fwd-history-search bindkey "\e[B" down-line-or-search #making work Home and End keys in both modes case $TERM in linux) bindkey -M myviins "\e[1~" beginning-of-line bindkey -M myviins "\e[4~" end-of-line bindkey -M myvicmd "^[[1~" beginning-of-line bindkey -M myvicmd "^[[4~" end-of-line ;; *xterm*|rxvt|(dt|k|E)term) bindkey -M myviins "\e[H" beginning-of-line bindkey -M myviins "\e[F" end-of-line bindkey -M myvicmd "\e[H" beginning-of-line bindkey -M myvicmd "\e[F" end-of-line ;; esac kill -HUP foobar kill -9 foobar #simple widget, wich deletes N-th parameter (word) in line killparam() { zle beginning-of-line zle vi-forward-word -n ${NUMERIC:-1} zle delete-word -n 1 zle vi-delete-char -n 1 zle my_vicmd_to_viinsi } zle -N killparam bindkey -M myvicmd 'k' killparam ------------------------------------------------------------