]> gitweb @ CieloNegro.org - sugar.git/blobdiff - dot-files/_zshrc
Auto commit by The Sugar System.
[sugar.git] / dot-files / _zshrc
index 603cdd2d925539ea4c0fe16dc3fb28914e5e419c..d800cc42c2d8694bd4d9918ac35178f1d7aa2961 100644 (file)
@@ -127,6 +127,10 @@ function print_directory_info() {
     fi
 }
 
+function nfgrep() {
+    fgrep --with-filename --line-number --context=1 --colour=always "$@" | $PAGER
+}
+
 function ppgrep() {
     local -a percol_opts
 
@@ -159,14 +163,18 @@ function percol_select_history() {
         tac_cmd=("cat")
     fi
 
-    BUFFER=$("${tac_cmd[@]}" "$HISTFILE" | \
+    local selected
+    selected=$("${tac_cmd[@]}" "$HISTFILE" | \
         sed 's/^: [0-9]*:[0-9]*;//' | \
+        awk 'seen[$0] {next} {seen[$0]++; print}' | \
         percol --match-method regex --query "$LBUFFER")
-    CURSOR=$#BUFFER # move cursor to the end of line
-    zle redisplay
-
-    if [[ -n $BUFFER ]]; then
-        zle accept-line
+    if [[ $? -eq 0 ]]; then
+        BUFFER="$selected"
+        CURSOR="$#BUFFER" # move cursor to the end of line
+        zle redisplay
+        #zle accept-line  # uncomment this to execute the selected one immediately.
+    else
+        zle redisplay
     fi
 }
 if which percol >&/dev/null; then
@@ -178,6 +186,22 @@ HISTFILE="$HOME/.zhistory"
 HISTSIZE=6000000
 SAVEHIST=6000000
 
+function lv() {
+    local -a lv_cmd
+
+    if whence -p lv >/dev/null; then
+        lv_cmd=("lv")
+    elif which less >&/dev/null; then
+        lv_cmd=("less")
+    elif which more >&/dev/null; then
+        lv_cmd=("more")
+    else
+        echo >&2 "$0: no pager commands are found"
+    fi
+
+    command "${lv_cmd[@]}" "$@"
+}
+
 alias -g L="| $PAGER"
 alias -g G="| grep"
 alias -g H="| head"
@@ -190,15 +214,15 @@ alias p='pushd'
 alias o='popd'
 alias d='dirs'
 alias df='df -h'
-alias ed='ed -p "ed> "'
 alias du='du -k'
-alias nc='nc -vv'
+alias ed='ed -p "ed> "'
+alias man="LANG=C man"
 alias mwget="wget --user-agent='Mozilla/1.4b'"
+alias nc='nc -vv'
+alias pkgsrc="pushd /usr/pkgsrc"
 alias pstow="pushd /usr/local/stow"
 alias w3m="w3m -O UTF-8"
 alias w3mb="w3m -O UTF-8 -B"
-alias pkgsrc="pushd /usr/pkgsrc"
-alias man="LANG=C man"
 
 alias aria-emacs="ssh -f -X admin@aria.cielonegro.org emacsclient -c"
 alias pho-dev-boinc="ssh -f -X pho@pho.dev.office.ymir.co.jp env LANG=C /home/pho/var/BOINC/run_manager"
@@ -269,11 +293,11 @@ else
     fi
 
     # Run "fortune" if we aren't in a GNU Screen session.
-    if which fortune 2>&1 >/dev/null; then
+    if which fortune >/dev/null 2>&1; then
         fortune
     fi
 fi
 
-if which ssh-agent-manager 2>&1 >/dev/null; then
+if which ssh-agent-manager >/dev/null 2>&1; then
     eval `ssh-agent-manager -s`
 fi