# ------------------------------------------------------------------------------ # FILE: osx.plugin.zsh # DESCRIPTION: oh-my-zsh plugin file. # AUTHOR: Sorin Ionescu (sorin.ionescu@gmail.com) # VERSION: 1.0.1 # ------------------------------------------------------------------------------ function tab() { local command="cd \\\"$PWD\\\"" (( $# > 0 )) && command="${command}; $*" the_app=$( osascript 2>/dev/null <<EOF tell application "System Events" name of first item of (every process whose frontmost is true) end tell EOF ) [[ "$the_app" == 'Terminal' ]] && { osascript 2>/dev/null <<EOF tell application "System Events" tell process "Terminal" to keystroke "t" using command down tell application "Terminal" to do script "${command}" in front window end tell EOF } [[ "$the_app" == 'iTerm' ]] && { osascript 2>/dev/null <<EOF tell application "iTerm" set current_terminal to current terminal tell current_terminal launch session "Default Session" set current_session to current session tell current_session write text "${command}" end tell end tell end tell EOF } } function pfd() { osascript 2>/dev/null <<EOF tell application "Finder" return POSIX path of (target of window 1 as alias) end tell EOF } function pfs() { osascript 2>/dev/null <<EOF set output to "" tell application "Finder" to set the_selection to selection set item_count to count the_selection repeat with item_index from 1 to count the_selection if item_index is less than item_count then set the_delimiter to "\n" if item_index is item_count then set the_delimiter to "" set output to output & ((item item_index of the_selection as alias)'s POSIX path) & the_delimiter end repeat EOF } function cdf() { cd "$(pfd)" } function pushdf() { pushd "$(pfd)" } function quick-look() { (( $# > 0 )) && qlmanage -p $* &>/dev/null & } function man-preview() { man -t "$@" | open -f -a Preview } function trash() { local trash_dir="${HOME}/.Trash" local temp_ifs=$IFS IFS=$'\n' for item in "$@"; do if [[ -e "$item" ]]; then item_name="$(basename $item)" if [[ -e "${trash_dir}/${item_name}" ]]; then mv -f "$item" "${trash_dir}/${item_name} $(date "+%H-%M-%S")" else mv -f "$item" "${trash_dir}/" fi fi done IFS=$temp_ifs }