diff options
Diffstat (limited to 'plugins/osx')
| -rw-r--r-- | plugins/osx/_man-preview | 5 | ||||
| -rw-r--r-- | plugins/osx/osx.plugin.zsh | 134 | 
2 files changed, 90 insertions, 49 deletions
| diff --git a/plugins/osx/_man-preview b/plugins/osx/_man-preview new file mode 100644 index 000000000..6cc344ad4 --- /dev/null +++ b/plugins/osx/_man-preview @@ -0,0 +1,5 @@ +#compdef man-preview +#autoload + +_man + diff --git a/plugins/osx/osx.plugin.zsh b/plugins/osx/osx.plugin.zsh index a65ca642a..682bb2667 100644 --- a/plugins/osx/osx.plugin.zsh +++ b/plugins/osx/osx.plugin.zsh @@ -1,63 +1,99 @@ -alias showfiles='defaults write com.apple.finder AppleShowAllFiles TRUE; killall Finder' -alias hidefiles='defaults write com.apple.finder AppleShowAllFiles FALSE; killall Finder' +# ------------------------------------------------------------------------------ +#          FILE:  osx.plugin.zsh +#   DESCRIPTION:  oh-my-zsh plugin file. +#        AUTHOR:  Sorin Ionescu (sorin.ionescu@gmail.com) +#       VERSION:  1.0.1 +# ------------------------------------------------------------------------------ -# Recursively delete .DS_Store files -alias rm-dsstore="find . -name '*.DS_Store' -type f -delete" - -function savepath() { -  pwd > ~/.current_path~ -}  function tab() { -savepath -osascript >/dev/null <<EOF -on do_submenu(app_name, menu_name, menu_item, submenu_item) -    -- bring the target application to the front -    tell application app_name -      activate -    end tell -    tell application "System Events" -      tell process app_name -        tell menu bar 1 -          tell menu bar item menu_name -            tell menu menu_name -              tell menu item menu_item -                tell menu menu_item -                  click menu item submenu_item -                end tell -              end tell -            end tell -          end tell -        end tell +  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 -    end tell -end do_submenu +EOF +  ) -do_submenu("Terminal", "Shell", "New Tab", 1) +  [[ "$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 -} +  } -function itab() { -savepath -osascript >/dev/null <<EOF -on do_submenu(app_name, menu_name, menu_item) -    -- bring the target application to the front -    tell application app_name -      activate -    end tell -    tell application "System Events" -      tell process app_name -        tell menu bar 1 -          tell menu bar item menu_name -            tell menu menu_name -              click menu item menu_item -            end tell +  [[ "$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 -end do_submenu +EOF +} -do_submenu("iTerm", "Shell", "New Tab") +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 +} + | 
