ฉันจะเปิดหน้าต่างเทอร์มินัลได้โดยตรงจากตำแหน่ง Finder ปัจจุบันของฉันได้อย่างไร


111

ฉันสงสัยว่ามีอะไรบ้างที่ฉันสามารถคลิกขวาภายในหน้าต่าง "Finder" ใด ๆ ก็ได้ซึ่งฉันมีตัวเลือกที่ระบุว่า "Open Terminal Here" มันจะเป็นประโยชน์จริงๆ


5
มีหลายคำตอบเป็นคำถามที่คล้ายกันในกองมากเกิน
Rob Kennedy

4
เว็บไซต์นี้ควรเป็นสถานที่ที่เหมาะสมกว่าในการถาม
ericn

คำตอบ:


134

ในฐานะของ Mac OS X Lion 10.7 เทอร์มินัลให้บริการสำหรับการเปิดหน้าต่างเทอร์มินัลหรือแท็บใหม่ที่โฟลเดอร์ที่เลือกใน Finder พวกเขายังทำงานกับชื่อพา ธ สัมบูรณ์ที่เลือกในข้อความ (ในแอปพลิเคชันใด ๆ ) คุณสามารถเปิดใช้บริการเหล่านี้มีการตั้งค่าระบบ> คีย์บอร์ด> แป้นพิมพ์ลัด> บริการ ค้นหา "New Terminal at Folder" และ "New Terminal Tab at Folder" คุณสามารถกำหนดปุ่มลัดให้

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

ตั้งแต่ OS X Mountain Lion 10.8 การลากคำสั่งไปยังเทอร์มินัลจะดำเนินการcdคำสั่งทั้งหมด

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


2
"นอกจากนี้คุณสามารถลากโฟลเดอร์ (และชื่อพา ธ ) ไปยังไอคอนแอปพลิเคชัน Terminal เพื่อเปิดหน้าต่างเทอร์มินัลใหม่" - คุณล้อเล่นฉันหรือไม่ ที่น่ากลัว! :)
phil

3
ใน Mavericks 10.9.4 - ทางลัดใช้ไม่ได้สำหรับฉัน ขอบคุณสำหรับการลากและวางปลาย :)
Amar

1
@amar คุณสามารถแบ่งปันกับเราในสิ่งที่คุณทำหรือไม่? ยังหักสำหรับฉันใน 10.10
OJFord

2
@Olive - หลังจากที่ผมอัพเกรดไป Yesomite ทางลัดไม่ทำงานให้ฉัน :(
Amar

4
สิ่งหนึ่งที่ฉันสังเกตเห็นและนี่คือกับ El Capitan คือคุณต้องเลือกโฟลเดอร์ใน Finder (คลิกเดียวที่โฟลเดอร์ที่คุณเห็นในเครื่องมือค้นหา) วิธีที่ฉันคาดว่าสิ่งนี้จะทำงานได้คือมันจะเปิดหน้าต่างเทอร์มินัลในโฟลเดอร์ปัจจุบัน ในความเป็นจริงคุณต้องเลือกโฟลเดอร์ภายในหน้าต่าง
sillygwailo

19

วิธีแก้ไขปัญหาของคุณเรียกว่าGo2Shellและทำสิ่งที่คุณกำลังอธิบาย คุณสามารถค้นหาได้จาก App Store และที่ดีที่สุด ... ฟรีทั้งหมด

Go2Shell


หากคุณต้องการใช้ iTerm แทนด้วย Go2Shell ให้ดูคำตอบนี้เพื่อนำการตั้งค่ามาใช้ หรือสั้นพิมพ์open -a Go2Shell --args configเพื่อนำมากำหนดค่า
Jeromy Anglim

@jherran ดูเหมือนว่าจะใช้ได้ตอนนี้
Colas

1
รุ่นล่าสุดไม่สามารถติดตั้งผ่านร้านค้า app แต่จากเว็บไซต์ของพวกเขาzipzapmac.com/Go2Shellbrew cask install go2shellหรือโดย
fiedl

ฉันสามารถติดตั้งเวอร์ชั่นล่าสุด v1.2.2 จากแอปสโตร์ / itunes ที่ทำงานได้อย่างสมบูรณ์
ประมวลผล

14

แนวทางที่แตกต่าง: DTermซึ่งให้พรอมต์คำสั่งลอยตัวที่ด้านบนของหน้าต่าง สิ่งนี้ใช้ได้ในหลาย ๆ แอปไม่ใช่แค่ Finder


13

cdtoดูเหมือนว่ามันเป็นสิ่งที่คุณต้องการ มันเป็นแอปพลิเคชั่นขนาดเล็กที่ออกแบบมาเพื่อใส่ในแถบเครื่องมือของ Finder's เมื่อคุณเรียกใช้มันจะเปิดหน้าต่างเทอร์มินัลและcdไปยังไดเรกทอรีปัจจุบันใน Finder


10

สำหรับผู้ที่ใช้ iTerm ไวยากรณ์ AppleScript มีการเปลี่ยนแปลงใน iTerm เวอร์ชั่น 3 ต่อไปนี้เป็นขั้นตอนการปฏิบัติตามเพื่อสร้างทางลัดใน Finder

  1. เรียกใช้ Automator

  2. เลือก "แอปพลิเคชัน":

ภาพประกอบของคำแนะนำ

  1. เลือก "เรียกใช้ Applescript":

ป้อนคำอธิบายรูปภาพที่นี่

  1. วางรหัสด้านล่าง:

    -- get the current directory in Finder
    on run {input, parameters}
        tell application "Finder"
            set _cwd to quoted form of (POSIX path of (folder of the front window as alias))
        end tell
        CD_to(_cwd)
    end run
    
    -- change directory in iTerm (version >= 3)
    on CD_to(_cwd)
        tell application "iTerm"
            activate
    
            try
                set _window to first window
            on error
                set _window to (create window with profile "Default")
            end try
    
            tell _window
                tell current session
                    write text "cd " & _cwd & ";clear;"
                end tell
            end tell
        end tell
    end CD_to

ป้อนคำอธิบายรูปภาพที่นี่

  1. คลิก "File" -> "ส่งออก" เพื่อการส่งออกเป็นบันทึกไว้ใน.app/Applications

  2. ย้ายแอปพลิเคชันไปที่แถบไอคอน Finder ขณะถือ:

ป้อนคำอธิบายรูปภาพที่นี่

เสร็จแล้ว!

คุณสามารถเปลี่ยนไอคอนใน Finder ได้โดยทำตามคำแนะนำที่นี่ (เปลี่ยนไอคอนของแอปพลิเคชันที่คุณสร้างขึ้นด้วย Automator)


9

ฉันใช้ฟังก์ชั่นนี้เป็นส่วนใหญ่:

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:

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

หากคุณใช้ 10.7 หรือ 10.8 เปลี่ยนtell application "Finder" to set p to POSIX path of (insertion location as alias)เป็น:

tell application "Finder"
    if exists Finder window 1 then
        set p to POSIX path of (target of Finder window 1 as alias)
    else
        set p to POSIX path of (path to desktop)
    end if
end tell

มีข้อผิดพลาดใน 10.7 และ 10.8 (แต่ไม่ใช่ใน 10.9 หรือ 10.6) ที่ Finder ข้ามหน้าต่างที่สร้างขึ้นหลังจากการโฟกัสครั้งล่าสุดถูกย้ายไปยังแอปพลิเคชันอื่นและกลับมาเมื่อรับinsertion locationคุณสมบัติ



3

คุณสามารถลากไฟล์หรือโฟลเดอร์ใด ๆ จากตัวค้นหาไปยังหน้าต่างเทอร์มินัลเพื่อแทรกสตริงของไฟล์หรือพา ธ สัมบูรณ์ของโฟลเดอร์ดังกล่าว

สิ่งนี้จะทำงานกับการติดตั้งมาตรฐานใด ๆ (อย่างน้อยกลับไปจนถึง 10.4 Tiger [ อาจจะเร็วกว่านี้? ]) โดยไม่จำเป็นต้องใช้ซอฟต์แวร์เพิ่มเติมในการตั้งค่าทวีคูณของเราซึ่งทั้งสองอย่างนี้อาจแปลกออกไป Mac ที่คุณใช้งาน เคล็ดลับนี้ใช้ได้กับกระบวนการใด ๆ ที่ทำงานในเทอร์มินัลเช่น emacs หรือ vi (สมมติว่าคุณมี vi ในโหมดที่เหมาะสมหรือว่าเป็นคนที่คุณใช้ vi ทำ)


3

ลองทำสิ่งนี้: https://github.com/nmadhok/OpenInTerminal

มันทำงานร่วมกับรายการในแถบด้านข้างของ Finder's การเลือกหลายโฟลเดอร์ / ไฟล์และทุกสิ่งที่คุณนึกออก ใช้งานง่ายมาก!


มันทำงานได้ดีกับเทือกเขาสูง!
Ivelin

2

ShellHere

http://etresoft.org/shellhere.html - Etresoft และ John Daniel

... คลิกขวาภายในหน้าต่าง "Finder" ใด ๆ

ผมไม่ทราบว่าจะสามารถเข้าถึงได้ผ่านเมนูบริบท แต่ฉันเก็บ ShellHere ในแถบเครื่องมือของตัวค้นหา


ลิงก์ใช้งานไม่ได้
Ivelin

2

OnMyCommand

http://free.abracode.com/cmworkshop/on_my_command.html - รุ่น 2.3 (2011-01-16)

ภาพหน้าจออื่น ๆ ที่http://www.wuala.com/grahamperrin/public/2011/07/31/d/?mode=gallery

ติดตั้งและใช้งานโดยฉันบน Snow Leopard ก่อนอัปเกรดเป็น Lion เร็วเกินไปที่ฉันจะบอกว่าเวอร์ชั่น 2.3 เข้ากันได้กับไลออนหรือไม่




-1

 

    OpenTerminal


1
ลิงก์เสีย :( นี่คือเหตุผลว่าทำไมลิงก์เพียงคำตอบเท่านั้นจึงมีชีวิตสั้นหรือควรตรวจสอบเป็นประจำเพื่อให้มีชีวิตอยู่
dan

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