]> git.donarmstrong.com Git - zsh.git/blobdiff - .zsh/zshrc/80_zle
add ~/.local/bin to PATH
[zsh.git] / .zsh / zshrc / 80_zle
index da99e0ca578783171c78b669e0b5c122e06d8cf2..d86a2ced3d0358623e909c0d6a0d23bd71b9a927 100644 (file)
@@ -1,3 +1,4 @@
+# -*- mode: sh -*-
 # zshrc/80_zle
 #
 # Configure the zsh line editor
@@ -14,4 +15,42 @@ autoload -U url-quote-magic
 zle -N self-insert url-quote-magic
 setopt no_nomatch
 
+# http://www.zsh.org/mla/users/2006/msg00399.html
+autoload      edit-command-line
+zle -N        edit-command-line
+bindkey '\ee' edit-command-line
+
+_insert_datestamp() { LBUFFER+=${(%):-'%D{%Y.%m.%d}'}:; }
+zle -N insert-datestamp _insert_datestamp
+bindkey '\et' insert-datestamp
+
+# prefix search (up to cursor position)
+autoload history-search-end
+zle -N history-beginning-search-backward-end history-search-end
+zle -N history-beginning-search-forward-end  history-search-end
+bindkey "\e[5~" history-beginning-search-backward-end # PageUp
+bindkey "\e[6~" history-beginning-search-forward-end  # PageDown
+
+_insert_last_typed_word() { zle insert-last-word -- 0 -1 };
+zle -N _insert_last_typed_word;
+bindkey "\em" _insert_last_typed_word
+
+autoload insert-unicode-char
+zle -N insert-unicode-char
+bindkey '^Xi' insert-unicode-char
+
+# jump behind the first word on the cmdline to add options
+function _jump_after_first_word() {
+    local words
+    words=(${(z)BUFFER})
+
+    if (( ${#words} <= 1 )) ; then
+        CURSOR=${#BUFFER}
+    else
+        CURSOR=${#${words[1]}}
+    fi
+}
+zle -N _jump_after_first_word
+bindkey '^x1' _jump_after_first_word
+
 # vim:ft=zsh