Подтвердить что ты не робот

Откройте терминал здесь, в Mac OS finder

Есть ли что-то похожее на "Open Command Window здесь" Windows Powertoy для Mac OS? Я нашел пару плагинов через поиск Google, но хотел посмотреть, что лучше всего работает для разработчиков.

4b9b3361

Ответ 1

Как и в Mac OS X Lion 10.7, Terminal включает именно эту функциональность в качестве Сервиса. Как и в большинстве служб, они по умолчанию отключены, поэтому вам нужно включить это, чтобы он отображался в меню "Службы" .

Системные настройки > Клавиатурa > Ярлыки > Услуги

Включить Новый терминал в папке. Там также вкладка "Новый терминал" в папке, которая создаст вкладку во фронтальном окне терминала (если она есть, иначе она создаст новое окно). Эти службы работают во всех приложениях, а не только с Finder, и они работают с папками, а также с абсолютными именами путей, выбранными в тексте.

Вы даже можете назначить им командные ключи.

Службы отображаются в подменю "Службы" в каждом меню приложения и в контекстном меню ( "Control-Click" или "Щелкните правой кнопкой мыши по папке или имени пути" ).

Служба Новый терминал в папке станет активной при выборе папки в Finder. Вы не можете просто открыть папку и запустить службу "на месте". Вернитесь в родительскую папку, выберите соответствующую папку, затем активируйте службу через меню "Службы" или контекстное меню.

Кроме того, Lion Terminal откроет новое окно терминала, если вы перетащите папку (или имя пути) на значок приложения Terminal, и вы также можете перетащить ее на панель вкладок существующего окна, чтобы создать новую вкладку.

Наконец, если вы перетащите папку или имя пути на вкладку (на панели вкладок), а процесс переднего плана - это оболочка, он автоматически выполнит команду "cd". (Перетаскивание в вид терминала на вкладке просто вставляет имя пути самостоятельно, как в старых версиях терминала.)

Вы также можете сделать это из командной строки или оболочки script:

open -a Terminal /path/to/folder

Это эквивалент командной строки перетаскивания папки/пути на значок приложения терминала.

В соответствующей заметке Lion Terminal также имеет новые службы для поиска справочных страниц: Открыть страницу руководства в терминале отображает выбранную страницу справочной страницы в новом окне терминала и Поиск человека Страницы в терминале выполняют "apropos" в выбранном тексте. Первый также понимает ссылки на man-страницы ( "open (2)" ), аргументы командной строки man-страницы ( "2 открытых" ) и URL-адреса страниц man ( "x-man-page://2/open" ).

Ответ 2

Это:

https://github.com/jbtule/cdto#cd-to

Это небольшое приложение, которое вы перетаскиваете на панель инструментов Finder, значок подходит очень хорошо. Он работает с терминалом, xterm (под X11), iterm.

Ответ 3

Приложением, которое я нашел незаменимым в качестве альтернативы, является DTerm, который фактически открывает мини-терминал прямо в вашем приложении. Кроме того, он работает практически со всем - Finder, XCode, PhotoShop и т.д.

Ответ 4

Разъяснение (спасибо @vgm64): если вы уже находитесь в терминале, это позволяет быстро перейти к самому верхнему окну Finder, не покидая Terminal. Таким образом, вы можете избежать использования мыши.

Я добавил следующее к моему .bash_profile, чтобы я мог набирать cdff в Terminal в любое время.

function ff { osascript -e 'tell application "Finder"'\
 -e "if (${1-1} <= (count Finder windows)) then"\
 -e "get POSIX path of (target of window ${1-1} as alias)"\
 -e 'else' -e 'get POSIX path of (desktop as alias)'\
 -e 'end if' -e 'end tell'; };\

function cdff { cd "`ff [email protected]`"; };

Это от это подсказка терминала macosxhints.com.

Ответ 5

Отъезд Открыть терминал здесь. Это может быть наиболее похоже на "Open Command Window Here". Я использовал >cdto, и это очень похоже, но это, похоже, немного лучше справляется с Spaces... но не идеально.

Что это очень хорошо, так это возможность "обнаруживать события нажатия клавиш в начале приложения и использовать их для изменения поведения script", позволяя script открыть новую вкладку в переднее большинство терминальных окон при вызове, удерживая клавишу ⌘. Аккуратный трюк.

Также обратите внимание на ответ PCheese; это, вероятно, более полезно для тяжелых пользователей терминалов!

Ответ 6

Существует обновленная версия очень приятного и тонкого Open Terminal Here, размещенного vgm64 и d0k. Изменение было сделано джимми Дэвид низким. Он опубликовал новую версию на своем сайте. Просто скачайте OpenTerminalHere.zip, извлеките его, переместите пакет в папку "Библиотека/Сценарии" и перетащите его туда на панель инструментов Finder.

Что особенного в том, что он всегда открывает новую вкладку, если окно Terminal.app уже открыто. Очень полезно! Я также отметил, что стиль кнопки приложения лучше подходит к стилю Snow Leopard Finder.app, чем cdto, отправленный отредактированным.

Ответ 7

Кроме того, вы можете скопировать элемент из поисковика с помощью команды -C, перейти в терминал (например, с помощью Spotlight или QuickSilver) типа "cd" и просто вставить с помощью команды-v

Ответ 8

Я создал пакет с 3 приложениями для панели инструментов поиска. Другие два приложения:

  • открыть Textmate с текущим выбором
  • открыть GitX с текущей папкой

Подробнее см. здесь: http://nslog.de/posts/71

Ответ 9

Если вы устанавливаете Big Cat Scripts (http://www.ranchero.com/bigcat/), вы можете добавить свои собственные контекстные меню (щелчок правой кнопкой мыши). Я не думаю, что он поставляется с открытым терминалом Здесь applescript, но я использую этот script (который я честно не помню, написал ли я себя или снял с другого примера):


on main(filelist)
    tell application "Finder"
        try
            activate
            set frontWin to folder of front window as string
            set frontWinPath to (get POSIX path of frontWin)
            tell application "Terminal"
                activate
                do script with command "cd \"" & frontWinPath & "\""
            end tell
        on error error_message
            beep
            display dialog error_message buttons ¬
                {"OK"} default button 1
        end try
    end tell
end main

Подобные скрипты также могут получить полный путь к файлу, щелкнув правой кнопкой мыши, что еще более полезно, я нахожу.

Ответ 10

Это немного больше, чем вы просите, но я рекомендую Cocoatech Path Finder для тех, кто хочет, чтобы у Finder было немного больше сока. Он включает в себя кнопку на панели инструментов, чтобы открыть окно терминала для текущего каталога или выдвижную панель с командной строкой терминала в нижней части окна каждого Finder. Плюс много других функций, с которыми я сейчас не могу жить. Очень зрелая, стабильная программа. http://cocoatech.com/

Ответ 11

Хорошо, я понимаю, что это немного поздно... может быть, эта альтернатива не была доступна в момент написания сообщения?

В любом случае, я нашел установку пакета pos через Fink (предпосылка в этом случае, может быть, есть что-то подобное для тех, кто использует MacPorts?), чтобы быть самым простым решением. Вы получаете две команды:

  • posd - который дает текущий каталог самого окна Finder (для которого вы предположительно создаете псевдоним cdf = cd posd)
  • fdc - который переключает текущий каталог самого первого окна Finder на терминал pwd. Это немного отличается от "открытого". который всегда открывает новое окно поиска.

Да, вы должны перейти в окно терминала перед написанием cdf, но я полагаю, что это довольно дешево по сравнению с нажатием кнопки на панели инструментов Finder. И он также работает с iTerm, вам не нужно загружать отдельную кнопку панели Finder, которая открывает окно iTerm. Это тот же подход, что предложенный PCheese, но вам не нужно загромождать ваш .bash_profile.

Ответ 12

Если вы отключите панель инструментов Finder, эта служба добавляет элемент в контекстное меню каждой папки: http://blog.leenarts.net/2009/09/03/open-service-here/

Это также позволяет вам открыть любую папку, которую вы видите в дереве дерева Finder.

Ответ 13

В основном я использую эту функцию:

cf() {
  cd "$(osascript -e 'tell app "Finder" to POSIX path of (insertion location as alias)')"
}

Вы также можете назначить ярлык для script, как показано ниже.

Повторно используйте существующую вкладку или создайте новое окно (Terminal):

tell application "Finder" to set p to POSIX path of (insertion location as alias)
tell application "Terminal"
    if (exists window 1) and not busy of window 1 then
        do script "cd " & quoted form of p in window 1
    else
        do script "cd " & quoted form of p
    end if
    activate
end tell

Повторно использовать существующую вкладку или создать новую вкладку (терминал):

tell application "Finder" to set p to POSIX path of (insertion location as alias)
tell application "Terminal"
    if not (exists window 1) then reopen
    activate
    if busy of window 1 then
        tell application "System Events" to keystroke "t" using command down
    end if
    do script "cd " & quoted form of p in window 1
end tell

Всегда создайте новую вкладку (iTerm 2):

tell application "Finder" to set p to POSIX path of (insertion location as alias)
tell application "iTerm"
    if exists current terminal then
        current terminal
    else
        make new terminal
    end if
    tell (launch session "Default") of result to write text "cd " & quoted form of p
    activate
end tell

Первые два сценария имеют два преимущества по сравнению с сервисами, добавленными в 10.7:

  • Они используют папку в строке заголовка вместо того, чтобы сначала выбрать папку.
  • Они повторно используют самую верхнюю вкладку, если она не занята, например. запуск команды, отображение справочной страницы или запуск emacs.

Ответ 14

В AppleScript на OSX 10.6 есть ошибка. (Открыто 2 окна терминала). Я исправил это, добавив команду закрытия после активации. Это закрывает первое окно терминала.

on run
    tell application "Finder"
        try
            activate
            set frontWin to folder of front window as string
            set frontWinPath to (get POSIX path of frontWin)
            tell application "Terminal"
                activate
                close
                do script with command "cd \"" & frontWinPath & "\""
            end tell
        on error error_message
            beep
            display dialog error_message buttons ¬
                {"OK"} default button 1
        end try
    end tell
end run