Testo sublime dalla riga di comando


200

Ho installato Sublime Text e volevo sapere come aprire i rbfile dal terminale. Ho visto Qual è il comando per rendere Sublime Text il mio editor principale? e vedo che posso fare di Sublime il mio editor principale, ma voglio poter scrivere

sublime file.rb

Come posso farlo in Windows?


2
il prefisso sublime non è la parte importante. potrebbe essere davvero un comando di una sola parola.
Mehulkar,

Risposte:


156

Dalla build 3065 (data di rilascio: 29 agosto 2014) in poi Sublime textinclude un helper della riga di comando, nameleysubl.exe . È nella cartella di installazione sublime: copiarlo in una cartella inclusa nel percorso di sistema. Ad esempio, nel mio caso l'ho copiato

a partire dal C:\Program Files\Sublime Text 3

per C:\Windows\System32

È quindi possibile utilizzare nel proprio terminale / console sublcome comando per aprire qualsiasi file, ad esempio nel proprio esempio:

subl file.rb

Oppure puoi anche modificare la PATHvariabile di sistema per includere la cartella di installazione sublime, ma credo che sia molto più coinvolto.


60
Direi che l'aggiunta della directory di installazione di Sublime PATHè un modo più conveniente per abilitare l'helper della riga di comando di Sublime. In questo modo ti assicurerai che tutti gli aggiornamenti verranno applicati automaticamente. La copia subl.exedell'eseguibile nella directory di Windows richiederà la ripetizione della copia dopo ogni aggiornamento.
Edufinn,

6
Adesso. Ho un problema Questo non funziona se il testo sublime non è già aperto.
castelli di sabbia

4
Dovresti vedere questo scotch.io/tutorials/…
sandcastles

8
"Oppure puoi anche modificare la variabile PATH di sistema per includere la cartella di installazione sublime, ma credo che sia molto più coinvolto." Basta fare clic destro su Computer. Seleziona le proprietà quindi fai clic su "Impostazioni di sistema avanzate". Da lì Vai a Variabili d'ambiente> Percorso e append; C: \ Programmi \ Sublime Text 3 Pochi passi in più ti concederò ma un trucco molto semplice e utile da sapere :)
Tom Wilkinson,

9
O semplicemente creare un mklink c:\Windows\System32\subl.exe "c:\Program Files\Sublime Text 3\subl.exe"
collegamento

196

Prompt dei comandi di Windows

Per Windows cmd.exe potresti semplicemente aggiungere la sublime directory di installazione del testo alla tua variabile d'ambiente PATH, questo ti permetterebbe di digitare:

sublime_text file.rb

Personalmente, aggiungo un doskey (in un file .bat impostato su autorun con cmd ) in modo da poter digitare subl file.rb:

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

Cygwin

Per la shell bash predefinita aggiungi un alias al tuo ~/.bashrcfile, ad esempio:

$ echo 'alias subl="/cygdrive/c/Program\ Files/Sublime\ Text\ 2/sublime_text.exe"' >> ~/.bashrc

1
Devo impostare un doskey anche per Cygwin? o c'è un modo diverso per farlo. non sto usando Windows cmd
Mehulkar il

8
Ah, errore mio, ho pensato che stavi usando cmd. Stai usando la shell bash predefinita fornita con Cygwin? In tal caso, puoi semplicemente utilizzare un alias come il post a cui sei collegato:$ echo 'alias subl="/cygdrive/c/Program\ Files/Sublime\ Text\ 2/sublime_text.exe"' >> ~/.bashrc
pjumble

questo potrebbe aiutare troppo rhyous.com/2010/10/20/…
Miguel il

1
l'avvio di SL2 dalla riga di comando in questo modo fa iniziare la mia copia di SL2 con l'impostazione delle preferenze dell'utente vuota. Qualcuno ha avuto lo stesso problema?
hndr,

3
nota che se lo fai, puoi avere questo problema con i sistemi di compilazione. Ho usato invece il semplice file .bat nella cartella sublime e l'ho inserito nel PERCORSO, funziona meglio, nessun problema di sistema di compilazione.
Eis,

136

Ho aggiunto questo al mio profilo PowerShell :

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

Modificalo come necessario per Sublime Text 3 (o eventuali versioni future).


3
Grande! Una volta passato a PowerShell ... non ho mai guardato indietro a cmd.
imlokesh,

Grazie mille. Trovo che PowerShell sia molto amichevole con gli sviluppatori che provengono dal mondo Linux / Mac
Antony,

ottima risposta .. semplice e diretto +1
Robbo_UK

Sì, per PowerShell, funziona benissimo. Per cmd, devi ancora aggiungere il percorso sublime_text.exeall'interno del percorso di Windows
MwamiTovi

55

Un'altra idea sarebbe quella di includere C:\Program Files\Sublime Text 2\nel PERCORSO, quindi eseguire un prompt dei comandi dell'amministratore:

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

Ciò costituirà un collegamento simbolico con il nuovo nome. E ora puoi usarlo liberamente:

sublime hello.txt

Aggiornamento : dopo aver avuto la possibilità di utilizzare questo trucco e aggiornare Sublime Text 2, sono felice di dire che l'aggiornamento a una nuova build non influisce sul collegamento simbolico.


5
A proposito, elevi i tuoi privilegi di Windows (7) premendo Ctrl-Maiusc-Invio dopo aver digitato cmd nella casella di testo Start | Esegui ...
likethesky

Questo e 'esattamente quello che stavo cercando. Molto veloce e pulito
C. Zeng

25

Ho creato subl.bat in C: \ Programmi \ Sublime Text 2 con contenuti:

start sublime_text.exe %*

Ora che ho C: \ Programmi \ Sublime Text 2 in PATH, posso semplicemente digitare 'subl folder' e funziona meravigliosamente senza dover aggiungere nulla all'avvio automatico.


Grazie mille per 'cartella subl'. Non lo sapevo :)
y0prst

1
Ho cambiato subl.bat in "start sublime_text.exe% *" e ora non blocca la mia console.
y0prst

Invece del file .bat, puoi semplicemente creare un collegamento e denominarlo come desideri senza le estensioni. Almeno ha funzionato per me su Windows 7.
scossa

@psycketom puoi per favore elaborare. Ho creato un collegamento all'ex di sublime 2 nella mia directory di progetto e l'ho chiamato subl. ora quando eseguo subl nella mia console dice non riconosciuto come comando esterno o interno. Solo il comando "start subl" aprirà il programma
Postscripter

1
@Postscripter Vuol dire che è andato a Control Panel-> System-> Advanced System Settings-> Environment Variables-> e ha aggiunto il testo C:\Program Files\Sublime Text 2;alla fine del valore della variabile PATH.
Cory Gross,

18

Penso che sia più facile impostare la variabile Environment in Windows.

Quindi aggiungi una nuova variabile di sistema denominata SUBLIME_HOME con valore "C: \ Programmi \ Sublime Text 2 \" (senza virgolette) dopo aver modificato la variabile Path aggiungendo alla fine questo valore ";% SUBLIME_HOME%" (senza virgolette) .

Riavvia Git BASH e divertiti, usando in questo modo:

$ sublime_text mi-new-file

(dove sublime_text è il comando)

Nota: ora funziona anche per cmd di Windows.


1
Soluzione molto bella. Pulito, veloce, facile, senza problemi con il mio principale %PATH%. Funziona davvero bene, funziona su un normale prompt cmd (con sublime_text), PowerShell, GitHub's Git Shell e Git Bash (questi ultimi tre con sublime_text.exe). Non riesce su Cygwin, probabilmente perché utilizza un sistema di percorsi diverso. Qualcuno sa se l'aggiunta di un percorso cygwin come, /cygdrive/c/sublime text 2alle mie variabili di ambiente di sistema causerà problemi (lo aggiungerei solo a quello che %SUBLIME_HOME%ho fatto sopra)?
hjc1710,

17

Aggiungi la cartella di installazione al percorso di Windows e sarai in grado di aprire Sublime digitando il nome del file eseguibile, che è di default " subl".

Per includere la cartella di installazione Sublime nel percorso di Windows,

  1. Apri il prompt dei comandi e digita sysdm.cpl
  2. Nella scheda Avanzate, selezionare Environment variables
  3. In Variabili di sistema, seleziona la variabile " Path" e fai clic su Edit.
  4. Aggiungi " C:\Program Files\Sublime Text 3;" alla fine della stringa esistente.
  5. Salvare le modifiche e riavviare il prompt dei comandi.

10

So che questa discussione è un po 'vecchia, ma di recente ho trovato questa soluzione e ho pensato di condividerla ...

Se usi Cygwin, puoi creare uno script bash che convertirà i nomi dei percorsi unix in percorsi di Windows e li passerà ai sublimi. Incolla quanto segue in un nuovo file:

#!/bin/bash

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

Salvalo in /usr/bin/subl(o dove vuoi finché la posizione è nella tua $PATH) e rendilo eseguibile ($ chmod a+x /usr/bin/subl )

Con questo script, è possibile utilizzare percorsi UNIX e Windows ( /cygdrive/c/o C:/) poiché l' cygpathutilità converte gli alias del percorso /e ~nei loro equivalenti di Windows.

Ora puoi usare $ subl file1.txt file2.md ~/file3.txtper aprire quei file in sublime!


10

La risposta accettata non sembra funzionare, almeno per Sublime Text 3 su Windows 7. La copia del file direttamente in C:\Windows\System32consente subldi risolvere correttamente dalla shell, ma quando lo eseguo, non succede nulla.

Ho avuto più successo con un hardlink:

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

Con quello, subl <file.txt>ed subl <directory>entrambi funzionano bene.


votando questa risposta, ma non ho un computer Windows su cui testarlo.
Mehulkar,

1
@mehulkar, collaudo il metodo hardlink, non funziona per me
Weijing Jay Lin

1
Ha funzionato alla grande per me - Windows 10 e ST3
Nate Beers

7

Sto provando ruby ​​su rotaie in Windows e includo il PERCORSO C:\Program Files\Sublime Text 2\, quindi cambio il nome sublime.exeinsubl.exe.

ha funzionato bene nel normale cmd e nel "prompt dei comandi con rubino e binari" cmd


5

Ho creato un semplice file batch (s.bat) nella directory di Windows per avviare un testo sublime

Questo è il codice che ho inserito nel file batch per avviare Sublime Text 2

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

Chiamo sublime digitando

s

Apro direttamente un file usando

s filename.ext

5

Ho appena eseguito il programma Prompt dei comandi come amministratore ed eseguito il seguente comando.
Semplice, ma funziona per me.

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

Ovviamente, puoi chiamare il file bat come preferisci. Da quel momento in poi, come qualsiasi utente puoi semplicemente usare:

subl myfile.txt

5

Se usi Cmder, puoi aggiungere l'alias al tuo file alias, che si trova ovunque hai installato cmder, quindi config \ aliases

È quindi possibile aggiungere (questo è per il testo sublime 3)

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

Da Cmder puoi quindi aprire qualsiasi directory in sublime tramite

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

4

prova questo:

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

assicurarsi che il sublime installi quale directory. Creerà l'alias per sublime quindi digita:

subl file.rb

3

Volevo iniziare una nuova istanza di Sublime Text dalla riga di comando. La pagina seguente mi ha aiutato, anche se dice solo OSX: http://www.sublimetext.com/docs/3/osx_command_line.html .

Quindi, utilizzo un file batch nel mio percorso utente per avviare "sublime". Ecco sostanzialmente quello che uso (** il contenuto del file batch):

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

(il mio file batch %~-dp0si trova una cartella sopra il percorso di installazione di Sublime Text.)

So che questo è un vecchio thread, ma ho pensato di aggiungere ciò che stavo cercando (e che ho trovato). Potrebbe aiutare qualcun altro!


3

Uscire dalla risposta più accettata, ma il cui autore purtroppo ha detto che modificare il PERCORSO è "difficile" - non lo è affatto. È molto facile. L'ho appena fatto e anche tu puoi!

Ecco cosa fare:

Passare alla directory di testo sublime in Esplora risorse e copiare il percorso completo dalla barra dei percorsi.

Ad esempio, ho alcuni strumenti di sviluppo configurati come applicazioni portatili in Dropbox, quindi ho copiato il percorso:

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

Vai su Pannello di controllo-> Sistema-> Impostazioni di sistema avanzate-> Variabili d'ambiente

Nella finestra risultante, vai su "percorso" nella finestra in basso, evidenzialo e fai clic su "Modifica".

Nella finestra che appare, fai clic su "Nuovo", incolla il percorso del tuo testo sublime e fai clic su "OK".

Ora apri CMD o Powershell e digita subl

La finestra di testo sublime dovrebbe aprirsi. Godere!

Nota: ho notato che qualcun altro ha risposto in modo simile, ma ho usato una posizione fissa per Sublime Text. Ciò potrebbe funzionare per alcune persone, ma per altre le indicazioni saranno errate. Il fatto è che la posizione del testo sublime può trovarsi ovunque sull'unità e sapere dove si trova e copiare quella posizione particolare è una delle parti più importanti dell'assegnazione della variabile PATH.


3
  • Imposta il percorso per sublime: Risorse del computer >> proprietà >> impostazione avanzata >> variabili di ambiente >> variabile di percorso >> Aggiungi >> C:\Program Files\Sublime Text 3

  • Basta andare alla directory in cui è installato sublime e rinominare sublime_text in sublime.

Apri il prompt dei comandi e digita sublime.


2

Puoi semplicemente installare Notepad Replacer http://www.binaryfortress.com/NotepadReplacer/ quello che farà è rendere sublime il tuo blocco note predefinito in Windows e quindi puoi semplicemente usare i comandi che usi generalmente per aprire il blocco note integrato in Windows. per esempio

`//to open test.txt, just type
notepad test.txt
//to open sublime, Type
notepad`

2

aggiungi la cartella di installazione di Sublime al tuo percorso. @set PATH=C:\Program Files\Sublime Text 3;%PATH%

o

Per impostare una variabile di ambiente in modo permanente in Windows (in modo che sia disponibile per tutti i processi di 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".

in tal caso anteporre C: \ Programmi \ Sublime Text 3 al percorso.

Ora, puoi fare una copia di 'sublime_text.exe' come 'sublime.exe'

Quindi in qualsiasi prompt dei comandi potresti essere in grado di eseguire un file file.txt

C:\Users\MyUsername>sublime filename.txt

2
  1. Nella variabile ambientale ho aggiunto anche la %SUBLIME_HOME%variabile percorso

  2. Quindi ho creato un collegamento simbolico dal mio terminale di comando

mklink sb sublime_text.exe

2

creare nel registro:

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

aggiorna il valore del parametro predefinito (REG_SZ) a:

C: \ Programmi \ Sublime Text 2 \ sublime_text.exe


1

Questo PowerShell mi consente di reindirizzare alla funzione di modifica (o di usarla in modo normale)

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

ecco il sublime_text.batche per qualche motivo sembra necessario (qualcuno sa perché?)

START "Sublime Text 2" "C:\Program Files\Sublime Text 2\sublime_text.exe" %*

1

Incavare ognuno.

Costruisco un modo molto semplice per farlo.

pagina del progetto github

basta scaricare "install.bat" e fare clic destro su install.bat -> fare clic su "Esegui come amministratore"


1

Se non vuoi cambiare il tuo percorso, puoi associare i file a sublime. Quindi fai clic destro sul file, fai clic su Proprietà, quindi fai clic su Apri con testo sublime.

Dalla riga di comando: myFile.py

Aprirà il file in sublime. Suppongo che questo ti risparmi circa cinque sequenze di tasti.


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 

Ciao, grazie per aver cercato di rispondere a questa domanda, qualcuno ha segnalato il tuo post per la cancellazione, puoi spiegare brevemente come il purposeproblema descritto da OP nel tuo codice risolve?
James Wong - Ripristina Monica il

0

vai all'ambiente e aggiungi una cartella di testo sublime alla directory del percorso di sistema, non aggiungere nulla alla directory di sistema 32 ma sta solo facendo un casino, dopodiché puoi digitare '' 'subl mytext.txt' '' in cmd.


1
Questa è la soluzione più accurata per Windows, grazie!
JohnnyQ,

0

Ecco cosa ha funzionato per me in 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

Questo è il modo più semplice per impostare e testare il file alias. Se vuoi mantenerlo sul tuo profilo, prova questo:

# 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

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

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

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

Sistema operativo (SO): Windows 10 Pro

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.