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

StackOverflow https://stackoverflow.com/questions/420456

  •  05-07-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

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

  

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

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

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

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

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

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

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

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

open -a Terminal /path/to/folder

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

В связанной заметке Lion Terminal также есть новые службы для поиска справочных страниц: Открыть справочную страницу в терминале отображает выбранную тему справочной страницы в новом окне терминала и Поиск справочника Страницы в терминале выполняют " apropos " на выделенном тексте. Первый также понимает ссылки на справочные страницы («open (2)»), аргументы командной строки справочной страницы («2 open») и URL-адреса справочной страницы («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 $@`"; };

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

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

Очень приятно то, что он обнаруживает события нажатия клавиш при запуске приложения и использует их для изменения поведения сценария " разрешение скрипту открывать новую вкладку в самом переднем окне терминала при вызове, удерживая нажатой кнопку & # 8984; ключ. Опрятный трюк.

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

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

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

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

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

  • откройте Textmate с текущим выделением
  • откройте GitX с текущей папкой

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

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

<Ч>
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 Path Finder всем, кто хочет, чтобы у Finder было немного больше сока. Он включает в себя кнопку панели инструментов для открытия окна терминала для текущего каталога или выдвижную панель с командной строкой терминала в нижней части каждого окна Finder. Плюс многие другие функции, без которых я сейчас не могу жить. Очень зрелое, стабильное программное обеспечение. http://cocoatech.com/

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

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

<Ол>
  • posd - который дает текущий каталог переднего окна Finder (для которого вы предположительно создаете псевдоним cdf = cd posd)
  • fdc - переключает текущий каталог переднего окна Finder на терминал pwd. Это немного отличается от «открытого». который всегда открывает новое окно поиска.
  • Да, вы должны переключиться в окно терминала перед написанием cdf, но я полагаю, это довольно дешево по сравнению с нажатием кнопки на панели инструментов Finder. И это также работает с iTerm, вам не нужно загружать отдельную кнопку панели инструментов Finder, которая открывает окно iTerm. Это тот же подход, который предложен PCheese, но вам не нужно загромождать свой .bash_profile.

    Если вы, как и я, отключаете панель инструментов 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:

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

    В 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
    
    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top