Texte sublime de la ligne de commande

200

J'ai installé Sublime Text et je voulais savoir comment y ouvrir des rbfichiers depuis le terminal. J'ai vu Quelle est la commande pour faire de Sublime Text mon éditeur principal? et je vois que je peux faire de Sublime mon éditeur principal, mais je veux pouvoir taper

sublime file.rb

Comment dois-je procéder sous Windows?

mehulkar
la source
2
le préfixe sublime n'est pas la partie importante. ce pourrait être n'importe quelle commande d'un seul mot.
mehulkar

Réponses:

156

À partir de la version 3065 (date de sortie: 29 août 2014), Sublime textinclut un assistant de ligne de commande, nameley subl.exe. Il se trouve dans le dossier d'installation de sublime: copiez-le dans un dossier inclus dans le chemin du système. Par exemple, dans mon cas, je l'ai copié

de C:\Program Files\Sublime Text 3

à C:\Windows\System32

Vous pouvez ensuite utiliser dans votre terminal / console sublcomme une commande pour ouvrir n'importe quel fichier, comme dans votre exemple:

subl file.rb

Ou vous pouvez aussi bien modifier votre PATHvariable système pour inclure le dossier d'installation de sublime, mais je crois que c'est beaucoup plus compliqué.

châteaux de sable
la source
60
Je dirais que l'ajout du répertoire d'installation de Sublime à PATHest un moyen plus pratique d'activer l'assistant de ligne de commande Sublime. De cette façon, vous vous assurerez que toutes les mises à jour seront automatiquement appliquées. La copie de l' subl.exeexécutable dans le répertoire Windows nécessitera de répéter la copie après chaque mise à jour.
edufinn
6
Maintenant. J'ai un problème. Cela ne fonctionne pas si le texte sublime n'est pas déjà ouvert.
châteaux de sable
4
Vous devriez voir ce scotch.io/tutorials/…
sandcastles
8
"Ou vous pouvez aussi bien modifier la variable PATH de votre système pour inclure le dossier d'installation de sublime, mais je pense que c'est beaucoup plus compliqué." Faites simplement un clic droit sur l'ordinateur. Sélectionnez les propriétés puis cliquez sur "Paramètres système avancés". À partir de là, allez à Variables d'environnement> Chemin d'accès et ajoutez; C: \ Program Files \ Sublime Text 3 Quelques étapes supplémentaires que je vous accorderai mais une astuce très facile et utile à savoir :)
Tom Wilkinson
9
Ou créez simplement un lien symbolique avecmklink c:\Windows\System32\subl.exe "c:\Program Files\Sublime Text 3\subl.exe"
Kwadz
196

Invite de commandes Windows

Pour Windows cmd.exe, vous pouvez simplement ajouter le répertoire d'installation du texte sublime à votre variable d'environnement PATH, cela vous permettrait de taper:

sublime_text file.rb

Personnellement, j'ajoute un doskey (dans un fichier .bat réglé sur autorun avec cmd ) pour pouvoir taper subl file.rb:

> doskey subl="C:\Program Files\Sublime Text 2\sublime_text.exe" $*

Cygwin

Pour le shell bash par défaut, ajoutez un alias à votre ~/.bashrcfichier, par exemple:

$ echo 'alias subl="/cygdrive/c/Program\ Files/Sublime\ Text\ 2/sublime_text.exe"' >> ~/.bashrc
pjumble
la source
1
Dois-je également configurer un doskey pour cygwin? ou existe-t-il une autre façon de procéder. je n'utilise pas windows cmd
mehulkar
8
Ah, mon erreur, j'ai supposé que vous utilisiez cmd. Utilisez-vous le shell bash par défaut fourni avec cygwin? Si c'est le cas, vous pouvez simplement utiliser un alias comme le post $ echo 'alias subl="/cygdrive/c/Program\ Files/Sublime\ Text\ 2/sublime_text.exe"' >> ~/.bashrc
auquel
cela pourrait aussi aider rhyous.com/2010/10/20/…
Miguel
1
le lancement de SL2 à partir de la ligne de commande de cette façon fait que ma copie SL2 démarre avec un paramètre de préférences utilisateur vide. quelqu'un a eu le même problème?
2012
3
notez que si vous faites cela, vous pouvez avoir ce problème avec les systèmes de build. J'ai utilisé un simple fichier .bat dans le dossier sublime à la place et je l'ai mis sur le PATH, fonctionne mieux, pas de problèmes de système de construction.
eis
136

J'ai ajouté ceci à mon profil PowerShell :

Set-Alias subl 'C:\Program Files\Sublime Text 2\sublime_text.exe'

Modifiez-le si nécessaire pour Sublime Text 3 (ou toute version future).

Kristopher Johnson
la source
3
Génial! Une fois que je suis passé à PowerShell ... je ne me suis jamais retourné vers cmd.
imlokesh
Merci beaucoup. Je trouve PowerShell très convivial pour les développeurs venant du monde Linux / Mac
Antony
excellente réponse .. simple et direct +1
Robbo_UK
Oui, pour PowerShell, cela fonctionne très bien. Pour cmd, vous devez toujours ajouter le chemin sublime_text.exedans le chemin Windows
MwamiTovi
55

Une autre idée serait d'inclure C:\Program Files\Sublime Text 2\dans votre PATH, puis d'exécuter une invite de commande administrateur:

cd "C:\Program Files\Sublime Text 2\"
mklink sublime.exe sublime_text.exe

Cela fera un lien symbolique avec le nouveau nom. Et maintenant, vous pouvez l'utiliser librement:

sublime hello.txt

Mise à jour : Après avoir eu l'occasion d'utiliser cette astuce et de mettre à jour Sublime Text 2, je suis heureux de dire que la mise à jour vers une nouvelle version n'affecte pas le lien symbolique.

John Nelson
la source
5
Btw, vous élevez vos privilèges Windows (7) en appuyant sur Ctrl-Maj-Entrée après avoir tapé cmd dans la zone de texte Démarrer | Exécuter ...
likethesky
Ceci est exactement ce que je cherchais. Très rapide et propre
C.Zeng
25

J'ai créé subl.bat dans C: \ Program Files \ Sublime Text 2 avec le contenu:

start sublime_text.exe %*

Maintenant que j'ai C: \ Program Files \ Sublime Text 2 dans PATH, je peux simplement taper 'subl folder' et cela fonctionne à merveille sans avoir à ajouter quoi que ce soit au démarrage automatique.

mblsha
la source
Merci beaucoup pour le "dossier sublime". Je ne savais pas que :)
y0prst
1
J'ai changé subl.bat en "start sublime_text.exe% *" et maintenant il ne bloque pas ma console.
y0prst
Au lieu du fichier .bat, vous pouvez simplement créer un raccourci et le nommer comme vous le souhaitez sans les extensions. Au moins, cela a fonctionné pour moi sur Windows 7.
secousse le
@psycketom pouvez-vous développer. J'ai créé un raccourci vers l'exe de sublime 2 dans mon répertoire de projet et l'ai appelé subl. maintenant lors de l'exécution de subl dans ma console, il dit non reconnu comme une commande externe ou interne. Seule la commande "start subl" ouvrira le programme
Postscripter
1
@Postscripter Il signifie qu'il est allé dans Control Panel-> System-> Advanced System Settings-> Environment Variables-> et a ajouté le texte C:\Program Files\Sublime Text 2;à la fin de la valeur de la variable PATH.
Cory Gross
18

Je pense que c'est plus facile de définir la variable d'environnement dans Windows.

Ensuite, ajoutez simplement une nouvelle variable système appelée SUBLIME_HOME avec la valeur "C: \ Program Files \ Sublime Text 2 \" (sans guillemets) après avoir édité la variable Path en ajoutant à la fin cette valeur ";% SUBLIME_HOME%" (sans guillemets) .

Redémarrez le git BASH et profitez, en utilisant comme ceci:

$ sublime_text mi-new-file

(où sublime_text est la commande)

Remarque: Fonctionne également maintenant pour cmd de Windows.

glrodasz
la source
1
Très belle solution. Propre, rapide, facile, sans jouer avec mon principal %PATH%. Fonctionne très bien aussi, fonctionne sur l'invite cmd régulière (avec sublime_text), PowerShell, Git Shell de GitHub et Git Bash (les trois derniers avec sublime_text.exe). Échoue cependant sur Cygwin, probablement parce qu'il utilise un système de chemin différent. Quelqu'un sait-il que l'ajout d'un chemin cygwin comme, /cygdrive/c/sublime text 2à mes variables d'environnement système causera des problèmes (je voudrais juste l'ajouter à ce que %SUBLIME_HOME%j'ai fait ci-dessus)?
hjc1710
17

Ajoutez le dossier d'installation au chemin Windows et vous pourrez ouvrir Sublime en tapant le nom du fichier exécutable, qui est par défaut " subl".

Pour inclure le dossier d'installation de Sublime dans le chemin Windows,

  1. Ouvrez l'invite de commande et tapez sysdm.cpl
  2. Dans l'onglet Avancé, sélectionnez Environment variables
  3. Sous variables système, sélectionnez la variable nommée " Path" et cliquez sur Edit.
  4. Ajoutez " C:\Program Files\Sublime Text 3;" à la fin de la chaîne existante.
  5. Enregistrez les modifications et redémarrez l' invite de commande.
ben_joseph
la source
10

Je sais que ce fil est un peu ancien, mais j'ai récemment proposé cette solution et j'ai pensé la partager ...

Si vous utilisez Cygwin, vous pouvez créer un script bash qui convertira les chemins d'accès unix en chemins Windows et les passera en sublime. Collez ce qui suit dans un nouveau fichier:

#!/bin/bash

/cygdrive/c/Program\ Files/Sublime\ Text\ 2/sublime_text.exe `cygpath -w $@` &

Enregistrez-le dans /usr/bin/subl(ou où vous voulez tant que l'emplacement est dans votre $PATH) et rendez-le exécutable ( $ chmod a+x /usr/bin/subl)

Avec ce script, vous pouvez utiliser les chemins de style UNIX et Windows ( /cygdrive/c/ou C:/) car l' cygpathutilitaire convertit les alias de chemin /et ~en leurs équivalents Windows.

Maintenant, vous pouvez utiliser $ subl file1.txt file2.md ~/file3.txtpour ouvrir ces fichiers en sublime!

Josh
la source
10

La réponse acceptée ne semble pas fonctionner, du moins pour Sublime Text 3 sous Windows 7. La copie directe du fichier dans C:\Windows\System32permet sublde résoudre correctement le problème à partir du shell, mais lorsque je l'exécute, rien ne se passe.

J'ai eu plus de succès avec un lien dur:

mklink /h c:\windows\system32\subl.exe "c:\Program Files\Sublime Text 3\subl.exe"

Avec cela, subl <file.txt>et les subl <directory>deux fonctionnent bien.

pneumatique
la source
voter pour cette réponse, mais je n'ai pas de machine Windows pour tester cela.
mehulkar
1
@mehulkar, je teste la méthode du hardlink, ça ne marche pas pour moi
Weijing Jay Lin
1
Fonctionne très bien pour moi - Windows 10 et ST3
Nate Beers
7

J'essaye Ruby sur des rails dans des fenêtres et j'inclus le CHEMIN C:\Program Files\Sublime Text 2\, puis je change le nom sublime.exeensubl.exe.

a bien fonctionné en cmd régulier et "invite de commande avec rubis et rails" cmd

user1973194
la source
5

J'ai créé un simple fichier batch (s.bat) dans le répertoire windows pour démarrer le texte sublime

Voici le code que j'ai mis dans le fichier batch pour démarrer Sublime Text 2

@start "sublime" "%ProgramW6432%\Sublime Text 2\sublime_text.exe" %*

J'appelle sublime en tapant

s

J'ouvre directement un fichier en utilisant

s filename.ext
Clooner
la source
5

Je viens d'exécuter le programme d'invite de commandes en tant qu'administrateur et d'exécuter la commande suivante.
Simple, mais fonctionne pour moi.

echo "c:\Program Files\Sublime Text 3\subl.exe" %1 > %systemroot%\system32\subl.bat

Bien sûr, vous pouvez appeler le fichier bat comme vous le souhaitez. Dès lors, comme tout utilisateur, vous pouvez simplement utiliser:

subl myfile.txt
digarok
la source
5

Si vous utilisez Cmder, vous pouvez ajouter l'alias à votre fichier d'alias, qui se trouve là où vous avez installé cmder, puis config \ aliases

Vous pouvez ensuite ajouter (c'est pour le texte sublime 3)

subl="C:\Program Files\Sublime Text 3\sublime_text.exe" $1

Depuis Cmder, vous pouvez ensuite ouvrir n'importe quel répertoire en sublime via

subl="C:\Program Files\Sublime Text 3\sublime_text.exe" $1
Samwise
la source
4

essaye ça:

alias subl='"/c/Program Files/Sublime Text 2/sublime_text.exe"'

assurez-vous que le sublime installe quel répertoire. Il va créer l'alias pour sublime puis taper:

subl file.rb
Vishnu Mishra
la source
3

Je voulais démarrer une nouvelle instance de Sublime Text à partir de la ligne de commande. La page suivante m'a aidé, même si elle ne dit que OSX: http://www.sublimetext.com/docs/3/osx_command_line.html .

Donc, j'utilise un fichier batch dans mon chemin utilisateur pour lancer «sublime». Voici essentiellement ce que j'utilise (** le contenu du fichier batch):

@start "sublime" "%~dp0Sublime Text\sublime_text.exe" --new-window %*

(mon fichier de commandes %~-dp0se trouve un dossier au-dessus du chemin d'installation de Sublime Text.)

Je sais que c'est un vieux fil, mais j'ai pensé ajouter ce que je cherchais (et j'ai trouvé). Cela pourrait aider quelqu'un d'autre!

sorcier
la source
3

Partant de la réponse la plus acceptée, mais dont l'auteur a malheureusement dit que la modification du CHEMIN est "difficile" - ce n'est pas du tout. C'est très facile. Je viens de le faire, et vous aussi!

Voici quoi faire:

Accédez à votre répertoire de texte sublime dans l'Explorateur Windows et copiez le chemin complet à partir de la barre de chemin.

Par exemple, j'ai quelques outils de développement configurés comme applications portables dans Dropbox, j'ai donc copié le chemin:

C:\Users\username\Dropbox\Programs\Sublime Text Build 3114 x64

Allez dans Panneau de configuration-> Système-> Paramètres système avancés-> Variables d'environnement

Dans la fenêtre résultante, accédez à "chemin" dans la fenêtre du bas, mettez-le en surbrillance et cliquez sur "Modifier".

Dans la fenêtre qui apparaît, cliquez sur "Nouveau", collez votre chemin Sublime Text et cliquez sur "OK".

Maintenant, ouvrez CMD ou Powershell et tapez subl

La fenêtre Sublime Text devrait s'ouvrir. Prendre plaisir!

Remarque: j'ai remarqué que quelqu'un d'autre a répondu à cette question de la même manière, mais j'ai utilisé un emplacement fixe pour Sublime Text. Cela peut fonctionner pour certaines personnes, mais pour d'autres, les directions seront erronées. Le fait est que l'emplacement Sublime Text peut être n'importe où sur le lecteur, et savoir où il se trouve et copier cet emplacement particulier est l'une des parties les plus importantes de l'attribution de la variable PATH.

AveryFreeman
la source
3
  • Définissez le chemin d'accès pour sublime: Poste de travail >> propriétés >> paramètres avancés >> variables d'environnement >> variable de chemin >> Ajouter >> C:\Program Files\Sublime Text 3

  • Allez simplement dans le répertoire où sublime est installé et renommez sublime_text en sublime.

Ouvrez l'invite de commande et tapez sublime.

pratik_nalage
la source
2

Vous pouvez simplement installer Notepad Replacer http://www.binaryfortress.com/NotepadReplacer/ ce qu'il fera est de sublimer votre bloc-notes par défaut dans Windows, puis vous pouvez simplement utiliser les commandes que vous utilisez généralement pour ouvrir le bloc-notes intégré dans Windows. par exemple

`//to open test.txt, just type
notepad test.txt
//to open sublime, Type
notepad`
Pankaj Barnwal
la source
2

ajoutez le dossier d'installation de Sublime à votre chemin. @set PATH=C:\Program Files\Sublime Text 3;%PATH%

ou

Pour définir une variable d'environnement de façon permanente dans Windows (afin qu'elle soit disponible pour tous les processus Windows),

start the "Control Panel" ⇒ "System" ⇒ (Vista/7/8) "Advanced system settings" ⇒ Switch to "Advanced" tab ⇒ "Environment variables" ⇒ Choose "System Variables" (for all users) or "User Variables" (for this login user only) ⇒ Choose "Edit" (for modifying an existing variable) or "New" (to create a new variable) ⇒ Enter the variable "Name" and "Value".

dans ce cas, ajoutez C: \ Program Files \ Sublime Text 3 au chemin.

Maintenant, peut faire une copie de 'sublime_text.exe' en tant que 'sublime.exe'

Ensuite, dans n'importe quelle invite de commande, vous pouvez exécuter un fichier file.txt en

C:\Users\MyUsername>sublime filename.txt
Giovanni Dappa Hosang
la source
2
  1. Dans la variable d'environnement, j'ai également ajouté une %SUBLIME_HOME%variable à la variable de chemin

  2. Puis fait un lien symbolique depuis mon terminal de commande

mklink sb sublime_text.exe
pensebien
la source
2

créer dans le registre:

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ App Paths \ sublime.exe

mettre à jour la valeur du paramètre par défaut (REG_SZ) en:

C: \ Program Files \ Sublime Text 2 \ sublime_text.exe

discours
la source
1

Ce PowerShell me permet de diriger vers la fonction d'édition (ou de l'utiliser normalement)

function edit
{
    param( [Parameter(ValueFromPipeline=$true,Position=0)] $file )
    begin { set-alias EDITOR 'W:\tools\sublime_text.bat' }
    process { EDITOR $file }
}

voici le sublime_text.batqui pour une raison quelconque semble nécessaire (quelqu'un sait pourquoi?)

START "Sublime Text 2" "C:\Program Files\Sublime Text 2\sublime_text.exe" %*
George Mauer
la source
1

Creux tout le monde.

Je construis un moyen très simple de le faire.

page github du projet

téléchargez simplement "install.bat" et faites un clic droit sur install.bat -> cliquez sur "exécuter en tant qu'administrateur"

séjour
la source
1

Si vous ne voulez pas changer votre chemin, vous pouvez associer des fichiers avec sublime. Faites donc un clic droit sur le fichier, cliquez sur les propriétés, puis cliquez sur s'ouvre avec un texte sublime.

Depuis la ligne de commande: myFile.py

Va ouvrir le fichier en sublime. Je suppose que cela vous fait économiser environ cinq frappes.

jdeyrup
la source
1
    @echo off
    :: File: TextFiles.Starter.DESKTOP-M175NUE.cmd v1.1.0 docs at the end 

    :: this just an iso-8601 wrapper for windows:
    :: src: http://www.cs.tut.fi/~jkorpela/iso8601.html
    call GetNiceTime.cmd

    :: go the run dir
    cd %~dp0z

    :: this is the dir containing the batch file
    set _MyDir=%CD%

    :: look around , set vars
    for %%A in (%0) do set _MyDriveLetter=%%~dA
    for %%A in (%0) do set _MyPath=%%~pA
    for %%A in (%0) do set _MyName=%%~nA
    for %%A in (%0) do set _MyEtxtension=%%~xA

    :: contains absolute file paths of the files to open like this
    set _ListFile=%_MyDir%\%_MyName%.lst
    :: example of lines in the list file - take out the ::space
    :: C:\Users\ysg\Desktop\TextFiles.Starter.DESKTOP-M175NUE.cmd
    :: C:\Users\ysg\Desktop\TextFiles.Starter.DESKTOP-M175NUE.lst


    :: set _Program="C:\Program Files\TextPad 8\TextPad.exe"
    set _Program="C:\Program Files\Sublime Text 3\sublime_text.exe"
    set _
    :: DEBUG PAUSE

    :: sleep 2
    ping -n 2 www.google.com > NUL

    :: for each line of the cat file do open 
    :: for TextPad , obs note the quoting 
    :: for /f "tokens=*" %%i in ('type "%_ListFile%"') do ^
    :: cmd /c "%_Program% "%%i""

    :: for sublime, obs note the quoting 
    for /f "tokens=*" %%i in ('type "%_ListFile%"') do ^
    cmd /c "%_Program% -t "%%i""
    :: DEBUG PAUSE

    :: Purpose: 
    :: to start a list of non-binary files from a list file on Windows 10
    :: Tested on Windows 10, should work on Win7 too
    :: 
    :: Requirements:
    :: TextPad 8 or Sublime
    :: 
    :: 
    :: Usage: 
    :: copy this file onto your Desktop, list the absolute paths in to the list file 
    :: change the program name in the _Program if if you want other editor
    :: 
    :: VersionHistory: 
    :: 1.1.0 --- 2017-10-06 09:42:54 --- ysg --- added sublime 
    :: 1.0.1 --- 2013-04-15 08:19:10 --- ysg --- added - todo-%today%.txt file opening
    :: 1.0.0 --- 2012-05-23 09:08:57 --- ysg -- Initial creation 
Yordan Georgiev
la source
Bonjour merci d'avoir essayé de répondre à cette question, quelqu'un a signalé votre message pour suppression, pouvez-vous expliquer brièvement comment le purposedécrit dans votre code résout le problème de l'OP?
James Wong - Rétablir Monica le
0

allez dans l'environnement et ajoutez un dossier de texte sublime au répertoire du chemin du système, n'ajoutez rien au répertoire du système 32, c'est juste un gâchis, après cela, vous pouvez taper '' 'subl mytext.txt' '' en cmd.

amir shakiba
la source
1
C'est la solution la plus précise pour Windows, merci!
JohnnyQ
0

Voici ce qui a fonctionné pour moi en PowerShell:

# CHECK IF YOUR ALIAS FOR SUBLIME TEXT 3 EXISTS
Get-Alias subl

# REMOVE YOUR ALIAS FOR SUBLIME TEXT 3 IF IT EXISTS
# REF 1
Remove-Item alias:subl

# SET YOUR ALIAS FOR SUBLIME TEXT 3
Set-Alias subl -Value "C:\Program Files\Sublime Text 3\sublime_text.exe"

# CREATE A TEST FILE ON YOUR Desktop
# REF 2
echo "Testing`nNew`nFile`n." > $HOME\Desktop\TestFile.txt

# TEST YOUR NEW ALIAS
subl $HOME\Desktop\TestFile.txt

C'est le moyen le plus simple de configurer et de tester le alias. Si vous voulez garder cela contre votre profil, essayez ceci:

# TO PERMANENTLY KEEP EVERYTIME YOU OPEN POWERSHELL PLEASE ADD TO YOUR PROFILE. BUT FIRST VERIFY YOUR PROFILE `FILE` EXISTS, IF NOT THEN THIS WILL CREATE IT.
# REF 3 & 4
if (!(Test-Path -Path $PROFILE.CurrentUserAllHosts)) {New-Item -ItemType File -Path $PROFILE.CurrentUserAllHosts -Force}

# open powershell PROFILE
ise $PROFILE.CurrentUserAllHosts

# Add the Set-Alias to your file
Set-Alias subl -Value "C:\Program Files\Sublime Text 3\sublime_text.exe"

REF 1 Remove-Alias: https://superuser.com/q/883914/247728

REF 2 Newline: https://stackoverflow.com/a/36738723/1896134

REF 3 https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_profiles?view=powershell-5.1

REF 4 https://devblogs.microsoft.com/scripting/understanding-the-six-powershell-profiles/

Système d'exploitation (OS): Windows 10 Pro

JayRizzo
la source