]> gitweb @ CieloNegro.org - sugar.git/blobdiff - dot-files/_zshrc
Auto commit by The Sugar System.
[sugar.git] / dot-files / _zshrc
index 13e764d270eeb822aefe67496329a4345ce2dc0f..45ac9aff1c98f72aa3f9c0b4a89faf46d19bcc18 100644 (file)
@@ -60,6 +60,10 @@ function _we_are_in_ssh_session () {
     [[ -n "$SSH_CONNECTION" ]]
 }
 
+function _we_are_in_emacs () {
+    [[ -n "$INSIDE_EMACS" ]]
+}
+
 _prompt_base='%B[%n@%m] %{%(?.$fg[green].$fg[red])%}%#%{$reset_color%}%b '
 if ( _we_are_in_gnu_screen ); then
     # GNU Screen has a capability to set its window title by "ESC k
@@ -186,6 +190,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"
@@ -264,24 +284,25 @@ autoload -U compinit
 compinit
 # End of lines added by compinstall
 
-if ( _we_are_in_gnu_screen ); then
+if _we_are_in_gnu_screen; then
     # When we are in a GNU Screen session...
 
-    if ( _we_are_in_ssh_session ); then
+    if _we_are_in_ssh_session; then
         # Propagate remote session's bells to the local one.
         screen -X vbell off
     fi
 else
-    if [ -e ".motd" ]; then
-        cat ".motd"
+    if _we_are_in_emacs; then
+        # Without this, Emacs' term mode has trouble with backspaces.
+        export TERM=vt100
     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