Eu acho que o título indica exatamente o que eu quero fazer. Quero um atalho ou mesmo um botão no Finder que inicie uma nova guia iTerm e altere o local para o local que abri no Finder. Algum tipo de ordem open .
inversa. :-)
Obrigado Malax
Há um terminal aberto aqui AppleScript que você deve poder modificar para chamar o iTerm. Esta publicação do MacOSXHints também deve ser útil.
(Eu não estou no meu Mac, caso contrário, eu o testaria.)
Este AppleScript funciona para mim:
-- 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
Usando as outras respostas desta página, criei um aplicativo que pode ser arrastado para a barra de tarefas do localizador.
Você pode baixá-lo aqui: https://github.com/rc1/iTermTo
fonte
Isso é incorporado ao iTerm2 a partir da versão 3.1.0.
Para usar a funcionalidade:
no Finder, clique com o botão direito do mouse em uma pasta -> Serviços -> Nova janela do iTerm2 aqui
Nota: o
Services
submenu fica na parte inferior do menu do botão direito.Referência
Neste link, clique em Mostrar versões mais antigas e , em iTerm2 3.1.0, clique em Mostrar registro de alterações e procure por serviços , você encontrará:
fonte
Dê uma olhada no
cdto
projeto hospedado no https://github.com/jbtule/cdto "aplicativo Finder Toolbar para abrir o diretório atual no Terminal (ou iTerm, X11). Este aplicativo foi projetado (incluindo seu ícone) para ser colocado em barra de ferramentas da janela do localizador ".fonte
Apenas por completude, antes de encontrar essa pergunta, o que funcionou para mim foi:
Applescript Editor-> File-> Export-> File Format = .app
..app
solte a barra de ferramentas do Finder.Isso resulta em um botão da barra de ferramentas do Finder, que abre o diretório atual em uma nova
iTerm2
guia. O XtraFinder oferece esse botão, mas abre novas janelas.Uma solução semelhante usando serviços pode ser encontrada aqui , com links para soluções AppleScript ainda mais relacionadas:
Meu AppleScript adaptado é:
Esta solução foi comentada neste tópico relacionado ao botão .
Graças à resposta do iTermTo acima.
fonte
Eu acho que é porque o interior do iTerm mudou, mas nenhuma das soluções funcionou para mim. O que fez foi o seguinte código:
Ou usando o Automator como um serviço localizador:
fonte
Com o iTerm:
Em Preferências de Iterm e na guia Perfis, vá para a subguia Geral, defina Diretório de Trabalho como “Reutilizar o diretório da sessão anterior”.
fonte
Aqui está um script simplificado que sempre abre uma nova guia (como o script de bulljit):
Se você deseja que o script reutilize as guias existentes, substitua o
tell current terminal
bloco por algo assim:Mas isso não funcionará se, por exemplo, a sessão atual estiver ocupada ou executando um processo less ou vim.
A quebra do script em um bloco try faz com que ele falhe silenciosamente.
reopen
abre uma nova janela do terminal se não houver janelas visíveis ou se apenas por exemplo a janela de preferências estiver aberta. O Finder também possui umainsertion location
propriedade, que geralmente étarget of Finder window 1
a área de trabalho. Mas há um bug na versão 10.7 e posterior, em que geralmente se refere a alguma outra janela além da janela da frente.Alguns problemas em potencial com o script de bulljit:
front window
(window 1
), que pode ser uma janela de informações ou uma janela de preferências.Finder window 1
sempre seria uma janela do navegador de arquivos./
se a janela do Finder mais à frente estiver exibindo uma exibição que não possui um caminho (como a exibição de rede).Eu prefiro apenas usar uma função como esta:
fonte