Texto sublime desde la línea de comando


200

Instalé Sublime Text y quería saber cómo abrir rbarchivos desde el terminal. Vi ¿Cuál es el comando para hacer de Sublime Text mi editor principal? y veo que puedo hacer de Sublime mi editor principal, pero quiero poder escribir

sublime file.rb

¿Cómo hago esto en Windows?


2
El prefijo sublime no es la parte importante. podría ser cualquier comando de una palabra realmente.
mehulkar

Respuestas:


156

A partir de la compilación 3065 (fecha de lanzamiento: 29 de agosto de 2014) Sublime textincluye un asistente de línea de comando, nameley subl.exe. Está en la carpeta de instalación de Sublime: cópielo en una carpeta incluida en la ruta del sistema. Por ejemplo, en mi caso lo copié

de C:\Program Files\Sublime Text 3

a C:\Windows\System32

Luego puede usar en su terminal / consola sublcomo un comando para abrir cualquier archivo, como en su ejemplo:

subl file.rb

O bien, puede modificar la PATHvariable de su sistema para incluir la carpeta de instalación de Sublime, pero creo que eso es mucho más complicado.


6060
Diría que agregar el directorio de instalación de Sublime es la PATHforma más conveniente de habilitar el asistente de línea de comando Sublime. De esta manera, se asegurará de que todas las actualizaciones se aplicarán automáticamente. Copiar el subl.exeejecutable al directorio de Windows requerirá repetir la copia después de cada actualización.
edufinn

66
Ahora. Tengo un problema. Esto no funciona si el texto sublime aún no está abierto.
castillos de arena

44
Deberías ver este scotch.io/tutorials/…
sandcastles

8
"O bien puede modificar la variable PATH de su sistema para incluir la carpeta de instalación de sublime, pero creo que eso es mucho más complicado". Simplemente haga clic derecho en la computadora. Seleccione propiedades y luego haga clic en "Configuración avanzada del sistema". Desde allí, vaya a Variables de entorno> Ruta y anexar; C: \ Archivos de programa \ Sublime Text 3 A continuación, le daré algunos pasos más, pero un truco muy fácil y útil para saber :)
Tom Wilkinson

9
O simplemente cree un enlace simbólico conmklink c:\Windows\System32\subl.exe "c:\Program Files\Sublime Text 3\subl.exe"
Kwadz

196

Símbolo del sistema de Windows

Para Windows cmd.exe, podría simplemente agregar el directorio de instalación de texto sublime a su variable de entorno PATH, esto le permitiría escribir:

sublime_text file.rb

Personalmente, agrego una doskey (en un archivo .bat configurado para ejecución automática con cmd ) para que pueda escribir subl file.rb:

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

Cygwin

Para el shell bash predeterminado, agregue un alias a su ~/.bashrcarchivo, por ejemplo:

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

1
¿También configuro una doskey para cygwin? o hay una forma diferente de hacerlo. No estoy usando Windows cmd
mehulkar

8
Ah, mi error, supuse que estabas usando cmd. ¿Está utilizando el shell bash predeterminado que viene con cygwin? Si es así, puede usar un alias como la publicación a la que se vinculó:$ echo 'alias subl="/cygdrive/c/Program\ Files/Sublime\ Text\ 2/sublime_text.exe"' >> ~/.bashrc
pjumble

esto podría ayudar demasiado rhyous.com/2010/10/20/…
Miguel

1
Al iniciar SL2 desde la línea de comandos de esta manera, mi copia de SL2 comienza con una configuración de preferencias de usuario vacía. Alguien tuvo el mismo problema?
hndr

3
tenga en cuenta que si hace esto, puede tener este problema con los sistemas de compilación. En su lugar, utilicé el archivo .bat simple en la carpeta sublime y lo puse en la RUTA, funciona mejor, no hay problemas del sistema de compilación.
EIS

136

Agregué esto a mi perfil de PowerShell :

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

Modifique esto según sea necesario para Sublime Text 3 (o cualquier versión futura).


3
¡Excelente! Una vez que me mudé a PowerShell ... nunca volví a mirar cmd.
imlokesh

Gracias un montón. Creo que PowerShell es muy amigable para los desarrolladores que vienen del mundo Linux / Mac
Antony

gran respuesta ... simple y directo +1
Robbo_UK

Sí, para PowerShell, funciona bien. Para cmd, todavía tiene que agregar la ruta sublime_text.exedentro de la ruta de Windows
MwamiTovi

55

Otra idea sería incluir C:\Program Files\Sublime Text 2\en su RUTA y luego ejecutar un símbolo del sistema del administrador:

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

Eso hará un enlace simbólico con el nuevo nombre. Y ahora puedes usarlo libremente:

sublime hello.txt

Actualización : después de tener la oportunidad de usar este truco y actualizar Sublime Text 2, me complace decir que actualizar a una nueva compilación no afecta el enlace simbólico.


55
Por cierto, usted eleva sus privs (7) de Windows pulsando Ctrl-Shift-enter después cmd escribiendo en el menú Inicio | cuadro de texto Ejecutar ...
likethesky

Esto es exactamente lo que estaba buscando. Muy rápido y limpio
C. Zeng

25

He creado subl.bat en C: \ Archivos de programa \ Sublime Text 2 con contenido:

start sublime_text.exe %*

Ahora que tengo C: \ Archivos de programa \ Sublime Text 2 en PATH, simplemente puedo escribir 'subl folder' y funciona de maravilla sin tener que agregar nada al inicio automático.


Muchas gracias por 'subl folder'. No sabía que :)
y0prst

1
He cambiado subl.bat a "start sublime_text.exe% *" y ahora no bloquea mi consola.
y0prst

En lugar del archivo .bat, simplemente puede crear un acceso directo y nombrarlo como desee sin las extensiones. Al menos funcionó para mí en Windows 7.
sacudida

@psycketom, ¿puedes explicarlo? He creado un acceso directo al exe de sublime 2 en mi directorio de proyecto y lo llamé subl. ahora cuando ejecuto subl en mi consola dice que no se reconoce como un comando externo o interno. Solo el comando "start subl" abrirá el programa
Postscripter

1
@Postscripter Quiere decir que fue a Control Panel-> System-> Advanced System Settings-> Environment Variables-> y agregó el texto C:\Program Files\Sublime Text 2;al final del valor de la variable PATH.
Cory Gross

18

Creo que es más fácil configurar la variable de entorno en Windows.

Luego, simplemente agregue una nueva variable del sistema llamada SUBLIME_HOME con el valor "C: \ Archivos de programa \ Sublime Text 2 \" (sin comillas) después de editar la variable Ruta agregando al final este valor ";% SUBLIME_HOME%" (sin comillas) .

Reinicia el git BASH y disfruta, usando así:

$ sublime_text mi-nuevo-archivo

(donde sublime_text es el comando)

Nota: También funciona ahora para cmd de Windows.


1
Muy buena solución. Limpio, rápido, fácil, sin meterse con mi principal %PATH%. Funciona muy bien también, funciona en el cmd prompt regular (con sublime_text), PowerShell, Git Shell de GitHub y Git Bash (los últimos tres con sublime_text.exe). Sin embargo, falla en Cygwin, probablemente porque utiliza un sistema de ruta diferente. ¿Alguien sabe si agregar una ruta cygwin como, /cygdrive/c/sublime text 2a las variables de entorno de mi sistema causará problemas (simplemente lo agregaría al %SUBLIME_HOME%que hice anteriormente)?
hjc1710

17

Agregue la carpeta de instalación a la ruta de Windows y podrá abrir Sublime escribiendo el nombre del archivo ejecutable, que por defecto es " subl".

Para incluir la carpeta de instalación de Sublime en la ruta de Windows,

  1. Abra el símbolo del sistema y escriba sysdm.cpl
  2. En la pestaña Avanzado, seleccione Environment variables
  3. En variables del sistema, seleccione la variable llamada " Path" y haga clic Edit.
  4. Agregue " C:\Program Files\Sublime Text 3;" al final de la cadena existente.
  5. Guarde los cambios y reinicie el símbolo del sistema.

10

Sé que este hilo es un poco viejo, pero recientemente se me ocurrió esta solución y pensé en compartirla ...

Si usa Cygwin, puede crear una secuencia de comandos bash que convierta los nombres de ruta de Unix en rutas de Windows y las pase a sublime. Pegue lo siguiente en un nuevo archivo:

#!/bin/bash

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

Guárdelo /usr/bin/subl(o donde quiera siempre que la ubicación esté en su $PATH) y hágalo ejecutable ($ chmod a+x /usr/bin/subl )

Con este script, puede usar las rutas de estilo UNIX y Windows ( /cygdrive/c/o C:/) porque la cygpathutilidad convierte los alias de ruta /y ~a sus equivalentes de Windows.

¡Ahora, puedes usar $ subl file1.txt file2.md ~/file3.txtpara abrir esos archivos en sublime!


10

La respuesta aceptada no parece funcionar, al menos para Sublime Text 3 en Windows 7. Copiar el archivo directamente C:\Windows\System32permite sublresolver bien desde el shell, pero cuando lo ejecuto, no sucede nada.

He tenido más éxito con un enlace duro:

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

Con eso subl <file.txt>ysubl <directory> ambos funcionan bien.


votando esta respuesta, pero no tengo una máquina Windows para probar esto.
mehulkar

1
@mehulkar, pruebo el método de enlace duro, no funciona para mí
Weijing Jay Lin

1
Me funcionó muy bien - Windows 10 y ST3
Nate Beers

7

Estoy probando ruby ​​on rails en windows e incluyo el PATH C:\Program Files\Sublime Text 2\, luego cambio el nombre sublime.exeasubl.exe.

funcionó bien en cmd regular y cmd "símbolo del sistema con ruby ​​y rails"


5

Creé un archivo por lotes simple (s.bat) en el directorio de Windows para iniciar texto sublime

Este es el código que puse en el archivo por lotes para iniciar Sublime Text 2

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

Llamo sublime escribiendo

s

Abro directamente un archivo usando

s filename.ext

5

Acabo de ejecutar el programa Símbolo del sistema como administrador y ejecuté el siguiente comando.
Simple, pero funciona para mí.

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

Por supuesto, puedes llamar al archivo bat como quieras. A partir de entonces, como cualquier usuario, simplemente puede usar:

subl myfile.txt

5

Si está usando Cmder, puede agregar el alias a su archivo de alias, que se encuentra donde haya instalado cmder, luego config \ aliases

Luego puede agregar (esto es para texto sublime 3)

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

Desde Cmder, puede abrir cualquier directorio en sublime a través de

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

4

prueba esto:

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

asegúrese de que el sublime instale qué directorio. Creará el alias para sublime y luego escriba:

subl file.rb

3

Quería comenzar una nueva instancia de Sublime Text desde la línea de comandos. La siguiente página me ayudó, aunque solo dice OSX: http://www.sublimetext.com/docs/3/osx_command_line.html .

Entonces, uso un archivo por lotes en mi ruta de usuario para iniciar 'sublime'. Esto es básicamente lo que uso (** el contenido del archivo por lotes):

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

(mi archivo por lotes %~-dp0se encuentra una carpeta encima de la ruta de instalación de Sublime Text).

Sé que este es un hilo viejo, pero pensé que agregaría lo que estaba buscando (y encontré). ¡Podría ayudar a alguien más!


3

Ir a la respuesta más aceptada, pero cuyo autor lamentablemente dijo que modificar la RUTA es "difícil", no lo es en absoluto. Es muy fácil. ¡Lo acabo de hacer y tú también puedes!

Esto es lo que debes hacer:

Navegue a su directorio de texto sublime en el Explorador de Windows y copie la ruta completa desde la barra de ruta.

Por ejemplo, tengo algunas herramientas de desarrollo configuradas como aplicaciones portátiles en Dropbox, así que copié la ruta:

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

Vaya a Panel de control-> Sistema-> Configuración avanzada del sistema-> Variables de entorno

En la ventana resultante, navegue hasta "ruta" en la ventana inferior, resáltela y haga clic en "Editar".

En la ventana que aparece, haga clic en "Nuevo", pegue su ruta de texto sublime y haga clic en "Aceptar".

Ahora abra CMD o Powershell y escriba subl

La ventana de Sublime Text debería abrirse. ¡Disfrutar!

Nota: Noté que alguien más respondió esto de manera similar, pero usé una ubicación fija para Sublime Text. Eso puede funcionar para algunas personas, pero para otras las instrucciones serán erróneas. El hecho es que la ubicación de Sublime Text puede estar en cualquier parte del disco, y saber dónde está y copiar esa ubicación en particular es una de las partes más importantes de la asignación de la variable PATH.


3
  • Establezca la ruta para sublime: Mi computadora >> propiedades >> configuración avanzada >> variables de entorno >> variable de ruta >> Agregar >> C:\Program Files\Sublime Text 3

  • Simplemente vaya al directorio donde está instalado sublime y cambie el nombre de sublime_text a sublime.

Abra el símbolo del sistema y escriba sublime.


2

Simplemente puede instalar Notepad Replacer http://www.binaryfortress.com/NotepadReplacer/ lo que hará es hacer sublime su bloc de notas predeterminado en Windows y luego simplemente puede usar los comandos que generalmente usa para abrir el bloc de notas incorporado en Windows. por ejemplo

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

2

agregue la carpeta de instalación de Sublime a su ruta. @set PATH=C:\Program Files\Sublime Text 3;%PATH%

o

Para establecer una variable de entorno de forma permanente en Windows (para que esté disponible para todos los procesos de 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".

en ese caso anteponga C: \ Archivos de programa \ Sublime Text 3 a la ruta.

Ahora, puede hacer una copia de 'sublime_text.exe' como 'sublime.exe'

Luego, en cualquier símbolo del sistema, puede ejecutar un archivo file.txt

C:\Users\MyUsername>sublime filename.txt

2
  1. En la variable ambiental también agregué %SUBLIME_HOME%variable a la variable de ruta

  2. Luego hice un enlace simbólico desde mi terminal de Comando

mklink sb sublime_text.exe

2

crear en el registro:

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

Actualizar el valor del parámetro predeterminado (REG_SZ) a:

C: \ Archivos de programa \ Sublime Text 2 \ sublime_text.exe


1

Este PowerShell me permite canalizar a la función de edición (o usarla de la manera normal)

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

aquí está lo sublime_text.batque por alguna razón parece necesario (¿alguien sabe por qué?)

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


1

Si no desea cambiar su ruta, puede asociar archivos con sublime. Entonces haga clic derecho en el archivo, haga clic en propiedades, luego haga clic en se abre con texto sublime.

Desde la línea de comando: myFile.py

Abrirá el archivo en sublime. Supongo que esto te ahorra unas cinco pulsaciones de teclas.


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 

Hola, gracias por intentar responder a esta pregunta, alguien marcó su publicación para eliminarla, ¿puede explicar brevemente cómo lo purposedescrito en su código resuelve el problema de OP?
James Wong - Restablece a Monica el

0

vaya al entorno y agregue una carpeta de texto sublime al directorio de la ruta del sistema, no agregue nada al directorio del sistema 32, solo está haciendo un desastre, después de eso puede escribir '' 'subl mytext.txt' '' en cmd.


1
Esta es la solución más precisa para Windows, ¡gracias!
JohnnyQ

0

Esto es lo que funcionó para mí 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

Esta es la forma más fácil de configurar y probar el alias. Si desea mantener esto en su perfil, intente esto:

# 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/

Sistema operativo (SO): Windows 10 Pro

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.