2017-03-28 8 views
0

iTerm2には、IDEでファイルを開くための素晴らしい⌘-クリックがあります。iTerm2オープンファイル

問題は、私はVagrant経由でWebサーバーを実行しているため、/home/vagrantは実際にiTerm2がアクセスできる物理ディレクトリではありません。

は、私ができる方法のいずれかあります:私の.bash_profileの中へ/サイト/

A.)マップ/ホーム/浮浪者B.)を返す検索/置換スクリプトを使用して、それを実行します変更されたパス?

提案がありますか?ありがとう

+1

あなたのコンピュータには何も搭載されていないのですか?あなたはそれがウェブページや何かを起動したいですか? – meyer9

答えて

1

.bash_profile ...を使用して設定する方法はありませんが、iTerm2の環境設定の中には解決策があります。

プリファレンス - >プロファイル - >セマンティックヒストリー。 実行]コマンドに変更...とでいっぱい:

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

は〜/ click-handler.shを作成します。

old_filepath=$1 
old_basepath=$2 
new_basepath=$3 
new_filepath="${old_filepath/$old_basepath/$new_basepath}" 
open $new_filepath 

はのは、試してみましょう!

+0

ありがとう!私はテストして、あなたのスクリプトはターミナルでシェルをローカルで実行すると動作します: 'sh〜/ click-handler.sh /home/vagrant/fis.dev/craft/app/consolecommands/BaseCommand.php/home/vagrant/Sites' iTerm2内でクリックすると何も起こりません。 – simplethemes

+0

実行コマンドを入力してください:echo 'sh〜/ click-handler.sh \ 1/tmp/tmp/site'>/tmp/log - ここに/ tmp/logの結果を入れますか? –

1

ありがとうございます。あなたは間違いなく正しい方向に私を指摘しました。 "Run Command"の問題は、iTerm2(現在3.0.15)がファイルシステム内のディレクトリを認識しない場合、クリックに応答しないことです。私はそれを "Always Run Command"に変更し、あなたのコードを使ってこれを思いついた。私は本当にあなたの助けに感謝します。

#!/bin/bash 

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

original_filepath=$1 
vagrant_basepath=$2 
local_basepath=$3 
current_pwd=$4 

# 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 
関連する問題