これは私にとってはうまくいき、選択の最後に正しく移動します。前の回答で osascript 部分を追加し、Hans-Jörg Bibiko によって書かれた元の R バンドルにあったコードに入れました。「スコープ セレクター」を「source.r」に、「出力」を「破棄」に設定します。「入力」を「行」に設定すると、必要なことを実行します。何も選択されていない場合は行を送信し、そうでない場合は選択を送信します。
編集:選択範囲では完全に機能しますが、行では機能しません。テキストを選択しないと、ファイルの先頭からすべてが再実行されます
edit2: 解決しました。Hans-Jörg Bibiko に手紙を書きました。彼は「入力」の選択を教えてくれました。
#!/usr/bin/env bash
# input is selection or document
rawText="$(cat | sed 's/ / /g;')"
curDir=''
if [[ ${#TM_DIRECTORY} -gt 0 ]]; then
curDir="$TM_DIRECTORY"
fi
osascript -e 'on run(theCode)' \
-e ' tell application "Terminal"' \
-e ' do script theCode in window 1' \
-e ' end tell' \
-e 'end run' -- "$rawText"
if [ "$TM_LINE_NUMBER" != "" ]; then
"$TM_MATE" -l "$(($TM_LINE_NUMBER+1)):1000000"
elif [[ $TM_SELECTION =~ [1-9][0-9]*:?[0-9]*-([1-9][0-9]*):?[0-9]* ]]; then
# Regular Selection
"$TM_MATE" -l "$((${BASH_REMATCH[1]}+1)):1000000"
elif [[ $TM_SELECTION =~ [1-9][0-9]*:?[0-9]*x([1-9][0-9]*):?[0-9]* ]]; then
# Block (option) selection
"$TM_MATE" -l "$((${BASH_REMATCH[1]}+1)):1000000"
else
"$TM_MATE"
fi