浏览代码

Change history alias into a function

This commit changes the history alias into a function which puts
the passed arguments before `-l 1`. It also provides a temporary
workaround to the lack of a `history -c` command in zsh.

For more information see issues 739 and 789.
Marc Cornellà 10 年之前
父节点
当前提交
d87d4331cf
共有 1 个文件被更改,包括 17 次插入5 次删除
  1. 17 5
      lib/history.zsh

+ 17 - 5
lib/history.zsh

@@ -6,12 +6,24 @@ fi
 HISTSIZE=10000
 SAVEHIST=10000
 
-# Show history
+## History wrapper
+function omz_history {
+  # Delete the history file if `-c' argument provided.
+  # This won't affect the `history' command output until the next login.
+  if [[ "${@[(i)-c]}" -le $# ]]; then
+    echo -n >| "$HISTFILE"
+    echo >&2 History file deleted. Reload the session to see its effects.
+  else
+    fc $@ -l 1
+  fi
+}
+
+# Timestamp format
 case $HIST_STAMPS in
-  "mm/dd/yyyy") alias history='fc -fl 1' ;;
-  "dd.mm.yyyy") alias history='fc -El 1' ;;
-  "yyyy-mm-dd") alias history='fc -il 1' ;;
-  *) alias history='fc -l 1' ;;
+  "mm/dd/yyyy") alias history='omz_history -f' ;;
+  "dd.mm.yyyy") alias history='omz_history -E' ;;
+  "yyyy-mm-dd") alias history='omz_history -i' ;;
+  *) alias history='omz_history' ;;
 esac
 
 setopt append_history