diff --git a/.config/zsh/.zshrc b/.config/zsh/.zshrc index 4599038c..3a86b74a 100644 --- a/.config/zsh/.zshrc +++ b/.config/zsh/.zshrc @@ -22,6 +22,9 @@ compinit _comp_options+=(globdots) # Include hidden files. # vi mode +autoload -Uz edit-command-line +zle -N edit-command-line +bindkey -M vicmd v edit-command-line bindkey -v export KEYTIMEOUT=1 @@ -33,7 +36,9 @@ bindkey -M menuselect 'j' vi-down-line-or-history bindkey -v '^?' backward-delete-char bindkey '^[[P' delete-char bindkey "^[[H" beginning-of-line -bindkey "^[[4~" end-of-line +bindkey '^[[F' end-of-line +bindkey '^[[1;5C' forward-word +bindkey '^[[1;5D' backward-word # Change cursor shape for different vi modes. function zle-keymap-select () { @@ -69,16 +74,17 @@ lfcd () { if [ -f "$tmp" ]; then dir="$(cat "$tmp")" command rm -f "$tmp" - [ -d "$dir" ] && [ "$dir" != "$(pwd)" ] && cd "$dir" && zle -I + [ -d "$dir" ] && [ "$dir" != "$(pwd)" ] && cd "$dir" fi + tput cuu1;tput el } -zle -N lfcd{,} -bindkey '^o' lfcd - -bindkey -s '^a' 'bc -lq\n' - -bindkey -s '^f' 'cd "$(dirname "$(fzf)")"\n' +_lfcd () { + BUFFER="lfcd" + zle accept-line +} +zle -N _lfcd +bindkey '^o' _lfcd # Edit line in vim with ctrl-e: autoload edit-command-line; zle -N edit-command-line