MacOS X : 편리한 "iTerm에서이 폴더 열기"바로 가기를 만드는 방법?


12

제목에 내가하고 싶은 일이 정확히 있다고 생각합니다. 새로운 iTerm 탭을 실행하고 Finder에서 열린 위치로 위치를 변경하는 Finder 내의 바로 가기 또는 버튼이 필요합니다. 일종의 open .역이다. :-)

감사합니다, Malax

답변:



10

이 사과는 나를 위해 작동합니다 :

-- 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

1
나는 이것이 받아 들여야 할 답변이라고 생각합니다.
dhilipsiva

8

이 페이지의 다른 답변을 사용하여 파인더 작업 표시 줄로 드래그 할 수있는 앱을 만들었습니다.

https://github.com/rc1/iTermTo 에서 다운로드 할 수 있습니다.


1
잘 했어! 완벽하게 작동합니다. 이것이 정답입니다.
rcd

1
동의합니다-완벽하게 작동하는 것 같습니다. zip을 다운로드하십시오. 설치할 응용 프로그램을 응용 프로그램 폴더로 드래그하십시오. 편리한 바로 가기를 위해 응용 프로그램을 파인더 도구 모음으로 드래그하십시오.
justingordon

3

버전 3.1.0부터 iTerm2에 내장되어 있습니다.

기능을 사용하려면 :
Finder에서 폴더-> 서비스-> 새 iTerm2 창을 마우스 오른쪽 단추로 클릭하십시오.

참고 : Services하위 메뉴는 마우스 오른쪽 버튼 클릭 메뉴의 맨 아래에 있습니다.

참조
링크에서는 클릭 보기 이전 버전을 다음에서, 3.1.0 iTerm2 클릭 표시 변경 내역 과에 대한보기 서비스는 , 당신이 찾을 수 있습니다 :

파인더 서비스에 대한 지원을 추가하십시오. Finder에서 마우스 오른쪽 버튼을 클릭하여 해당 위치에서 iTerm2를 시작할 수 있습니다.


2

https://github.com/jbtule/cdto "Finder Toolbar 앱에서 cdto호스팅 되는 프로젝트를 살펴보고 터미널 (또는 iTerm, X11)에서 현재 디렉토리를 엽니 다.이 앱은 (아이콘 포함) 파인더 창의 툴바 "


그러나 그것은 잠시 후에 매우 성가신 두 개의 iTerms 창을 엽니 다.
Mike Lischke

1

완전성을 위해이 질문을 찾기 전에 나에게 도움이 된 것은 다음과 같습니다.

  • 적응 new_tab.sh 애플 스크립트 전용 솔루션 (애플 스크립트는 bash는 스크립트에 의해 발행).
  • 다음에서 Applescript Editor-> File-> Export-> File Format = .app.
  • .appFinder의 툴바로 끌어다 놓습니다.

그러면 Finder 도구 모음 단추가 나타나고 현재 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

이 솔루션은 이 버튼 관련 스레드 에서 주석 처리되었습니다 .

위 의 iTermTo 답변에 감사드립니다 .


1

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

0

iTerm으로 :

용어 기본 설정 및 프로파일 탭에서 일반 하위 탭으로 이동하여 작업 디렉토리를“이전 세션 디렉토리 재사용”으로 설정하십시오.


0

다음은 항상 새 탭을 여는 간단한 스크립트입니다 (예 : 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

그러나 현재 세션이 사용 중이거나 덜 또는 vim 프로세스를 실행하는 경우에는 작동하지 않습니다.

try 블록에 스크립트를 래핑하면 자동으로 실패합니다. reopen보이는 창이 없거나 예를 들어 환경 설정 창이 열려있는 경우 새 터미널 창을 엽니 다. Finder에는 insertion location일반적으로 target of Finder window 1또는 데스크탑 인 속성이 있습니다. 그러나 10.7 이상에는 종종 맨 앞 창 이외의 다른 창을 나타내는 버그가 있습니다.

bulljit의 스크립트와 관련된 몇 가지 잠재적 인 문제 :

  • 1 초 지연됩니다. 뭔가 필요한지 모르겠지만이 스크립트를 테스트 할 때 지연이 필요하지 않았습니다.
  • 전체 화면에서 새 창을 열도록 iTerm을 설정했는데 열려있는 창이없는 경우 전체 화면이 아닌 창이 열립니다.
  • Finder에게 front window( window 1) 의 경로를 가져 오도록 지시 합니다. 정보 창 또는 환경 설정 창일 수 있습니다. Finder window 1항상 파일 브라우저 창입니다.
  • /최전방 파인더 창에 경로가없는보기 (네트워크보기 등)가 표시되면 디렉토리가 변경 됩니다.

그래도 다음과 같은 기능을 사용하는 것이 좋습니다.

cf () {
  c "$(osascript -e 'tell application "Finder"
    POSIX path of (target of Finder window 1 as alias
  end tell)' 2> /dev/null)"
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.