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

есть ли что-то похожее на "Открыть командное окно Здесь" Windows Powertoy для Mac OS? Я нашел пару плагинов через поиск google, но хотел посмотреть,что лучше всего работает для разработчиков.

14 ответов


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

Системные Настройки > Клавиатура > Ярлыки > Службы

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

вы даже можете назначить сочетания клавиш для них.

службы отображаются в подменю "службы" каждого меню приложения, а также в контекстном меню (щелкните правой кнопкой мыши папку или путь).

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

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

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

вы также можете сделать это из командной строки или скрипта:

open -a Terminal /path/to/folder

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

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


Это:

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

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


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


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

я добавил следующее в мой .bash_profile поэтому я могу ввести cdff в терминале в любое время.

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 терминальная подсказка.


проверить Открыть Терминал Здесь. Это может быть наиболее похоже на " Открыть командное окно Здесь.- Я использовал >cdto и это очень похоже, но это, кажется, немного лучше при работе с пробелами... но не идеально.

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

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


есть обновленная версия очень хороший и тонкий Открыть Терминал Здесь сообщение от vgm64 и d0k. Изменение было сделано Джеймс Дэвид Лоу. Он опубликовал новую версию его сайт. Просто скачайте OpenTerminalHere.zip, распакуйте его, переместите пакет в папку Library/Scripts и перетащите его оттуда на панель инструментов Finder.

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


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


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

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

для получения дополнительной информации см. здесь: http://nslog.de/posts/71


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


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

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


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


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

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

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

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


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

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


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

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

вы также можете назначить ярлык скрипту, как показано ниже.

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

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:

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

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

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