ฉันคิดว่าชื่อระบุสิ่งที่ฉันต้องการจะทำ ฉันต้องการทางลัดหรือแม้แต่ปุ่มใน Finder ซึ่งเปิดใช้งาน iTerm Tab ใหม่และเปลี่ยนตำแหน่งเป็นตำแหน่งที่ฉันเปิดใน Finder เรียงลำดับบางอย่างopen .
ในสิ่งที่ตรงกันข้าม :-)
ขอบคุณ Malax
ฉันคิดว่าชื่อระบุสิ่งที่ฉันต้องการจะทำ ฉันต้องการทางลัดหรือแม้แต่ปุ่มใน Finder ซึ่งเปิดใช้งาน iTerm Tab ใหม่และเปลี่ยนตำแหน่งเป็นตำแหน่งที่ฉันเปิดใน Finder เรียงลำดับบางอย่างopen .
ในสิ่งที่ตรงกันข้าม :-)
ขอบคุณ Malax
คำตอบ:
มีเทอร์มินัลเปิดที่นี่ AppleScript ที่คุณควรจะสามารถแก้ไขเพื่อโทรไปที่ iTerm แทนได้ นี้โพสต์ MacOSXHintsควรจะเป็นประโยชน์เช่นกัน
(ฉันไม่ได้ใช้ Mac เป็นอย่างอื่นฉันจะทดสอบ)
applescript นี้เหมาะกับฉัน:
-- script was opened by click in toolbar
on run
tell application "Finder"
try
set currFolder to (folder of the front window as string)
on error
set currFolder to (path to desktop folder as string)
end try
end tell
CD_to(currFolder, false)
end run
-- script run by draging file/folder to icon
on open (theList)
set newWindow to false
repeat with thePath in theList
set thePath to thePath as string
if not (thePath ends with ":") then
set x to the offset of ":" in (the reverse of every character of thePath) as string
set thePath to (characters 1 thru -(x) of thePath) as string
end if
CD_to(thePath, newWindow)
set newWindow to true -- create window for any other files/folders
end repeat
return
end open
-- cd to the desired directory in iterm
on CD_to(theDir, newWindow)
set theDir to quoted form of POSIX path of theDir as string
tell application "iTerm"
activate
delay 1
-- talk to the first terminal
try
set myterm to the first terminal
on error
set myterm to (make new terminal)
end try
tell myterm
try
-- launch a default shell in a new tab in the same terminal
launch session "Default Session"
on error
display dialog "There was an error creating a new tab in iTerm." buttons {"OK"}
end try
tell the last session
try
-- cd to the finder window
write text "cd " & theDir
on error
display dialog "There was an error cding to the finder window." buttons {"OK"}
end try
end tell
end tell
end tell
end CD_to
การใช้คำตอบอื่น ๆ ในหน้านี้ฉันได้สร้างแอพที่สามารถลากลงในแถบงานค้นหา
คุณสามารถดาวน์โหลดได้จากที่นี่: https://github.com/rc1/iTermTo
สิ่งนี้สร้างขึ้นเพื่อ iTerm2 ในเวอร์ชั่น 3.1.0
วิธีใช้ฟังก์ชัน:
ใน Finder คลิกขวาที่โฟลเดอร์ -> บริการ -> หน้าต่าง iTerm2 ใหม่ที่นี่
หมายเหตุ: Services
เมนูย่อยอยู่ที่ด้านล่างสุดของเมนูคลิกขวา
การอ้างอิง
ที่ลิงก์นี้คลิกแสดงเวอร์ชันที่เก่ากว่าจากนั้นภายใต้iTerm2 3.1.0คลิกแสดงการเปลี่ยนแปลงและค้นหาบริการคุณจะพบสิ่งนี้:
เพิ่มการสนับสนุนสำหรับบริการค้นหา คุณสามารถคลิกขวาใน Finder เพื่อเปิด iTerm2 ในตำแหน่งนั้น
ดูcdto
โครงการที่โฮสต์บนhttps://github.com/jbtule/cdto
"แอป Finder Toolbar เพื่อเปิดไดเรกทอรีปัจจุบันใน Terminal (หรือ iTerm, X11) แอปนี้ได้รับการออกแบบ (รวมถึงไอคอน) เพื่อวางลงใน แถบเครื่องมือของหน้าต่างค้นหา "
เพียงเพื่อความสมบูรณ์ก่อนที่จะพบคำถามนี้สิ่งที่ได้ผลสำหรับฉันคือ:
Applescript Editor-> File-> Export-> File Format = .app
นั้น.app
แถบเครื่องมือไปที่ Finder'sส่งผลให้ปุ่มแถบเครื่องมือค้นหาซึ่งเปิดไดเรกทอรีปัจจุบันในiTerm2
แท็บใหม่ XtraFinder เสนอปุ่มดังกล่าว แต่จะเปิดหน้าต่างใหม่
โซลูชันที่คล้ายกันซึ่งใช้บริการอยู่ที่นี่ซึ่งลิงก์ไปยังโซลูชัน AppleScript ที่เกี่ยวข้องยิ่งขึ้น:
AppleScript ที่ปรับตัวแล้วของฉันคือ:
try
tell application "iTerm2"
tell the last terminal
launch session "Default Session"
tell the last session
tell i term application "Finder"
set cur_dir to (the target of the front Finder window) as string
end tell
set cur_dir to POSIX path of cur_dir
write text "cd " & cur_dir
end tell
end tell
end tell
end try
การแก้ปัญหานี้ได้รับการแสดงความคิดเห็นในหัวข้อที่เกี่ยวข้องกับปุ่มนี้
ขอบคุณiTermตอบคำถามข้างต้น
ฉันเดาว่ามันเป็นเพราะ internals ของ iTerm เปลี่ยนไป แต่ไม่มีวิธีใดที่เหมาะกับฉัน อะไรคือรหัสต่อไปนี้:
tell application "Finder"
set cur_dir to POSIX path of ((the target of the front Finder window) as string)
end tell
tell application "iTerm"
tell (create window with default profile)
write current session text "cd " & quoted form of cur_dir
end tell
end tell
หรือใช้ Automator เป็นบริการค้นหา:
on run {input, parameters}
tell application "Finder"
set cur_dir to POSIX path of (input as string)
end tell
tell application "iTerm"
tell (create window with default profile)
write current session text "cd " & quoted form of cur_dir
end tell
end tell
end run
ด้วย iTerm:
การกำหนดค่า Iterm และภายใต้แท็บโปรไฟล์ไปที่แท็บย่อยทั่วไปตั้งค่าไดเรกทอรีการทำงานเป็น“ ใช้ไดเรกทอรีของเซสชันก่อนหน้านี้อีกครั้ง”
นี่คือสคริปต์แบบย่อที่เปิดแท็บใหม่เสมอ (เช่นสคริปต์ของ bulljit):
try
tell application "Finder"
if number of Finder windows is 0 then
set p to POSIX path of (desktop as alias)
else
set p to POSIX path of (target of Finder window 1 as alias)
end if
end tell
tell application "iTerm"
reopen
tell current terminal
tell (launch session "Default Session")
write text "cd " & quoted form of p
end tell
end tell
activate
end tell
end try
หากคุณต้องการให้สคริปต์ใช้แท็บที่มีอยู่ใหม่ให้แทนที่tell current terminal
บล็อกด้วยสิ่งต่อไปนี้:
tell current session of current terminal
write text "cd " & quoted form of p
end tell
แต่นั่นจะไม่ทำงานหากเช่นเซสชันปัจจุบันไม่ว่างหรือกำลังดำเนินการน้อยลงหรือเป็นกลุ่ม
การตัดสคริปต์ในบล็อกลองทำให้ล้มเหลวแบบไม่โต้ตอบ reopen
เปิดหน้าต่างเทอร์มินัลใหม่หากไม่มีหน้าต่างที่มองเห็นได้หรือหากมีเพียงหน้าต่างตัวอย่างที่เปิดอยู่ ตัวค้นหายังมีinsertion location
คุณสมบัติซึ่งปกติtarget of Finder window 1
หรือเดสก์ท็อป แต่มีข้อผิดพลาดใน 10.7 และหลังจากนั้นซึ่งมักจะอ้างถึงหน้าต่างอื่น ๆ กว่าหน้าต่างด้านหน้า
ปัญหาที่อาจเกิดขึ้นกับสคริปต์ของ bulljit:
front window
( window 1
) ซึ่งอาจเป็นหน้าต่างข้อมูลหรือหน้าต่างการตั้งค่า Finder window 1
จะเป็นหน้าต่างเบราว์เซอร์ไฟล์เสมอ/
หากหน้าต่าง Finder ที่อยู่ด้านหน้าสุดกำลังแสดงมุมมองที่ไม่มีเส้นทาง (เช่นมุมมองเครือข่าย)ฉันชอบเพียงใช้ฟังก์ชั่นเช่นนี้แม้ว่า:
cf () {
c "$(osascript -e 'tell application "Finder"
POSIX path of (target of Finder window 1 as alias
end tell)' 2> /dev/null)"
}