Відкрийте тут термінал у пошуку ОС Mac [закритий]


682

Чи є щось подібне до "Відкритого вікна команди тут" Windows Powertoy для Mac OS? Я знайшов пару плагінів через пошук в Google, але хотів побачити, що найкраще працює для розробників там.


Відповіді:


900

Як і в Mac OS X Lion 10.7, Terminal включає саме цю функціональність як Сервіс. Як і в більшості Служб, вони відключені за замовчуванням, тому вам потрібно ввімкнути це для відображення в меню Сервіси.

Налаштування системи> Клавіатура> Ярлики> Послуги

Увімкнути новий термінал у папці . Також в папці "Нова термінал" вкладка "Створити вкладку" , яка створить вкладку в передньому вікні терміналу (якщо така є, інакше створить нове вікно). Ці Служби працюють у всіх програмах, не тільки в Finder, і вони працюють як з папками, так і з абсолютними іменами шляхів, вибраними в тексті.

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

Служби відображаються у підменю Служби кожного меню додатків та у контекстному меню (Кнопка управління або Клацніть правою кнопкою миші на папці чи імені шляху).

Служба " Новий термінал у папці" активується, коли ви виберете папку в Finder. Ви не можете просто відкрити папку та запустити службу "на місці". Поверніться до батьківської папки, виберіть відповідну папку та активуйте послугу через меню Сервіси або контекстне меню.

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

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

Ви також можете це зробити з командного рядка або сценарію оболонки:

open -a Terminal /path/to/folder

Це еквівалент командного рядка перетягування папки / імені на піктограму програми Terminal.

У відповідній примітці Lion Terminal також має нові сервіси пошуку чоловічих сторінок: Відкрита сторінка man у Терміналі відображає вибрану тему чоловічої сторінки у новому вікні терміналу, а Search Man Pages у Terminal виконує "appopos" на вибраному тексті. Перший також розуміє посилання на чоловічу сторінку ("відкрити (2)"), аргументи командного рядка чоловічої сторінки ("2 відкриті") та URL-адреси чоловічої сторінки ("x-man-page: // 2 / open").


8
Не працює на Йосеміті.
Олкай Ерташ

2
@ OlcayErtaş Що не працює? Все в моїй відповіді працює на Yosemite 10.10.x.
Кріс Пейдж

2
Чи потрібно перезапускати Finer? Я не знаю чому, але я ввімкнув Новий термінал у службі «Папка», але він не працював.
Olcay Ertaş

13
@ OlcayErtaş потрібно клацнути правою кнопкою миші на піктограмі папки, щоб отримати пункт меню; не переходите до самої папки, а до її батьківського.
Джонатан Ландрум

2
Я можу використовувати його за допомогою клацання правою кнопкою миші / сервісів, але я не можу використовувати його за допомогою комбінацій клавіш.
Може Poyrazoğlu


56

Додаток, який я вважав незамінним як альтернатива, - це DTerm , який фактично відкриває міні-термінал прямо у вашій програмі. Крім того, він працює практично з усім, що там - Finder, XCode, PhotoShop тощо.


38

Пояснення (спасибі @ 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 .


"відкрити" відкриває нове вікно Finder у поточному каталозі
jolvi

2
@jolvi - це протилежне тому, що дає ця відповідь. Суть не в тому, щоб відкрити вікно пошуку в pwd, а cdв каталозі, в якому шукач відкритий.
Джонатан Ландрум

ах, вибачте, звичайно, ти маєш рацію.
jolvi

14

Ознайомтесь із відкритим терміналом тут . Це може бути найбільш схоже на "Open Command Window Here." Я використовував, >cdtoі це дуже схоже, але це, здається, трохи краще стосується просторів ... але не ідеально.

Це дуже приємно - це можливість " виявляти події клавіатури на початку програми та використовувати їх для зміни поведінки сценарію ", що дозволяє скрипту відкривати нову вкладку в самому передньому вікні терміналу при виклику утримуючи клавішу ⌘. Акуратний трюк.

Також зверніть увагу на відповідь PCheese; це, мабуть, корисніше для важких користувачів терміналів!


12

Тут є оновлена ​​версія дуже симпатичного та тонкого відкритого терміналу Тут розміщено vgm64 та d0k . Зміна була зроблена Джеймсом Девідом Низким . Він опублікував нову версію на своєму сайті . Просто завантажте OpenTerminalHere.zip, витягніть його, перемістіть пакет у папку «Бібліотека / Скрипти» та перетягніть його звідти на панель інструментів Finder.

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


Це круто! Зауважте, що ви повинні командувати + перетягнути (а не просто перетягувати, як зазначено вище), на панель інструментів Finder. І тоді у вас є ярлик ярлика, який при натисканні закінчується з будь-якої папки.
Б. Надольсон,

10

Крім того, ви можете скопіювати елемент з Finder за допомогою команди-C, перейти в термінал (наприклад, за допомогою прожектора або QuickSilver) типу "cd" і просто вставити за допомогою команди-v


4

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

  • відкрити Textmate з поточним виділенням
  • відкрийте GitX з поточною папкою

Для отримання додаткової інформації дивіться тут: http://nslog.de/posts/71


3

Якщо ви встановите сценарії 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

Подібні сценарії також можуть отримати повний шлях до файлу клацанням правою кнопкою миші, що ще корисніше, я вважаю.


3

Це трохи більше, ніж ви просите, але я рекомендую Cocoatech's Path Finder для всіх, хто бажає, щоб у Finder було трохи більше соку. Вона включає в себе кнопку панелі інструментів, щоб відкрити вікно терміналу для поточного каталогу або висувну панель із командним рядком Terminal внизу кожного вікна Finder. Плюс багато інших функцій, без яких я зараз не можу жити. Дуже зріле, стабільне програмне забезпечення. http://cocoatech.com/


2

Гаразд, я розумію, що це трохи пізно ... можливо, ця альтернатива не була доступна на момент написання повідомлення?

У будь-якому разі, я знайшов, що встановлення пакету pos через Fink (необхідна умова в цьому випадку, можливо, є щось подібне для тих, хто використовує MacPorts?), Як найпростіше рішення. Ви отримуєте дві команди:

  1. posd - який дає поточний каталог найпершого вікна Finder (для якого, імовірно, ви робите псевдонім cdf = cd posd)
  2. fdc - який перемикає поточну каталогію переднього вікна Finder на термінал pwd. Це трохи відрізняється від "відкритого". яке завжди відкриває нове вікно пошуку.

Так, вам потрібно перейти до вікна «Термінал» перед тим, як написати cdf, але я вважаю, що це досить дешево порівняно з натисканням кнопки на панелі інструментів Finder. І це працює також з iTerm, вам не потрібно завантажувати окрему кнопку панелі інструментів Finder, яка відкриває вікно iTerm. Це той самий підхід, який запропонував PCheese, але вам не потрібно захаращувати .bash_profile.


2

Якщо ви, як я, ви вимикаєте панель інструментів Finder, ця Служба додає елемент у контекстне меню кожної папки: http://blog.leenarts.net/2009/09/03/open-service-here/

Це також дозволяє відкрити будь-яку папку, яку ви бачите в дереві Finder.


1

Я в основному використовую цю функцію:

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.

0

У 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

2
Чому ви хочете закрити вікно терміналу? Хіба це не знищить будь-яку роботу, яку ви робили в ньому?
Роб Кеннеді
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.