2016-08-01 16 views
4

Im mit Iterm2 Version 3.0.4 Build- I Alias ​​erstellen möchten neue Registerkarte über die Befehlszeile zu öffnen (in bash) habe ich versucht, diesen Code:neuen Tab in iTerm2

function tab() { 
    osascript &>/dev/null <<EOF 
activate application "iTerm" 
    tell application "System Events" to keystroke "t" using command down 
    tell application "iTerm" to tell session -1 of current terminal to write text "pwd" 
EOF 
} 

aber es isn‘ t arbeiten. Kann jemand das Problem mit dieser Version (oder neueren Version) lösen?

Antwort

3

iTerm2 v3 verfügt über stark verbesserte Unterstützung von Applescript, so können Sie nun Tabs direkt erstellen, ohne Tastatureingaben senden:

tab() { 
    osascript &>/dev/null <<EOF 
     tell application "iTerm" 
     activate 
     tell current window to set tb to create tab with default profile 
     tell current session of current window to write text "pwd" 
     end tell 
EOF 
} 

die neuen Registerkarte horizontal So teilen (wie Sie durch Drücken bekommen würden ⇧⌘ D) hinzufügen:

:

tell current session of current window to split horizontally with same profile 

um pwd auf die neue Sitzung durch das Split (die untere Hälfte des neuen Tab) erstellt zu schreiben

tab() { 
    osascript &>/dev/null <<EOF 
     tell application "iTerm" 
     activate 
     tell current window to set tb to create tab with default profile 
     tell current session of current window to set newSplit to split horizontally with same profile 
     tell newSplit 
      select 
      write text "pwd" 
     end tell  
     end tell 
EOF 
} 

Um iTerm2 der verfügbaren Applescript-Befehle, offen Script Editor.app, wählen File > Open Dictionary... und dann iTerm.app zu sehen.

Auch meine ttab CLI betrachten, die sowohl für Terminal.app und iTerm2.app zusammen mit erweiterten Funktionen Tab/Fenster Schaffung Pakete (aber es bietet keine Unterstützung für eine Registerkarte Splitting).