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
iTerm2 有一个很好的 ⌘-click 打开文件 IDE。
问题是我 运行 是一个通过 Vagrant 的网络服务器,所以 /home/vagrant
实际上不是 iTerm2 可以访问的物理目录。
有什么办法可以:
A.) 将 /home/vagrant/ 映射到我的 .bash_profile
中的 /SitesB.)运行它通过一个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