mirror of
https://github.com/junegunn/fzf.git
synced 2025-11-17 15:53:39 -05:00
Move iTerm 2 v3 above iTerm 2 v2 because it's probably more common
@@ -1,83 +1,3 @@
|
||||
# For iTerm2 version 2.x
|
||||
|
||||
(Originally posted by @gleachkr)
|
||||
|
||||
To open fzf from MacVim in a new iTerm2 window, create an executable script with the following content and add `let g:fzf_launcher = "PATH_TO_THE_SCRIPT_FILE %s"` to your Vim configuration.
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
|
||||
osascript -e \
|
||||
'on run argv
|
||||
tell application "System Events"
|
||||
set old_frontmost to item 1 of (get name of processes whose frontmost is true)
|
||||
end tell
|
||||
tell application "iTerm"
|
||||
activate
|
||||
set myterm to (make new terminal)
|
||||
tell myterm
|
||||
set mysession to (make new session at the end of sessions)
|
||||
tell mysession
|
||||
exec command "bash"
|
||||
write text "cd " & quoted form of (item 2 of argv)
|
||||
write text (item 1 of argv) & " && exit"
|
||||
end tell
|
||||
repeat while (exists myterm)
|
||||
delay 0.1
|
||||
end repeat
|
||||
end tell
|
||||
end tell
|
||||
tell application old_frontmost
|
||||
activate
|
||||
end tell
|
||||
end run' "$1" "$PWD"
|
||||
```
|
||||
|
||||
to control the size of the generated iTerm window you just need to insert the lines
|
||||
|
||||
```applescript
|
||||
set number of columns of myterm to C
|
||||
set number of rows of myterm to R
|
||||
```
|
||||
for some numbers C,R after `set myterm to (make new terminal)`
|
||||
|
||||
**And for zsh**:
|
||||
|
||||
```sh
|
||||
#!/usr/local/bin/zsh
|
||||
|
||||
osascript -e \
|
||||
'on run argv
|
||||
tell application "System Events"
|
||||
set old_frontmost to item 1 of (get name of processes whose frontmost is true)
|
||||
end tell
|
||||
tell application "iTerm"
|
||||
activate
|
||||
set myterm to (make new terminal)
|
||||
# set number of columns of myterm to 250
|
||||
# set number of rows of myterm to 30
|
||||
tell myterm
|
||||
set mysession to (make new session at the end of sessions)
|
||||
tell mysession
|
||||
exec command "env PATH=/usr/local/bin/:$PATH /usr/local/bin/zsh -f"
|
||||
write text "cd " & quoted form of (item 2 of argv)
|
||||
write text (item 1 of argv) & " && exit"
|
||||
end tell
|
||||
repeat while (exists myterm)
|
||||
delay 0.1
|
||||
end repeat
|
||||
end tell
|
||||
end tell
|
||||
tell application old_frontmost
|
||||
activate
|
||||
end tell
|
||||
end run' $1 $PWD
|
||||
```
|
||||
|
||||
And put it in PATH (I've put it in `/usr/local/bin`)
|
||||
|
||||
Note: it doesn't work very well if you've got an instance of iTerm2 running in full screen
|
||||
|
||||
# For iTerm2 version 3.0 and higher
|
||||
|
||||
(Added by @amacdougall)
|
||||
@@ -167,4 +87,85 @@ and then put inside fzf_MacVim.sh (your g:fzf_launcher).
|
||||
osascript -l JavaScript /path/to/fzf_MacVim.scpt "$1" $PWD
|
||||
```
|
||||
|
||||
I recommend creating separate iTerm profile for fzf interaction.
|
||||
I recommend creating separate iTerm profile for fzf interaction.
|
||||
|
||||
# For iTerm2 version 2.x
|
||||
|
||||
(Originally posted by @gleachkr)
|
||||
|
||||
To open fzf from MacVim in a new iTerm2 window, create an executable script with the following content and add `let g:fzf_launcher = "PATH_TO_THE_SCRIPT_FILE %s"` to your Vim configuration.
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
|
||||
osascript -e \
|
||||
'on run argv
|
||||
tell application "System Events"
|
||||
set old_frontmost to item 1 of (get name of processes whose frontmost is true)
|
||||
end tell
|
||||
tell application "iTerm"
|
||||
activate
|
||||
set myterm to (make new terminal)
|
||||
tell myterm
|
||||
set mysession to (make new session at the end of sessions)
|
||||
tell mysession
|
||||
exec command "bash"
|
||||
write text "cd " & quoted form of (item 2 of argv)
|
||||
write text (item 1 of argv) & " && exit"
|
||||
end tell
|
||||
repeat while (exists myterm)
|
||||
delay 0.1
|
||||
end repeat
|
||||
end tell
|
||||
end tell
|
||||
tell application old_frontmost
|
||||
activate
|
||||
end tell
|
||||
end run' "$1" "$PWD"
|
||||
```
|
||||
|
||||
to control the size of the generated iTerm window you just need to insert the lines
|
||||
|
||||
```applescript
|
||||
set number of columns of myterm to C
|
||||
set number of rows of myterm to R
|
||||
```
|
||||
for some numbers C,R after `set myterm to (make new terminal)`
|
||||
|
||||
**And for zsh**:
|
||||
|
||||
```sh
|
||||
#!/usr/local/bin/zsh
|
||||
|
||||
osascript -e \
|
||||
'on run argv
|
||||
tell application "System Events"
|
||||
set old_frontmost to item 1 of (get name of processes whose frontmost is true)
|
||||
end tell
|
||||
tell application "iTerm"
|
||||
activate
|
||||
set myterm to (make new terminal)
|
||||
# set number of columns of myterm to 250
|
||||
# set number of rows of myterm to 30
|
||||
tell myterm
|
||||
set mysession to (make new session at the end of sessions)
|
||||
tell mysession
|
||||
exec command "env PATH=/usr/local/bin/:$PATH /usr/local/bin/zsh -f"
|
||||
write text "cd " & quoted form of (item 2 of argv)
|
||||
write text (item 1 of argv) & " && exit"
|
||||
end tell
|
||||
repeat while (exists myterm)
|
||||
delay 0.1
|
||||
end repeat
|
||||
end tell
|
||||
end tell
|
||||
tell application old_frontmost
|
||||
activate
|
||||
end tell
|
||||
end run' $1 $PWD
|
||||
```
|
||||
|
||||
And put it in PATH (I've put it in `/usr/local/bin`)
|
||||
|
||||
Note: it doesn't work very well if you've got an instance of iTerm2 running in full screen
|
||||
|
||||
|
||||
Reference in New Issue
Block a user