Texto sublime da linha de comando

200

Eu instalei o Sublime Text e queria saber como abrir rbarquivos nele a partir do terminal. Vi Qual é o comando para tornar o Sublime Text meu editor principal? e vejo que posso fazer do Sublime meu editor principal, mas quero poder digitar

sublime file.rb

Como faço isso no Windows?

mehulkar
fonte
2
o prefixo sublime não é a parte importante. realmente poderia ser qualquer comando de uma palavra.
mehulkar

Respostas:

156

A partir do build 3065 (Data de lançamento: 29 de agosto de 2014), Sublime textinclui um assistente de linha de comando, nameley subl.exe. Está na pasta de instalação do sublime: copie-o para uma pasta incluída no caminho do sistema. Por exemplo, no meu caso, eu copiei

de C:\Program Files\Sublime Text 3

para C:\Windows\System32

Você pode usar no seu terminal / console sublcomo um comando para abrir qualquer arquivo, como no seu exemplo:

subl file.rb

Ou você também pode modificar sua PATHvariável de sistema para incluir a pasta de instalação do sublime, mas acredito que isso seja muito mais envolvido.

castelos de areia
fonte
60
Eu diria que adicionar o diretório de instalação do Sublime PATHé uma maneira mais conveniente de ativar o assistente de linha de comando do Sublime. Dessa forma, você garantirá que todas as atualizações serão aplicadas automaticamente. A cópia do subl.exeexecutável no diretório do Windows exigirá cópias repetidas após cada atualização.
Edufinn
6
Agora. Eu tenho um problema Isso não funciona se o texto sublime ainda não estiver aberto.
castelos
4
Você deve ver este scotch.io/tutorials/...
castelos de areia
8
"Ou você também pode modificar a variável PATH do sistema para incluir a pasta de instalação do sublime, mas acredito que isso é muito mais envolvido." Simplesmente clique com o botão direito do mouse em Computador. Selecione as propriedades e clique em "Configurações avançadas do sistema". A partir daí, vá para Variáveis ​​de ambiente> Caminho e acrescente; C: \ Arquivos de programas \ Sublime Text 3 Mais algumas etapas, mas vou lhe dar um truque muito fácil e útil de saber :) #
21415 Tom Wilkinson
9
Ou simplesmente criar um link simbólico commklink c:\Windows\System32\subl.exe "c:\Program Files\Sublime Text 3\subl.exe"
Kwadz
196

Prompt de Comando do Windows

No Windows cmd.exe, você pode adicionar o diretório de instalação de texto sublime à sua variável de ambiente PATH, permitindo digitar:

sublime_text file.rb

Pessoalmente, adiciono uma doskey (em um arquivo .bat definido como execução automática com cmd ) para poder digitar subl file.rb:

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

Cygwin

Para o shell bash padrão, adicione um alias ao seu ~/.bashrcarquivo, por exemplo:

$ echo 'alias subl="/cygdrive/c/Program\ Files/Sublime\ Text\ 2/sublime_text.exe"' >> ~/.bashrc
pjumble
fonte
1
Também configuro um doskey para cygwin? ou existe uma maneira diferente de fazer isso. Eu não estou usando o Windows cmd
mehulkar
8
Ah, meu erro, eu assumi que você estava usando o cmd. Você está usando o shell bash padrão que acompanha o cygwin? Se assim você pode apenas usar um alias como o post que você ligados a:$ echo 'alias subl="/cygdrive/c/Program\ Files/Sublime\ Text\ 2/sublime_text.exe"' >> ~/.bashrc
pjumble
isso pode ajudar muito rhyous.com/2010/10/20/…
Miguel
1
iniciar o SL2 a partir da linha de comando dessa maneira faz com que minha cópia do SL2 inicie com a configuração de preferências do usuário vazia. alguém teve o mesmo problema?
Hndr 28/12/12
3
Observe que, se você fizer isso, poderá ter esse problema com os sistemas de compilação. Eu usei um arquivo .bat simples na pasta sublime e o coloquei no PATH, funciona melhor, sem problemas no sistema de compilação.
eis
136

Adicionei isso ao meu perfil do PowerShell :

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

Modifique isso conforme necessário para o Sublime Text 3 (ou qualquer versão futura).

Kristopher Johnson
fonte
3
Ótimo! Depois que mudei para o PowerShell ... nunca mais olhei para o cmd.
imlokesh
Muitíssimo obrigado. Acho PowerShell muito amigável para desenvolvedores vindos de Linux / Mac mundo
Antony
ótima resposta .. simples e direto +1
Robbo_UK 24/02
Sim, para o PowerShell, funciona bem. Para cmd, você ainda precisa adicionar o caminho sublime_text.exedentro do caminho do Windows
MwamiTovi
55

Outra idéia seria incluir C:\Program Files\Sublime Text 2\no seu PATH e executar um prompt de comando do administrador:

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

Isso criará um link simbólico com o novo nome. E agora você pode usá-lo livremente:

sublime hello.txt

Atualização : depois de ter a chance de usar esse truque e atualizar o Sublime Text 2, fico feliz em dizer que a atualização para uma nova compilação não afeta o link simbólico.

John Nelson
fonte
5
Btw, você elevar seus (7) privs Windows pressionando Ctrl-Shift-Enter depois de digitar cmd em Iniciar a | caixa de texto Executar ...
likethesky
Era exatamente isso que eu estava procurando. Muito rápido e limpo
C. Zeng
25

Eu criei subl.bat em C: \ Arquivos de programas \ Sublime Text 2 com o conteúdo:

start sublime_text.exe %*

Agora que tenho C: \ Arquivos de programas \ Sublime Text 2 no PATH, posso simplesmente digitar 'subpasta' e funciona maravilhosamente sem precisar adicionar nada para iniciar automaticamente.

mblsha
fonte
Muito obrigado pela 'pasta subl'. Não sabia disso :)
y0prst
1
Alterei o subl.bat para "start sublime_text.exe% *" e agora não bloqueia meu console.
y0prst
Em vez do arquivo .bat, você pode simplesmente criar um atalho e nomeá-lo como desejar, sem as extensões. Pelo menos, funcionou para mim no Windows 7. #
2260
@psycketom você pode por favor elaborar. Eu criei um atalho para o exe do sublime 2 no diretório do meu projeto e o chamei de subl. agora, ao executar subl no meu console, ele diz que não é reconhecido como um comando externo ou interno. Somente o comando "start subl" abrirá o programa.
Postscripter
1
@Postscripter Ele quer dizer que foi para Control Panel-> System-> Advanced System Settings-> Environment Variables-> e adicionou o texto C:\Program Files\Sublime Text 2;ao final do valor da variável PATH.
Cory Gross
18

Eu acho que é mais fácil definir a variável de ambiente no Windows.

Em seguida, basta adicionar uma nova variável de sistema chamada SUBLIME_HOME com o valor "C: \ Arquivos de programas \ Sublime Text 2 \" (sem aspas) depois de editar a variável Path, adicionando no final este valor ";% SUBLIME_HOME%" (sem aspas) .

Reinicie o GIT BASH e aproveite, usando assim:

$ sublime_text mi-new-file

(onde sublime_text é o comando)

Nota: Também funciona agora para o cmd do Windows.

glrodasz
fonte
1
Solução muito boa. Limpo, rápido, fácil, sem mexer com o meu principal %PATH%. Funciona muito bem também, funciona no prompt normal do cmd (com sublime_text), no PowerShell, no GitHub do GitHub e no Git Bash (três últimos com sublime_text.exe). No entanto, falha no Cygwin, provavelmente porque ele usa um sistema de caminho diferente. Alguém sabe se adicionar um caminho cygwin como, /cygdrive/c/sublime text 2às variáveis ​​de ambiente do meu sistema causará problemas (eu apenas o acrescentaria ao %SUBLIME_HOME%que fiz acima)?
precisa saber é
17

Adicione a pasta de instalação ao caminho do Windows e você poderá abrir o Sublime digitando o nome do arquivo executável, que é por padrão " subl".

Para incluir a pasta de instalação sublime no caminho do Windows,

  1. Abra o prompt de comando e digite sysdm.cpl
  2. Na guia Avançado, selecione Environment variables
  3. Em variáveis ​​do sistema, selecione a variável denominada " Path" e clique em Edit.
  4. Adicione " C:\Program Files\Sublime Text 3;" ao final da string existente.
  5. Salve as alterações e reinicie o prompt de comando.
ben_joseph
fonte
10

Eu sei que esse tópico é um pouco antigo, mas recentemente criei esta solução e pensei em compartilhá-la ...

Se você usar o Cygwin, poderá criar um script bash que converterá os nomes de caminho unix em caminhos do Windows e os passará para sublimes. Cole o seguinte em um novo arquivo:

#!/bin/bash

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

Salve-o /usr/bin/subl(ou onde quiser, desde que o local esteja no seu $PATH) e torne-o executável ($ chmod a+x /usr/bin/subl )

Com esse script, você pode usar os caminhos de estilo UNIX e Windows ( /cygdrive/c/ou C:/) porque o cygpathutilitário converte os aliases de caminho /e ~em seus equivalentes nas janelas.

Agora, você pode usar $ subl file1.txt file2.md ~/file3.txtpara abrir esses arquivos em sublime!

Josh
fonte
10

A resposta aceita parece não funcionar, pelo menos para o Sublime Text 3 no Windows 7. A cópia direta do arquivo no C:\Windows\System32permite sublresolver o problema do shell, mas quando eu o executo, nada acontece.

Eu tive mais sucesso com um hardlink:

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

Com isso, subl <file.txt>e subl <directory>ambos funcionam bem.

pneumática
fonte
votando esta resposta, mas não tenho uma máquina Windows para testar isso.
precisa saber é o seguinte
1
@mehulkar, eu testar o método hardlink, ele não funciona para mim
Weijing Jay Lin
1
Trabalhou muito para mim - Windows 10 e ST3
Nate Beers
7

Estou testando Ruby on Rails no Windows e inclua o PATH C:\Program Files\Sublime Text 2\e altere o nome sublime.exeparasubl.exe.

funcionou bem no cmd regular e no "prompt de comando com ruby ​​e rails" cmd

user1973194
fonte
5

Criei um arquivo em lotes simples (s.bat) no diretório do Windows para iniciar o texto sublime

Este é o código que eu coloquei no arquivo em lotes para iniciar o Sublime Text 2

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

Eu chamo sublime digitando

s

Eu abro um arquivo diretamente usando

s filename.ext
Clooner
fonte
5

Acabei de executar o programa Prompt de Comando como administrador e executei o seguinte comando.
Simples, mas funciona para mim.

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

Claro, você pode chamar o arquivo bat do jeito que quiser. A partir de então, como qualquer usuário, você pode simplesmente usar:

subl myfile.txt
digarok
fonte
5

Se você estiver usando o Cmder, poderá adicionar o alias ao seu arquivo de aliases, localizado onde quer que você tenha instalado o cmder, em seguida, config \ aliases

Você pode adicionar (isso é para o texto sublime 3)

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

De dentro do Cmder, você pode abrir qualquer diretório em sublime via

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

tente isto:

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

verifique se o sublime instala qual diretório. Ele criará o alias para sublime e digite:

subl file.rb
Vishnu Mishra
fonte
3

Eu queria iniciar uma nova instância do Sublime Text a partir da linha de comando. A página a seguir me ajudou, mesmo que apenas diga OSX: http://www.sublimetext.com/docs/3/osx_command_line.html .

Então, eu uso um arquivo em lotes no meu caminho de usuário para iniciar 'sublime'. Aqui está basicamente o que eu uso (** o conteúdo do arquivo em lotes):

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

(meu arquivo em lote %~-dp0está localizado uma pasta acima do caminho de instalação do texto sublime.)

Sei que esse é um tópico antigo, mas pensei em adicionar o que estava procurando (e encontrei). Pode ajudar alguém!

wasatchwizard
fonte
3

Indo a resposta mais aceita, mas cujo autor infelizmente disse que modificar o PATH é "difícil" - não é de todo. É muito fácil. Acabei de fazer, e você também pode!

Aqui está o que fazer:

Navegue para o diretório de texto sublime no Windows Explorer e copie o caminho completo da barra de caminho.

Por exemplo, eu tenho algumas ferramentas de desenvolvimento configuradas como aplicativos portáteis no Dropbox, então copiei o caminho:

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

Vá para Painel de controle-> Sistema-> Configurações avançadas do sistema-> Variáveis ​​de ambiente

Na janela resultante, navegue até "caminho" na janela inferior, destaque-o e clique em "Editar".

Na janela que aparece, clique em "Novo", cole no seu caminho de texto sublime e clique em "OK".

Agora abra o CMD ou o Powershell e digite subl

A janela Sublime Text deve abrir. Aproveitar!

Nota: notei que outra pessoa respondeu isso de maneira semelhante, mas usei um local fixo para o texto sublime. Isso pode funcionar para algumas pessoas, mas para outras, as instruções serão erradas. O fato é que o local do Texto Sublime pode estar em qualquer lugar da unidade, e saber onde está e copiar esse local específico é uma das partes mais importantes da atribuição da variável PATH.

AveryFreeman
fonte
3
  • Defina o caminho para sublime: Meu computador >> propriedades >> configuração avançada >> variáveis ​​de ambiente >> variável de caminho >> Adicionar >> C:\Program Files\Sublime Text 3

  • Vá para o diretório em que o sublime está instalado e renomeie sublime_text para sublime.

Abra o prompt de comando e digite sublime.

pratik_nalage
fonte
2

Você pode simplesmente instalar o Notepad Replacer http://www.binaryfortress.com/NotepadReplacer/, o que ele fará é sublimar seu bloco de notas padrão no Windows e, em seguida, você pode simplesmente usar os comandos que geralmente usa para abrir o bloco de notas embutido no Windows. por exemplo

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

adicione a pasta de instalação do Sublime ao seu caminho. @set PATH=C:\Program Files\Sublime Text 3;%PATH%

ou

Para definir uma variável de ambiente permanentemente no Windows (para que fique disponível para todos os processos do 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".

nesse caso, acrescente C: \ Arquivos de programas \ Sublime Text 3 ao caminho.

Agora, você pode fazer uma cópia de 'sublime_text.exe' como 'sublime.exe'

Em qualquer prompt de comando, você poderá executar um arquivo file.txt

C:\Users\MyUsername>sublime filename.txt
Giovanni Dappa Hosang
fonte
2
  1. Na variável Ambiental, adicionei %SUBLIME_HOME%variável à variável de caminho também

  2. Em seguida, fiz um link simbólico do meu terminal de comando

mklink sb sublime_text.exe
pensebien
fonte
2

criar no registro:

Caminhos de aplicativos \ sublime.exe HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ App

atualize o valor do parâmetro padrão (REG_SZ) para:

C: \ Arquivos de Programas \ Sublime Text 2 \ sublime_text.exe

feech
fonte
1

Este PowerShell permite-me canalizar para a função de edição (ou usá-lo da maneira normal)

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

aqui está o sublime_text.batque, por algum motivo, parece necessário (alguém sabe por quê?)

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

Oco cada um.

Eu construo uma maneira muito fácil de fazer isso.

página do github do projeto

basta baixar "install.bat" e clicar com o botão direito em install.bat -> clique em "executar como administrador"

tempo de permanência
fonte
1

Se você não deseja alterar seu caminho, pode associar arquivos com sublime. Então, clique com o botão direito do mouse no arquivo, clique em Propriedades e clique em Abrir com texto sublime.

Na linha de comando: myFile.py

Irá abrir o arquivo em sublime. Suponho que você economize cerca de cinco pressionamentos de tecla.

jdeyrup
fonte
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
fonte
Olá, obrigado por tentar responder a esta pergunta, alguém sinalizou sua postagem para exclusão. Você pode explicar brevemente como o purposedescrito no seu código resolve o problema do OP?
James Wong - Restabelece Monica
0

vá para o ambiente e adicione uma pasta de texto sublime ao diretório do caminho do sistema, não adicione nada ao diretório do sistema 32, está apenas fazendo uma bagunça, depois disso você pode digitar '' 'subl mytext.txt' '' no cmd.

amir shakiba
fonte
1
Esta é a solução mais precisa para Windows, obrigado!
JohnnyQ 18/03
0

Aqui está o que funcionou para mim em 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 é a maneira mais fácil de configurar e testar o alias. Se você quiser manter isso contra o seu perfil, tente o seguinte:

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

Remover alias da REF 1: https://superuser.com/q/883914/247728

Nova linha REF 2: 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 operacional (SO): Windows 10 Pro

JayRizzo
fonte