web-dev-qa-db-fra.com

Problèmes liés à l'utilisation de la commande subl dans le terminal: "Commande introuvable" & "Aucun fichier ni répertoire"

Je tiens à m'excuser par avance qu'il s'agit d'une question d'internaute! J'ai passé les 2 dernières heures à essayer de trouver une solution.

J'ai deux problèmes (je suis sûr lié). 

Contexte: 

Voici à quoi ressemble mon $ PATH:

/Users/Sponsi/.rvm/gems/Ruby-1.9.3-p194/bin:/Users/Sponsi/.rvm/gems/Ruby-1.9.3-p194@global/bin:/Users/Sponsi/.rvm/ rubies/Ruby-1.9.3-p194/bin: /Users/Sponsi/.rvm/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/usr/X11/bin

Problème n ° 1

J'essaie d'utiliser la commande de ligne de commande "subl" pour lancer Sublime Text 2 sur OSX.

J'ai entré la commande suivante: "ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" ~/bin/subl

Cela a seulement fonctionné à mi-chemin - quand j'entre "sous" je reçois "Commande non trouvée". Mais quand je ré-entre dans la commande ci-dessus, il dit "existe déjà."

J'ai cherché en ligne et trouvé un correctif (un peu). J'ai ajouté ce qui suit à mon .bashrc:

echo 'export PATH="./bin:$PATH"' >> ~/.bashrc 
source ~/.bashrc

L'utilisation de la commande "subl" fonctionne, mais seulement temporairement. Si je quitte le terminal ou passe à un autre répertoire, il cesse de fonctionner (ce qui m'amène au problème n ° 2, voir ci-dessous.)

Problème n ° 2:

Lorsque j'essaie d'extraire un fichier sous un autre répertoire à l'aide de la commande "subl", j'obtiens "-bash: ./bin/subl: Aucun fichier ou répertoire de ce type" J'ai confirmé que le fichier que je souhaite modifier existe.

BTW, je suis le tutoriel Ruby trouvé @ http://Ruby.railstutorial.org/Ruby-on-Rails-tutorial-book

Merci beaucoup pour votre temps!

43
Ralitza

Exécutez chaque commande dans le terminal (dans cet ordre):

$ Sudo rm -rf /usr/local/bin/subl
$ Sudo ln -s /Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl /usr/local/bin
$ subl .

Cela devrait marcher!

Remarque: Tout d'abord, vérifiez que l'application de votre sublime est dans le dossier Applications et que son nom est Sublime Text 2. Sinon, vous devez modifier le nom dans la deuxième commande et taper le nom de l'application de sublime.

129
isanjosgon

si vous utilisez RVM, procédez comme suit:

ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" ~/.rvm/bin/subl
94
Bob Walsh

J'ai collé le mien dans/usr/bin

Sudo ln -s /Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl /usr/bin

ou pour Sublime 3 ou plus tard

Sudo ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/bin

C'est déjà dans $ PATH

24
Rimian

Pour El Captain ou plus tard OS:

Dans El Capitan , vous n'êtes pas autorisé à écrire dans/usr/bin, mais écrire dans/usr/local/bin est correct. Par défaut,/usr/local/bin devrait également figurer dans votre variable de chemin.

Pour Sublime Text 3

Sudo rm /usr/local/bin/subl
Sudo ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin/subl

Pour Sublime Text 2

Sudo rm /usr/local/bin/subl
Sudo ln -s /Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl /usr/local/bin/subl
18
Rahul Arora

J'ai eu le même problème, sur un nouveau Mac récemment configuré. J'avais RVM installé avant oh-my-zsh et le texte sublime et je rencontrais les mêmes problèmes. J'ai essayé différents endroits sur le chemin

/usr/bin
/usr/local/bin

tous dans le chemin. Ce qui a fonctionné pour moi a été de supprimer les guillemets de la ligne de commande en tant que

Sudo ln -s /Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl /usr/bin/subl
7
nuin

Si vous utilisez Sublime Text 3 vous devez ajuster les commandes dans la réponse de isanjosgon:

$ Sudo rm -rf /usr/local/bin/subl
$ Sudo ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin/
$ subl .
6
Naguib Ihab

Vous pouvez également créer un nouvel alias si vous le souhaitez 

alias subl = "/ Applications/Sublime\Text.app/Contents/SharedSupport/bin/subl"

2
Pankaj Agrawal

Editez votre fichier ~/.bashrc pour qu'il contienne cette ligne à la fin:

export PATH="$HOME/bin:$PATH

Notez que le ~ existe-t-il à la place du . de votre exemple? Le ~ signifie votre répertoire personnel, c'est-à-dire l'emplacement de votre fichier .bashrc. Le point représente le répertoire current de la fenêtre de votre terminal.

Une fois la modification effectuée, fermez la fenêtre de votre terminal et rouvrez-la. Alors subl devrait être disponible sur le PATH.

2
Jeremy

En ce qui concerne votre premier problème, se pourrait-il que vous n’ayez pas de répertoire bin configuré sous votre répertoire personnel (c.-à-d. ~/Bin)? Pour vérifier cela, tapez ce qui suit:

cd ~/
ls -l

S'il n'y a pas de répertoire bin, tapez ce qui suit:

mkdir bin

Une fois que vous avez créé le répertoire, retapez ce qui suit:

subl --help

Espérons que cela règle le problème

2
Sean Crockett

Le chemin a légèrement changé par rapport à celui de la réponse acceptée à la suite d'une mise à jour de Sublime Text.

ln -s "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" ~/.rvm/bin/subl

1
Peter Hastie
$ alias subl="/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl"

$ subl . Cela fonctionne! :RÉ

0
Raj

La raison pour laquelle lorsque vous avez changé de répertoire ou que vous avez rouvert le terminal, le PATH ne fonctionne pas, c'est que .bashrc est un fichier interactif sans connexion.

Utilisez simplement cette ligne dans le terminal:

echo 'export PATH=$PATH:~/bin' >> ~/.bash_profile

résoudra probablement le problème car .bash_profile est chargé à chaque connexion.

si vous n'avez pas .bash_profile, juste avant d'utiliser la commande ci-dessus, tapez ceci dans Terminal:

cd ~
touch .bash_profile

utilisez ensuite la commande formelle.

Je ne toucherais généralement pas usr/local/bin car il s’agit d’un dossier de niveau système. Entendu dire que récemment dans OS X El Capitan, Apple a imposé des restrictions d’autorisation… .. Il suffit donc de placer le clone dans votre répertoire personnel sous le dossier/bin et d’ajouter le PATH dans votre fichier .bash_profile, tout devrait alors fonctionner.

0
itachiluan

Dans linux sublime 3, dans votre terminal

Sudo ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/bin

Ensuite 

subl3 [filename]
0
Vimm Rana