Câu trả lời:
Có một Terminal Terminal ở đây AppleScript mà bạn có thể sửa đổi để gọi iTerm thay thế. Bài đăng MacOSXH gợi ý này cũng hữu ích.
(Tôi không dùng máy Mac nếu không tôi sẽ kiểm tra.)
Bản thảo này hoạt động với tôi:
-- 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
Sử dụng các câu trả lời khác trên trang này, tôi đã tạo một Ứng dụng có thể được kéo vào thanh tác vụ của công cụ tìm.
Bạn có thể tải xuống từ đây: https://github.com/rc1/iTermTo
Điều này được tích hợp sẵn trong iTerm2 kể từ phiên bản 3.1.0.
Để sử dụng chức năng:
trong Finder, nhấp chuột phải vào thư mục -> Dịch vụ -> Cửa sổ iTerm2 mới Tại đây
Lưu ý: Services
menu con nằm ở dưới cùng của menu chuột phải.
Tham khảo
Tại liên kết này, nhấp vào Hiển thị các phiên bản cũ hơn , sau đó trong iTerm2 3.1.0, nhấp vào Hiển thị Changelog và tìm kiếm các dịch vụ , bạn sẽ tìm thấy điều này:
Thêm hỗ trợ cho các dịch vụ tìm kiếm. Bạn có thể nhấp chuột phải vào Finder để khởi chạy iTerm2 ở vị trí đó.
Hãy xem cdto
dự án được lưu trữ trên https://github.com/jbtule/cdto
"Ứng dụng Thanh công cụ Finder để mở thư mục hiện tại trong Terminal (hoặc iTerm, X11). Ứng dụng này được thiết kế (bao gồm biểu tượng của nó) để đặt vào thanh công cụ của cửa sổ tìm. "
Chỉ để hoàn thiện, trước khi tìm thấy câu hỏi này, điều làm việc cho tôi là:
Applescript Editor-> File-> Export-> File Format = .app
..app
thanh công cụ của Finder.Điều này dẫn đến một nút thanh công cụ Finder sẽ mở thư mục hiện tại trong iTerm2
tab mới . Xtra Downloader cung cấp một nút như vậy, nhưng nó sẽ mở các cửa sổ mới.
Một giải pháp tương tự sử dụng các dịch vụ có thể được tìm thấy ở đây , liên kết đến các giải pháp AppleScript liên quan hơn nữa:
AppleScript được điều chỉnh của tôi là:
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
Giải pháp này đã được nhận xét trong chủ đề liên quan đến nút này .
Nhờ câu trả lời của iTermTo ở trên.
Tôi đoán đó là vì nội bộ của iTerm đã thay đổi, nhưng không có giải pháp nào phù hợp với tôi. Mã đã làm gì sau đây:
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
Hoặc sử dụng Automator làm dịch vụ tìm kiếm:
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
Đây là một tập lệnh đơn giản hóa luôn mở một tab mới (như tập lệnh của 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
Nếu bạn muốn tập lệnh sử dụng lại các tab hiện có, hãy thay thế tell current terminal
khối bằng một cái gì đó như thế này:
tell current session of current terminal
write text "cd " & quoted form of p
end tell
Nhưng điều đó sẽ không hoạt động nếu ví dụ phiên hiện tại đang bận hoặc chạy một quy trình ít hoặc vim.
Gói kịch bản trong một khối thử làm cho nó thất bại trong âm thầm. reopen
mở một cửa sổ đầu cuối mới nếu không có cửa sổ hiển thị hoặc chỉ ví dụ như cửa sổ tùy chọn đang mở. Finder cũng có một insertion location
tài sản, thường là target of Finder window 1
hoặc máy tính để bàn. Nhưng có một lỗi trong 10.7 và sau đó, nơi nó thường đề cập đến một số cửa sổ khác ngoài cửa sổ ngoài cùng.
Một số vấn đề tiềm ẩn với kịch bản của bulljit:
front window
( window 1
), có thể là cửa sổ thông tin hoặc cửa sổ tùy chọn. Finder window 1
sẽ luôn luôn là một cửa sổ trình duyệt tập tin./
nếu cửa sổ Finder phía trước đang hiển thị chế độ xem không có đường dẫn (như chế độ xem Mạng).Tôi thích chỉ sử dụng một chức năng như thế này mặc dù:
cf () {
c "$(osascript -e 'tell application "Finder"
POSIX path of (target of Finder window 1 as alias
end tell)' 2> /dev/null)"
}