Открытие новой терминальной вкладки в OSX (Snow Leopard) с вводным путем к каталогу окон терминала

На спецификации Ваш специализированный шаблон функции никогда нельзя называть внешним fileA.C, если Вы export шаблонное определение, которое в настоящее время не поддерживает никакой компилятор (кроме Comeau) (или запланировали его обозримое будущее).

, С другой стороны, как только шаблон функции инстанцируют, существует функция, видимая к компилятору, который больше не является шаблоном. GCC может снова использовать это определение через различные единицы компилятора, потому что в стандарте говорится, что каждый шаблон нужно только инстанцировать однажды для данного набора аргументов типа [temp.spec]. Однако, так как шаблон не экспортируется, это должно быть ограничено единицей компиляции.

я полагаю, что GCC может представить ошибку здесь в совместном использовании ее списка инстанцированных шаблонов через единицы компиляции. Обычно, это - разумная оптимизация, но она должна взять функциональные специализации во внимание, которые это, кажется, не делает правильно.

20
задан Bill the Lizard 3 November 2009 в 15:31
поделиться

3 ответа

Хорошо, так как я по-своему, я снова отвечаю на свой вопрос (ну, по крайней мере, я все равно близок к тому, чтобы ответить на него)

Я нашел менее подробный сценарий по сравнению с приведенным выше ( любезно предоставлено Дэном Бенджамином ), который, похоже, помогает, хотя оба сценария перед успешным завершением выдают аналогичную ошибку. Я справился с этим, добавив clear в конец скрипта, так что это не большая проблема.

Я говорю, что почти решил свою проблему, потому что моей целью было найти способ решить эту проблему. с помощью ключевой команды Apple-t, которая была врезана в мою мышечную память как ярлык для новой вкладки во всем, благодаря бесчисленным часам работы в различных веб-браузерах. Лучшее, что я могу сделать с таким сценарием, как Dan's, - это t-return, что не самая большая разница, но достаточно большой, чтобы меня слегка раздражало каждый раз, когда я подаю указанную команду. Я знаю, я должен отпустить это ..... Но я не могу, наверное, именно поэтому я вообще попал в эту неразбериху, бесконечно возясь с компьютерами. Я отвлекся, вот сценарий, который я использую:

#!/bin/sh

# Make a new OS X Terminal tab with the current working directory.

if [ $# -ne 1 ]; then
    PATHDIR=`pwd`
else
    PATHDIR=$1
fi

/usr/bin/osascript <<EOF
activate application "Terminal"
tell application "System Events"
    keystroke "t" using {command down}
end tell
tell application "Terminal"
    repeat with win in windows
        try
            if get frontmost of win is true then
                do script "cd $PATHDIR; clear" in (selected tab of win)
            end if
        end try
    end repeat
end tell
EOF
clear

Для полноты, вот ошибка, которая выплевывает в окно запроса, если завершающий клик опущен:

2009-10-20 01:30:38.714 osascript[20862:903] Error loading /Library/ScriptingAdditions/Adobe Unit Types.osax/Contents/MacOS/Adobe Unit Types:  dlopen(/Library/ScriptingAdditions/Adobe Unit Types.osax/Contents/MacOS/Adobe Unit Types, 262): no suitable image found.  Did find:
    /Library/ScriptingAdditions/Adobe Unit Types.osax/Contents/MacOS/Adobe Unit Types: no matching architecture in universal wrapper
osascript: OpenScripting.framework - scripting addition "/Library/ScriptingAdditions/Adobe Unit Types.osax" declares no loadable handlers.
tab 2 of window id 13942
4
ответ дан 29 November 2019 в 22:39
поделиться

Вы можете получить то, что хотите, изменив сценарий BASH по адресу http://www.entropy.ch/blog/Mac+OS+X/2008/06/27/Terminal-Tricks- «term» -revisited-with-tabs . Вот сценарий, взятый с сайта Марка Линьяджа www.entropy.ch/blog .

#!/bin/sh
#
# Open a new Mac OS X terminal window or tab in the current or another
# directory and optionally run a command in the new window or tab.
#
# - Without any arguments, the new terminal window opens in
#   the current directory, i.e. the executed command is "cd $PWD".
# - If the first argument is a directory, the new terminal will "cd" into
#   that directory before executing the remaining arguments as command.
# - The optional "-t" flag executes the command in a new tab 
#   instead of a new window.
# - The optional "-x" flag closes the new window or tab
#   after the executed command finishes.
# - The optional "-p" flag takes an argument of the form x,y (e.g. 40,50) and
#   positions the terminal window to the indicated location on the screen
# - The optional "-s" flag takes an argument of the form w,h (e.g. 800,400) and
#   resizes the terminal window to the indicated width and height in pixels.
#
# Written by Marc Liyanage <http://www.entropy.ch>
#
# Version 2.1
#

set -e

while getopts xtp:s: OPTION; do
    [ $OPTION = "x" ] && { EXIT='; exit'; }
    [ $OPTION = "t" ] && { TAB=1; }
    [ $OPTION = "p" ] && { POSITION="set position of window 1 to {$OPTARG}"; }
    [ $OPTION = "s" ] && { SIZE="set size of window 1 to {$OPTARG}"; }
done

for (( $OPTIND; $OPTIND-1; OPTIND=$OPTIND-1 )); do shift; done

if [[ -d "$1" ]]; then WD=$(cd "$1"; pwd); shift; else WD=$PWD; fi


COMMAND="cd '$WD' && echo -n \$'\\\\ec';"
for i in "$@"; do
COMMAND="$COMMAND '$i'"
done

if [ $TAB ]; then

osascript 2>/dev/null <<EOF
tell application "System Events"
    tell process "Terminal" to keystroke "t" using command down
end
tell application "Terminal"
    activate
    do script with command "$COMMAND $EXIT" in window 1
    $POSITION
    $SIZE
end tell
EOF

else

osascript <<EOF
tell application "Terminal"
    activate
    do script with command "$COMMAND $EXIT"
    $POSITION
    $SIZE
end tell
EOF

fi
4
ответ дан 29 November 2019 в 22:39
поделиться

In my answer here, I provided a function and an alias:

function cd () { command cd "$@"; echo "$PWD" > /tmp/CWD; }
export cd

alias cdp='cd $(cat /tmp/CWD)'

You should be able to put a (possibly conditional) statement at the end of your ~/.bashrc or ~/.zshrc to execute that alias.

1
ответ дан 29 November 2019 в 22:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: