Merge pull request #206 from sorin-ionescu/plugin-osx

Vastly improved Mac OS X plugin
This commit is contained in:
Robby Russell 2011-07-23 09:27:31 -07:00
commit 250bee9cda
2 changed files with 92 additions and 51 deletions

5
plugins/osx/_man-preview Normal file
View File

@ -0,0 +1,5 @@
#compdef man-preview
#autoload
_man

View File

@ -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() { function tab() {
savepath local command="cd \\\"$PWD\\\""
osascript >/dev/null <<EOF (( $# > 0 )) && command="${command}; $*"
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
end tell
end tell
end do_submenu
do_submenu("Terminal", "Shell", "New Tab", 1) 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 EOF
} }
function itab() { [[ "$the_app" == 'iTerm' ]] && {
savepath osascript 2>/dev/null <<EOF
osascript >/dev/null <<EOF tell application "iTerm"
on do_submenu(app_name, menu_name, menu_item) set current_terminal to current terminal
-- bring the target application to the front tell current_terminal
tell application app_name launch session "Default Session"
activate set current_session to current session
end tell tell current_session
tell application "System Events" write text "${command}"
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 end tell
end tell end tell
end tell end tell
end tell
end tell
end do_submenu
do_submenu("iTerm", "Shell", "New Tab")
EOF 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
}