Browse Source

Added vsplit_tab and split_tab for iTerm. Create new session within a vertical/horizontal split of the tab respectively.

Ryan Schmukler 13 years ago
parent
commit
4a813cf1a2
1 changed files with 60 additions and 3 deletions
  1. 60 3
      plugins/osx/osx.plugin.zsh

+ 60 - 3
plugins/osx/osx.plugin.zsh

@@ -2,10 +2,9 @@
 #          FILE:  osx.plugin.zsh
 #   DESCRIPTION:  oh-my-zsh plugin file.
 #        AUTHOR:  Sorin Ionescu (sorin.ionescu@gmail.com)
-#       VERSION:  1.0.1
+#       VERSION:  1.1.0
 # ------------------------------------------------------------------------------
 
-
 function tab() {
   local command="cd \\\"$PWD\\\""
   (( $# > 0 )) && command="${command}; $*"
@@ -35,9 +34,67 @@ EOF
           launch session "Default Session"
           set current_session to current session
           tell current_session
-            write text "${command}"
+            write text "${command}; clear;"
+          end tell
+        end tell
+      end tell
+EOF
+  }
+}
+
+function vsplit_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" == 'iTerm' ]] && {
+    osascript 2>/dev/null <<EOF
+      tell application "iTerm" to activate
+
+      tell application "System Events"
+        tell process "iTerm"
+          tell menu item "Split Vertically With Current Profile" of menu "Shell" of menu bar item "Shell" of menu bar 1
+            click
+          end tell
+        end tell
+        keystroke "${command}; clear;"
+        keystroke return
+      end tell
+EOF
+  }
+}
+
+function split_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" == 'iTerm' ]] && {
+    osascript 2>/dev/null <<EOF
+      tell application "iTerm" to activate
+
+      tell application "System Events"
+        tell process "iTerm"
+          tell menu item "Split Horizontally With Current Profile" of menu "Shell" of menu bar item "Shell" of menu bar 1
+            click
           end tell
         end tell
+        keystroke "${command}; clear;"
+        keystroke return
       end tell
 EOF
   }