iTerm2 打开文件

iTerm2 open file

iTerm2 有一个很好的 ⌘-click 打开文件 IDE。

问题是我 运行 是一个通过 Vagrant 的网络服务器,所以 /home/vagrant 实际上不是 iTerm2 可以访问的物理目录。

有什么办法可以:

A.) 将 /home/vagrant/ 映射到我的 .bash_profile

中的 /Sites

B.)运行它通过一个Find/Replace脚本那个returns修改路径?

有什么建议吗?谢谢

无法使用.bash_profile...配置它,但在您的 iTerm2 首选项中有一个解决方案。

首选项 -> 配置文件 -> 语义历史。更改为 运行 命令... 并填写:

sh ~/click-handler.sh  /home/vagrant /Sites

创建~/点击-handler.sh:

old_filepath=
old_basepath=
new_basepath=
new_filepath="${old_filepath/$old_basepath/$new_basepath}"
open $new_filepath

我们来试试吧!

谢谢 Udlei。你绝对给我指明了正确的方向。 "Run Command" 的问题在于,如果 iTerm2(目前为 3.0.15)无法识别文件系统中的目录,则它不会响应点击。我将其更改为 "Always Run Command" 并且能够使用您的代码来提出这个问题。非常感谢您的帮助。

#!/bin/bash

# iTerm2 > Profiles > Adv -> Semantic History > Always Run Command:
# sh ~/click-handler.sh  /home/vagrant /Sites 

original_filepath=
vagrant_basepath=
local_basepath=
current_pwd=

# remove quotes from var_dump if present
original_filepath_temp="${original_filepath%\"}"
original_filepath="${original_filepath_temp#\"}"

# look for /home/vagrant in the $original_filepath
if [[ $original_filepath =~ ^(\/home\/vagrant) ]];
    then
    new_filepath="${original_filepath/$vagrant_basepath/$local_basepath}"
    # echo $new_filepath > ~/Library/Logs/iterm.log
    /usr/local/bin/subl $new_filepath
# default local handling
    else
    original_filepath="$current_pwd/$original_filepath"
    # echo $original_filepath > ~/Library/Logs/iterm.log
    /usr/local/bin/subl $original_filepath
fi