เปิดเทอร์มินัลที่นี่ในตัวค้นหา Mac OS [ปิด]


682

มีบางอย่างที่คล้ายกับ "หน้าต่างคำสั่งเปิดที่นี่" Windows Powertoy สำหรับ Mac OS หรือไม่ ฉันพบปลั๊กอินสองสามรายการผ่านการค้นหาโดย Google แต่ต้องการดูว่าอะไรดีที่สุดสำหรับนักพัฒนาซอฟต์แวร์ที่นั่น


คำตอบ:


900

ในฐานะของ Mac OS X Lion 10.7 เทอร์มินัลมีฟังก์ชั่นนี้เหมือนกับบริการ เช่นเดียวกับบริการส่วนใหญ่สิ่งเหล่านี้จะถูกปิดใช้งานโดยค่าเริ่มต้นดังนั้นคุณจะต้องเปิดใช้งานสิ่งนี้เพื่อให้ปรากฏในเมนูบริการ

ค่ากำหนดของระบบ> คีย์บอร์ด> ทางลัด> บริการ

เปิดใช้งานเทอร์ใหม่ที่โฟลเดอร์ นอกจากนี้ยังมีแท็บ Terminal ใหม่ที่โฟลเดอร์ซึ่งจะสร้างแท็บในหน้าต่าง Terminal สุดยอด (ถ้ามีมิฉะนั้นจะสร้างหน้าต่างใหม่) บริการเหล่านี้ใช้ได้กับทุกแอปพลิเคชั่นไม่เพียงแค่ Finder และจะทำงานในโฟลเดอร์รวมถึงชื่อพา ธ แบบสมบูรณ์ที่เลือกไว้ในข้อความ

คุณสามารถกำหนดคีย์คำสั่งให้กับพวกเขาได้

บริการปรากฏในเมนูย่อยบริการของแต่ละเมนูแอปพลิเคชันและภายในเมนูตามบริบท (คลิกควบคุมหรือคลิกขวาที่โฟลเดอร์หรือชื่อพา ธ )

ใหม่เทอร์มิที่โฟลเดอร์บริการจะใช้งานได้เมื่อคุณเลือกโฟลเดอร์ใน Finder คุณไม่สามารถเปิดโฟลเดอร์และเรียกใช้บริการ "แทนที่" กลับไปที่โฟลเดอร์หลักเลือกโฟลเดอร์ที่เกี่ยวข้องจากนั้นเปิดใช้งานบริการผ่านเมนูบริการหรือเมนูบริบท

นอกจากนี้ Lion Terminal จะเปิดหน้าต่างเทอร์มินัลใหม่หากคุณลากโฟลเดอร์ (หรือชื่อพา ธ ) ไปยังไอคอนแอปพลิเคชัน Terminal และคุณสามารถลากไปยังแถบแท็บของหน้าต่างที่มีอยู่เพื่อสร้างแท็บใหม่

ในที่สุดหากคุณลากโฟลเดอร์หรือชื่อพา ธ ไปยังแท็บ (ในแถบแท็บ) และกระบวนการพื้นหน้าเป็นเชลล์มันจะดำเนินการคำสั่ง "cd" โดยอัตโนมัติ (การลากเข้าสู่มุมมองเทอร์มินัลภายในแท็บจะแทรกชื่อพา ธ ด้วยตนเองเช่นเดียวกับในเทอร์มินัลรุ่นเก่า)

คุณสามารถทำได้จากบรรทัดคำสั่งหรือเชลล์สคริปต์:

open -a Terminal /path/to/folder

นี่เทียบเท่ากับบรรทัดคำสั่งของการลากโฟลเดอร์ / ชื่อพา ธ ไปยังไอคอนแอปพลิเคชัน Terminal

ในหมายเหตุที่เกี่ยวข้อง Lion Terminal ยังมีบริการใหม่สำหรับค้นหาหน้าคน: เปิดหน้าคนใน Terminalแสดงหัวข้อหน้าคนที่เลือกในหน้าต่างเทอร์มินัลใหม่และค้นหาหน้าคนในเทอร์มินัลทำการ "apropos" ในข้อความที่เลือก อดีตยังเข้าใจการอ้างอิงหน้า man ("open (2)"), อาร์กิวเมนต์บรรทัดคำสั่ง man page ("2 open") และ URL ของ man page ("x-man-page: // 2 / open")


8
ใช้งานไม่ได้กับโยเซมิตี
Olcay Ertaş

2
@ OlcayErtaşอะไรที่ใช้ไม่ได้ ทุกอย่างในคำตอบของฉันทำงานบน Yosemite 10.10.x
Chris หน้า

2
ฉันต้องรีสตาร์ท Finer หรือไม่? ฉันไม่ได้เพราะอะไร แต่ฉันเปิดใช้งาน Terminal ใหม่ที่บริการโฟลเดอร์ แต่มันไม่ทำงาน
Olcay Ertaş

13
@ OlcayErtaşคุณต้องคลิกขวาที่ไอคอนโฟลเดอร์เพื่อรับรายการเมนู อย่าไปที่โฟลเดอร์ แต่ไปที่โฟลเดอร์หลัก
Jonathan Landrum

2
ฉันสามารถใช้งานได้ด้วยการคลิกขวา / บริการ แต่ฉันไม่สามารถใช้มันผ่านแป้นพิมพ์ลัด
สามารถPoyrazoğlu

153

นี้:

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

มันเป็นแอพเล็ก ๆ ที่คุณลากเข้าไปในแถบเครื่องมือ Finder ไอคอนนั้นเข้ากันได้ดีมาก มันทำงานร่วมกับ Terminal, xterm (ต่ำกว่า X11), iterm


56

แอปพลิเคชันที่ฉันพบว่าขาดไม่ได้เป็นทางเลือกคือDTermซึ่งเปิดมินิเทอร์มินัลในแอปพลิเคชันของคุณ นอกจากนี้ยังใช้งานได้กับทุกอย่างที่นั่น - Finder, XCode, PhotoShop ฯลฯ


38

ความชัดเจน (ขอบคุณ @ vgm64): หากคุณอยู่ใน Terminal อยู่แล้วสิ่งนี้จะช่วยให้คุณเปลี่ยนเป็นหน้าต่าง 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 $@`"; };

นี้เป็นจากคำใบ้สถานีนี้ macosxhints.com


"open." เปิดหน้าต่าง Finder ใหม่ในไดเรกทอรีปัจจุบัน
jolvi

2
@ jolvi ตรงข้ามกับคำตอบที่ได้รับ จุดไม่ได้เพื่อเปิดหน้าต่างค้นหาที่pwdแต่ไปcdยังไดเรกทอรีที่เปิดค้นหา
Jonathan Landrum

ขอโทษแน่นอนคุณพูดถูก
jolvi

14

ตรวจสอบการเปิดเทอร์มินี่ อาจคล้ายกับ "หน้าต่างคำสั่งเปิดที่นี่" ฉันใช้>cdtoและสิ่งนี้คล้ายกันมาก แต่ดูเหมือนว่าจะดีกว่าเล็กน้อยในการจัดการกับ Spaces ... แต่ไม่สมบูรณ์

สิ่งที่มีอยู่นั้นดีมากคือความสามารถในการ " ตรวจจับเหตุการณ์การกดปุ่มที่จุดเริ่มต้นของแอปพลิเคชันและใช้เพื่อแก้ไขพฤติกรรมของสคริปต์ " ทำให้สคริปต์เปิดแท็บใหม่ในหน้าต่างเทอร์มินัลด้านหน้าส่วนใหญ่เมื่อเรียกใช้ โดยกดปุ่ม⌘ค้างไว้ เคล็ดลับเรียบร้อย

ยังทราบคำตอบของ PCheese; มันอาจมีประโยชน์มากกว่าสำหรับผู้ใช้งานที่มีจำนวนมาก


12

มีรุ่นปรับปรุงของที่ดีมากและบางเปิดเทอร์มินี่โพสต์โดยvgm64และd0k การเปลี่ยนแปลงที่ถูกสร้างขึ้นโดยเดวิดเจมส์ต่ำ เขาตีพิมพ์รุ่นใหม่บนเว็บไซต์ของเขา เพียงดาวน์โหลด OpenTerminalHere.zip แยกชุดไฟล์ไปยังโฟลเดอร์ Library / Scripts แล้วลากจากที่นั่นไปยังแถบเครื่องมือ Finder

มีอะไรพิเศษเกี่ยวกับมันคือมันจะเปิดแท็บใหม่เสมอหากหน้าต่าง Terminal.app เปิดอยู่แล้ว มีประโยชน์มาก! ฉันยังตั้งข้อสังเกตว่ารูปแบบของปุ่มของโปรแกรมที่ดีกว่าเหมาะกับสไตล์เสือดาวหิมะ Finder.app กว่า cdto โพสต์โดยredactedได้


นี่มันเจ๋งมาก! หมายเหตุคุณต้องใช้Command + Drag (ไม่ใช่แค่ลากตามที่ระบุในโพสต์ด้านบน) ไปยังแถบเครื่องมือ Finder แล้วคุณมีไอคอนทางลัดที่เมื่อคลิกจะเทอร์มินัลจากโฟลเดอร์ใด ๆ
B. Nadolson

10

นอกจากนี้คุณสามารถคัดลอกรายการจากตัวค้นหาโดยใช้ command-C, ข้ามไปยังเทอร์มินัล (เช่นใช้ Spotlight หรือ QuickSilver) พิมพ์ 'cd' และเพียงวางด้วย command-v


4

ฉันสร้างชุดรวม 3 แอพสำหรับแถบเครื่องมือค้นหา อีกสองแอพทำ:

  • เปิด Textmate พร้อมการเลือกปัจจุบัน
  • เปิด GitX ด้วยโฟลเดอร์ปัจจุบัน

สำหรับข้อมูลเพิ่มเติมดูที่นี่: http://nslog.de/posts/71


3

หากคุณติดตั้ง Big Cat Scripts ( 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

มันเป็นอะไรที่มากกว่าที่คุณจะถาม แต่ฉันขอแนะนำ Path Finder ของ Cocoatech สำหรับผู้ที่ต้องการให้ Finder มีน้ำผลไม้เพิ่มขึ้นอีกเล็กน้อย มันมีปุ่มแถบเครื่องมือเพื่อเปิดหน้าต่างเทอร์มินัลสำหรับไดเรกทอรีปัจจุบันหรือบานหน้าต่างแบบพับเก็บได้ด้วยบรรทัดคำสั่งเทอร์มินัลที่ด้านล่างของแต่ละหน้าต่าง Finder พร้อมคุณสมบัติอื่น ๆ อีกมากมายที่ตอนนี้ฉันขาดไม่ได้ ซอฟต์แวร์ที่เสถียรและเสถียรมาก http://cocoatech.com/


2

ตกลงฉันรู้ว่านี่มันช้าไปหน่อย ... บางทีตัวเลือกนี้อาจไม่พร้อมใช้งานในขณะเขียนโพสต์?

อย่างไรก็ตามฉันพบว่าการติดตั้งแพคเกจ pos ผ่าน Fink (สิ่งที่จำเป็นต้องมีในกรณีนี้อาจมีบางสิ่งที่คล้ายกันสำหรับผู้ที่ใช้ MacPort?) เป็นวิธีแก้ปัญหาที่ง่ายที่สุด คุณได้รับสองคำสั่ง:

  1. posd - ซึ่งให้ไดเรกทอรีปัจจุบันของหน้าต่าง Finder ที่อยู่ข้างหน้า (ซึ่งคุณน่าจะสร้างนามแฝงเป็น cdf = cd posd)
  2. fdc - ซึ่งจะเปลี่ยนไดเรกทอรีปัจจุบันของหน้าต่าง Finder ที่อยู่ด้านหน้าสุดไปยัง Terminal pwd สิ่งนี้แตกต่างจาก 'เปิด' เล็กน้อย ซึ่งจะเปิดหน้าต่างค้นหาใหม่เสมอ

ใช่คุณต้องสลับไปที่หน้าต่าง Terminal ก่อนที่จะเขียน cdf แต่ฉันคิดว่ามันค่อนข้างถูกเมื่อเทียบกับการคลิกปุ่มในแถบเครื่องมือ Finder และใช้งานกับ iTerm ได้เช่นกันคุณไม่จำเป็นต้องดาวน์โหลดปุ่มแถบเครื่องมือ Finder แยกต่างหากที่เปิดหน้าต่าง iTerm นี่เป็นวิธีการเดียวกับที่เสนอโดย PCheese แต่คุณไม่ต้องวุ่นวาย. bash_profile


2

ถ้าเหมือนฉันคุณปิดแถบเครื่องมือค้นหาบริการนี้จะเพิ่มรายการลงในเมนูตามบริบทของทุกโฟลเดอร์: http://blog.leenarts.net/2009/09/03/open-service-here/

นอกจากนี้ยังช่วยให้คุณเปิดโฟลเดอร์ใด ๆ ที่คุณเห็นในมุมมองแบบต้นไม้ค้นหา


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:

  • พวกเขาใช้โฟลเดอร์บนแถบชื่อเรื่องแทนที่จะกำหนดให้คุณเลือกโฟลเดอร์ก่อน
  • มันจะใช้แท็บที่อยู่ข้างหน้าถ้าไม่ว่างเช่นการรันคำสั่งการแสดง man page หรือการรัน emacs

0

มีข้อบกพร่องใน 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

2
ทำไมคุณต้องการปิดหน้าต่างเทอร์มินัล จะไม่ทำลายสิ่งที่คุณกำลังทำอยู่หรือ?
Rob Kennedy
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.