4 votes

Fenêtre de terminal dans Mac OS X

Est-il possible de créer un raccourci pour ouvrir une fenêtre de terminal dans un répertoire spécifique ? J'utilise gcc Je me sers beaucoup de ce logiciel pour créer de petits programmes en C, mais il est ennuyeux de devoir naviguer jusqu'au répertoire où se trouve mon code source. Existe-t-il un moyen de configurer un raccourci (ou quoi que ce soit d'autre) vers le terminal pour ouvrir la fenêtre dans un répertoire donné ?

Mise à jour : Ce problème m'échappe toujours. La réponse la plus votée est celle que je viens d'essayer de mettre en œuvre. Mais j'ai apparemment du mal à mettre en place ce qui serait le chemin $PROJECTDIR.

Supposons que les fichiers se trouvent dans l'emplacement suivant :

 /Documents/SVN Working Copies/School/Term-1/CSC-373/

Je peux m'y rendre quand je cd à chaque chose en soi, mais j'ai utilisé le joker :

cd doc*
cd svn*
cd *
cd *

Ce que j'ai essayé, c'est de faire (des choses comme) :

cd /Documents/SVN Working Copies/School/Term-1/CSC-373/  

(Lorsque j'ouvre la fenêtre du terminal, j'ai accès à Documents et j'ai donc pensé que je le ferais lors de la création du nouveau profil...

1voto

xLRDxREVENGEx Points 101

C'est drôle, j'ai utilisé les 3 réponses jusqu'à présent ;)

Voici une autre option : utiliser applescript. Vous pouvez créer des applescripts qui ouvrent une fenêtre dans le répertoire courant du finder par exemple.

J'ai plusieurs applescripts de ce type et je les ai liés à des raccourcis clavier avec Quicksilver (ou Butler).

par défaut, j'utilise un raccourci clavier qui ouvre un terminal dans le répertoire courant de finder, mais seulement si finder est l'application principale. Sinon, j'obtiens simplement une nouvelle fenêtre. J'ai aussi des scripts qui ouvrent des sessions ssh vers certains serveurs et se reconnectent à une session écran. Avec l'option -x de screen, on peut avoir plusieurs erminal Windows qui regardent le même terminal de serveur, super :)

EDIT :

Voici le script que j'ai écrit et qui ouvre une nouvelle fenêtre, allant dans le répertoire courant du Finder si le Finder est l'application active :

on run
    -- Figure out if we want to do the cd (doIt)
    -- Figure out what the path is and quote it (myPath)
    try
        tell application "Finder" to set doIt to frontmost
        set myPath to finder_path()
        if myPath is equal to "" then
            set doIt to false
        else
            set myPath to quote_for_bash(myPath)
        end if
    on error
        set doIt to false
    end try

    -- Figure out if we need to open a window
    -- If Terminal was not running, one will be opened automatically
    tell application "System Events" to set isRunning to (exists process "Terminal")

    tell application "Terminal"
        -- Open a new window
        if isRunning then do script ""
        activate
        -- cd to the path
        if doIt then
            -- We need to delay, terminal ignores the second do script otherwise
            delay 0.3
            do script "cd " & myPath in front window
        end if
    end tell
end run

on finder_path()
    try
        tell application "Finder" to set the source_folder to (folder of the front window) as alias
        set thePath to (POSIX path of the source_folder as string)
    on error -- no open folder windows
        set thePath to ""
    end try

    return thePath
end finder_path

-- This simply quotes all occurrences of ' and puts the whole thing between 's
on quote_for_bash(theString)
    set oldDelims to AppleScript's text item delimiters
    set AppleScript's text item delimiters to "'"
    set the parsedList to every text item of theString
    set AppleScript's text item delimiters to "'\\''"
    set theString to the parsedList as string
    set AppleScript's text item delimiters to oldDelims
    return "'" & theString & "'"
end quote_for_bash

Pour l'utiliser, ouvrez l'éditeur script et collez-le. Sauvegardez-le ensuite dans un endroit pratique (j'utilise ~/Library/script) et demandez à QuickSilver, Butler ou Google Quick Search Bar de l'exécuter. Avec QS et Butler, vous pouvez également définir des touches de raccourci globales.

J'espère que cela vous aidera,

Wout.

1voto

s014gr0 Points 27

Ce n'est pas vraiment une solution, mais saviez-vous que vous pouvez glisser-déposer un dossier ou un fichier dans le terminal et qu'il insérera le chemin d'accès à l'élément ?

Par exemple, tapez "cd" et déposez le dossier, puis appuyez sur la touche "retour".

0voto

Alexey Shcherbak Points 341

Si le problème est simplement que vous devez démarrer chaque session dans le terminal avec ceci : cd /a/very/very/annoyingly/long/path/name Dans ce cas, deux solutions s'offrent à moi.

  1. Placez ceci au bas de votre .profile (il se trouve dans le répertoire personnel de votre utilisateur) :

    cd /a/very/very/annoyingly/long/path/name

  2. Modifiez votre CDPATH . Cette méthode vous permet d'effectuer des changements de répertoire rapides sous forme de tableau. La mienne ressemble à ceci, par exemple, puisque la plupart de mon travail Shell se trouve dans les deux répertoires 'iliumSvn' ou 'unix.varia' :

    export CDPATH='.:~:~/iliumSvn/:~/unix.varia'

Je pense que la version 2 est plus propre et meilleure à long terme, mais l'une ou l'autre devrait faire l'affaire. Le problème avec le 1 est que si vos habitudes de travail changent, vous devrez vous rappeler de supprimer cette ligne, ou cela vous rendra fou chaque fois que vous ouvrirez un Shell.

0voto

Aron Rotteveel Points 27894

Je fais ce genre de choses avec DTerm http://www.decimus.net/dterm.php De cette façon, vous pouvez simplement appuyer sur une combinaison de touches à partir de l'éditeur dans lequel vous travaillez (Textmate dans mon cas) et vous obtenez une ligne de commande pour cet emplacement. Vous pouvez alors lancer une commande (par exemple make) et c'est tout ! Si vous voulez ouvrir un vrai terminal, il vous suffit de taper Commande+Retour au lieu de Retour et votre commande est exécutée dans ce répertoire dans une nouvelle fenêtre de terminal. Il me semble que c'est beaucoup plus facile que de jouer avec un tas de chemins d'accès, etc.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X