Возвышенный текст из командной строки


200

Я установил Sublime Text и хотел узнать, как открыть rbв нем файлы из терминала. Я увидел, что команда делает Sublime Text моим основным редактором? и я вижу, что я могу сделать Sublime моим основным редактором, но я хочу иметь возможность печатать

sublime file.rb

Как мне это сделать в Windows?


2
префикс возвышенный не важная часть. это может быть любая команда из одного слова.
mehulkar

Ответы:


156

Начиная со сборки 3065 (дата выпуска: 29 августа 2014 года) и далее Sublime textвключает помощника командной строки nameley subl.exe. Он находится в папке установки Sublime: скопируйте его в папку, включенную в системный путь. Например, в моем случае я скопировал его

из C:\Program Files\Sublime Text 3

в C:\Windows\System32

Затем вы можете использовать в своем терминале / консоли sublкоманду для открытия любого файла, например, в вашем примере:

subl file.rb

Или вы также можете изменить системную PATHпеременную, включив в нее папку установки Sublime, но я считаю, что это намного сложнее.


60
Я бы сказал, что добавление каталога установки Sublime в PATHболее удобный способ включить помощника командной строки Sublime. Таким образом, вы убедитесь, что все обновления будут применены автоматически. Копирование subl.exeисполняемого файла в каталог Windows потребует повторного копирования после каждого обновления.
edufinn

6
Сейчас. У меня есть проблема. Это не работает, если возвышенный текст еще не открыт.
замки из песка

4
Вы должны увидеть это scotch.io/tutorials/...
SandCastles

8
«Или вы также можете изменить системную переменную PATH, включив в нее папку установки Sublime, но я считаю, что это намного сложнее». Просто щелкните правой кнопкой мыши на компьютере. Выберите свойства, затем нажмите «Дополнительные параметры системы». Оттуда перейдите в Переменные среды> Путь и добавьте; C: \ Program Files \ Sublime Text 3 Я дам вам еще несколько шагов, но очень простую и полезную уловку:
Том Уилкинсон,

9
Или просто создайте символическую ссылку сmklink c:\Windows\System32\subl.exe "c:\Program Files\Sublime Text 3\subl.exe"
Kwadz

196

Командная строка Windows

Для Windows cmd.exe вы можете просто добавить каталог установки возвышенного текста в переменную среды PATH, это позволит вам набрать:

sublime_text file.rb

Лично я добавляю doskey (в файле .bat, установленном для автозапуска с cmd ), чтобы я мог набрать subl file.rb:

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

Cygwin

Для оболочки bash по умолчанию добавьте псевдоним в ваш ~/.bashrcфайл, например:

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

1
Должен ли я установить Doskey для Cygwin тоже? или есть другой способ сделать это. я не использую windows cmd
mehulkar

8
Ах, моя ошибка, я предположил, что вы используете cmd. Используете ли вы стандартную оболочку bash, которая поставляется с Cygwin? Если это так, вы можете просто использовать псевдоним, такой как пост, на который вы $ echo 'alias subl="/cygdrive/c/Program\ Files/Sublime\ Text\ 2/sublime_text.exe"' >> ~/.bashrc
ссылались

это может помочь слишком rhyous.com/2010/10/20/…
Мигель

1
запуск SL2 из командной строки приводит к тому, что моя копия SL2 запускается с пустой настройкой пользовательских настроек. У кого-нибудь была такая же проблема?
hndr

3
обратите внимание, что если вы сделаете это, у вас может возникнуть эта проблема с системами сборки. Вместо этого я использовал простой .bat-файл в превосходной папке и поместил его в PATH, работает лучше, никаких проблем с системой сборки.
Eis

136

Я добавил это в свой профиль PowerShell :

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

Измените это при необходимости для Sublime Text 3 (или любых будущих версий).


3
Большой! Однажды я перешел на powershell ... Я никогда не оглядывался назад на cmd.
imlokesh

Огромное спасибо. Я нахожу PowerShell очень дружелюбным для разработчиков из мира Linux / Mac
Энтони

отличный ответ .. простой и прямой +1
Robbo_UK

Да, для powershell, он отлично работает. Ибо cmdвам все еще нужно добавить путь sublime_text.exeв путь Windows
MwamiTovi

55

Другая идея заключается в том, чтобы включить C:\Program Files\Sublime Text 2\в свой PATH, а затем запустить командную строку администратора:

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

Это создаст символическую ссылку с новым именем. И теперь вы можете использовать его свободно:

sublime hello.txt

Обновление : получив шанс использовать этот трюк и обновить Sublime Text 2, я рад сообщить, что обновление до новой сборки не влияет на символическую ссылку.


5
Кстати, вы повышаете свои привилегии Windows (7), нажимая Ctrl-Shift-enter после ввода cmd в текстовое поле Start | Run ...
likethesky

Это именно то, что я искал. Очень быстро и чисто
C. Zeng

25

Я создал subl.bat в C: \ Program Files \ Sublime Text 2 с содержанием:

start sublime_text.exe %*

Теперь, когда у меня есть C: \ Program Files \ Sublime Text 2 в PATH, я могу просто напечатать 'subl folder', и это прекрасно работает без необходимости что-либо добавлять в автозапуск.


Большое спасибо за «subl folder». Не знал об этом :)
2012 года

1
Я изменил subl.bat на «start sublime_text.exe% *», и теперь он не блокирует мою консоль.
2015 года

Вместо .bat файла вы можете просто создать ярлык и назвать его по своему желанию без расширений. По крайней мере, у меня это работало в Windows 7.
Толчок

@psycketom, пожалуйста, уточните. Я создал ярлык exe для sublime 2 в каталоге моего проекта и назвал его subl. теперь при запуске subl в моей консоли он говорит, что не распознается как внешняя или внутренняя команда. Только команда «Запустить Subl» откроет программу
Postscripter

1
@Postscripter Он означает, что он пошел к Control Panel-> System-> Advanced System Settings-> Environment Variables-> и добавил текст C:\Program Files\Sublime Text 2;в конец значения переменной PATH.
Кори Гросс

18

Я думаю, что проще установить переменную среды в Windows.

Затем просто добавьте новую системную переменную с именем SUBLIME_HOME со значением «C: \ Program Files \ Sublime Text 2 \» (без кавычек) после редактирования переменной Path, добавив в конце это значение «;% SUBLIME_HOME%» (без кавычек) .

Перезапустите GIT BASH и наслаждайтесь, используя это:

$ sublime_text mi-new-file

(где sublime_text - это команда)

Примечание: теперь работает и для cmd Windows.


1
Очень хорошее решение. Чисто, быстро, легко, без проблем с моим основным %PATH%. Работает очень хорошо, работает с обычным приглашением cmd (с sublime_text), PowerShell, Git Shell GitHub и Git Bash (последние три с sublime_text.exe). Сбой на Cygwin, хотя, вероятно, потому что он использует другую систему путей. Кто-нибудь знает, если добавление пути cygwin, например, /cygdrive/c/sublime text 2к переменным окружения моей системы, вызовет проблемы (я бы просто добавил его к тому, что %SUBLIME_HOME%я сделал выше)?
hjc1710

17

Добавьте папку установки в путь Windows, и вы сможете открыть Sublime, введя имя исполняемого файла, которое по умолчанию " subl".

Чтобы включить папку установки Sublime в путь Windows,

  1. Откройте командную строку и введите sysdm.cpl
  2. На вкладке «Дополнительно» выберите Environment variables
  3. Под системными переменными выберите переменную с именем " Path" и нажмите Edit.
  4. Добавьте " C:\Program Files\Sublime Text 3;" в конец существующей строки.
  5. Сохраните изменения и перезапустите командную строку.

10

Я знаю, что эта ветка немного устарела, но недавно я придумал это решение и решил поделиться им ...

Если вы используете Cygwin, вы можете создать скрипт bash, который преобразует имена путей Unix в пути Windows и передает их в Sublime. Вставьте следующее в новый файл:

#!/bin/bash

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

Сохраните его в /usr/bin/subl(или где вы хотите, пока место находится в вашем $PATH) и сделайте его исполняемым ($ chmod a+x /usr/bin/subl )

С помощью этого сценария вы можете использовать пути в стиле UNIX и Windows ( /cygdrive/c/или C:/), поскольку cygpathутилита преобразует псевдонимы /и ~пути в их эквиваленты Windows.

Теперь вы можете использовать $ subl file1.txt file2.md ~/file3.txtэти файлы для открытия!


10

Общепринятый ответ , кажется , не работать, по крайней мере , для Sublime Text 3 на Windows 7. Копирование файла непосредственно в C:\Windows\System32позволяет , sublчтобы решить штрафа от оболочки, но когда я запускаю его, ничего не происходит.

У меня было больше успеха с жесткой ссылкой:

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

С этим subl <file.txt>и то и subl <directory>другое нормально работает.


голосую против этого ответа, но у меня нет машины с Windows, чтобы проверить это.
mehulkar

1
@ mehulkar, я тестирую метод hardlink, он не работает для меня
Вейцзин Джей Лин


7

Я пробую ruby ​​на рельсах в windows и включаю PATH C:\Program Files\Sublime Text 2\, потом меняю имяsublime.exe наsubl.exe.

нормально работал в обычном cmd и командной строке "командная строка с ruby ​​и rails"


5

Я создал простой командный файл (s.bat) в каталоге Windows, чтобы начать возвышенный текст

Это код, который я положил в командный файл, чтобы запустить Sublime Text 2

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

Я называю возвышенное, набрав

s

Я напрямую открываю файл используя

s filename.ext

5

Я просто запустил программу командной строки от имени администратора и выполнил следующую команду.
Просто, но у меня работает.

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

Конечно, вы можете вызывать файл с битой как хотите. С этого момента, как любой пользователь, вы можете просто использовать:

subl myfile.txt

5

Если вы используете Cmder, вы можете добавить псевдоним в файл псевдонимов, который находится там, где вы установили cmder, а затем config \ aliases.

Затем вы можете добавить (это для возвышенного текста 3)

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

Из Cmder вы можете открыть любой каталог в Sublime через

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

4

попробуй это:

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

убедитесь, что возвышенный установить какой каталог. Это создаст псевдоним для sublime, затем введите:

subl file.rb

3

Я хотел запустить новый экземпляр Sublime Text из командной строки. Мне помогла следующая страница, хотя там только OSX: http://www.sublimetext.com/docs/3/osx_command_line.html .

Итак, я использую командный файл в своем пути пользователя для запуска 'sublime'. Вот в основном то, что я использую (** содержимое пакетного файла):

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

(Мой командный файл %~-dp0расположен на одну папку выше пути установки Sublime Text.)

Я знаю, что это старая ветка, но я решил добавить то, что искал (и нашел). Это может помочь кому-то еще!


3

Отступая от наиболее приемлемого ответа, но чей автор, к сожалению, сказал, что изменение PATH "сложно" - это совсем не так. Это очень просто. Я только что сделал это, и вы тоже можете!

Вот что нужно сделать:

Перейдите в свою возвышенную текстовую директорию в проводнике Windows и скопируйте полный путь из панели пути.

Например, у меня есть несколько инструментов разработки, настроенных как переносимые приложения в Dropbox, поэтому я скопировал путь:

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

Перейдите в Панель управления-> Система-> Расширенные настройки системы-> Переменные среды

В появившемся окне перейдите к «пути» в нижнем окне, выделите его и нажмите «Изменить».

В появившемся окне нажмите «Создать», вставьте путь к Sublime Text и нажмите «ОК».

Теперь откройте CMD или Powershell и введите subl

Должно открыться окно Sublime Text. Наслаждайтесь!

Примечание: я заметил, что кто-то другой ответил на это подобным образом, но использовал фиксированное местоположение для Sublime Text. Это может работать для некоторых людей, но для других направления будут ошибочными. Дело в том, что местоположение Sublime Text может находиться где угодно на диске, и знание того, где оно находится, и копирование этого конкретного места является одной из наиболее важных частей назначения переменной PATH.


3
  • Задайте путь для возвышенного: Мой компьютер >> Свойства >> Дополнительные настройки >> Переменные среды >> Переменная пути >> Добавить >> C:\Program Files\Sublime Text 3

  • Просто перейдите в каталог, где установлен sublime, и переименуйте sublime_text в sublime.

Откройте командную строку и введите Sublime.


2

Вы можете просто установить Notepad Replacer http://www.binaryfortress.com/NotepadReplacer/, что он сделает, это сделать возвышенный ваш блокнот по умолчанию в Windows, а затем вы можете просто использовать команды, которые вы обычно используете, чтобы открыть встроенный блокнот в Windows. например

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

2

добавьте папку установки Sublime в ваш путь. @set PATH=C:\Program Files\Sublime Text 3;%PATH%

или

Для постоянной установки переменной среды в Windows (чтобы она была доступна всем процессам 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".

в этом случае добавьте к пути C: \ Program Files \ Sublime Text 3.

Теперь можно сделать копию «sublime_text.exe» как «sublime.exe»

Тогда в любой командной строке вы сможете запустить файл file.txt

C:\Users\MyUsername>sublime filename.txt


2

создать в реестре:

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Пути к приложениям \ sublime.exe

обновить значение параметра по умолчанию (REG_SZ) до:

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


1

Этот PowerShell позволяет мне перейти к функции редактирования (или использовать ее обычным способом)

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

вот то, sublime_text.batчто по какой-то причине кажется необходимым (кто-нибудь знает, почему?)

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

1

Пустой каждый.

Я строю очень простой способ сделать это.

страница проекта github

Просто скачайте "install.bat" и щелкните правой кнопкой мыши на install.bat -> нажмите "Запуск от имени администратора"


1

Если вы не хотите менять свой путь, вы можете связать файлы с возвышенным. Поэтому щелкните правой кнопкой мыши файл, выберите «Свойства», затем нажмите «Открыть» с возвышенным текстом.

Из командной строки: myFile.py

Откроется файл в возвышенном. Я полагаю, это спасет вас от пяти нажатий клавиш.


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 

Здравствуйте, спасибо за попытку ответить на этот вопрос, кто-то пометил ваш пост для удаления, не могли бы вы кратко объяснить, как purposeописанный в вашем коде решает проблему OP?
Джеймс Вонг - Восстановить Монику

0

перейдите в среду и добавьте папку с возвышенным текстом в системный каталог, не добавляйте ничего в системный каталог 32, он просто создает беспорядок, после этого вы можете ввести '' 'subl mytext.txt' '' в cmd.


1
Это самое точное решение для Windows, спасибо!
JohnnyQ

0

Вот что сработало для меня в 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

Это самый простой способ установить и протестироватьalias . Если вы хотите сохранить это в своем профиле, попробуйте это:

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

Операционная система (ОС): Windows 10 Pro

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.