2012-02-26 69 views
100

有沒有辦法將Sublime Text設置爲Windows 7上文件格式的默認文本編輯器?崇高作爲默認編輯器

而且,如果有人知道一個崇高的文本教程或維基那將是真正的幫助。與在資源管理器所需的擴展文件

+8

http://www.binaryfortress.com/NotepadReplacer/ – 2013-04-18 16:59:43

+0

NotepadReplacer通過將自己設置爲notepad.exe的調試程序並將argv傳遞到首選文本編輯器來使用圖像劫持。 – 2014-05-29 14:35:41

+5

標記爲脫離主題。這個問題更多的是關於使用Windows和Sublime Text而不是編程,所以我認爲它屬於SuperUser,而不是StackOverflow。 – ArtOfWarfare 2014-07-21 16:33:59

回答

211

其實這不是我的回答,我剛纔googled it

  1. 打開註冊表編輯器( + [R,類型「regedit」,選擇確定)。
  2. 導航到HKEY_CLASSES_ROOT\Applications\sublime_text.exe\shell\open\command
  3. 驗證路徑是否準確,如果不正確則更正。退出regedit。通過
  4. 打開任務管理器按Ctrl + Alt鍵+德爾(或按Ctrl ++ Esc鍵更高版本的Windows),殺死Explorer.exe的,去跑( + R),然後輸入「explorer.exe」(或跳過這一步,然後重新啓動)。
  5. 現在嘗試相同的操作,右鍵單擊文本文件,打開,導航至崇高,現在應該顯示在可用應用程序的列表中。

對我來說價值指着其中便攜版以前放置在桌面上。因此它不起作用。

P.S.對我而言,重新啓動或註銷並不是必需的(WinXP)。

+41

順便說一句,你可以使用Ctrl + Shift + Esc直接打開taskmanager.exe – 2012-08-02 15:03:19

+5

+1這應該是接受的答案 – Heliac 2013-07-16 08:59:25

+1

+1這對我有效。這應該是接受的答案恕我直言。 – cbmeeks 2013-07-16 13:17:54

2

打開快捷菜單,選擇比與 - 打開>你的編輯器(可能是你需要瀏覽的二進制它出現在可用程序列表中之前),並設置勾選「始終使用選定的程序打開這種文件「。

+8

我試過但它不適合我,不知道爲什麼。 ( – Dev 2012-07-26 09:58:40

+6

)對於任何使用修改註冊表的版本的人來說,這都不起作用 – avp 2012-08-02 11:43:04

+2

-1 StackOverflow不是「Windows for Dummies」,顯然這個問題還有更多的問題 – Heliac 2013-07-16 08:58:49

35

編輯於2014年11月21日

Tim Lewis指出了評論,有一個更寬泛的版本爲http://www.binaryfortress.com/NotepadReplacer/,其效果更好。

原來的答案

試試這個:https://github.com/grumpydev/Sublime-Notepad-Replacement

+2

這太好了,謝謝! – MorganTiley 2012-11-05 17:13:01

+0

完美無缺地工作了 – scottm 2013-04-05 15:08:44

+3

這個更通用的版本是NotepadReplacer:http://www.binaryfortress .com/NotepadReplacer/ – 2013-04-18 17:00:32

-3

如果您使用的是便攜式版本,則不能將Sublime設置爲任何文件的默認程序,因爲Windows不會將其確認爲可打開任何內容的程序。

+4

不,我們可以將它們設置爲默認應用程序。 – IJas 2013-08-21 06:12:51

17

以下是一些關聯Sublime Text Portable的方法。以下文本需要保存爲擴展名爲.reg的文件,然後在該文件上右鍵單擊>合併。

這將添加一個崇高的右鍵菜單項中的所有文件:

Windows Registry Editor Version 5.00 

[HKEY_CLASSES_ROOT\*\shell] 
@="Sublime" 

[HKEY_CLASSES_ROOT\*\shell\Sublime] 
@="&Sublime" 

[HKEY_CLASSES_ROOT\*\shell\Sublime\command] 
@="\"D:\\PortableApps\\SublimeText\\sublime_text.exe\" \"%1\"" 

這將有崇高的文本替換所有呼叫的notepad.exe:

Windows Registry Editor Version 5.00 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\Notepad.exe] 
"Debugger"="\"D:\\PortableApps\\SublimeText\\sublime_text.exe\" -z" 

這將創建一個SublimeFile類,然後您可以與任何擴展名關聯。

Windows Registry Editor Version 5.00 

[HKEY_CLASSES_ROOT\SublimeFile\shell] 
@="edit" 

[HKEY_CLASSES_ROOT\SublimeFile\DefaultIcon] 
@="\"D:\\PortableApps\\SublimeText\\sublime_text.exe\",0" 

[HKEY_CLASSES_ROOT\SublimeFile\shell\edit\command] 
@="\"D:\\PortableApps\\SublimeText\\sublime_text.exe\" \"%1\"" 

這會再與SublimeFile .ext爲擴展名相關聯:

Windows Registry Editor Version 5.00 

[HKEY_CLASSES_ROOT\.ext] 
@="SublimeFile" 
+0

非常有用。謝謝。 – 2013-07-11 14:37:48

+0

謝謝!設置Sublime替換記事本是驚人的,但它不適用於包含空格的路徑(至少對我來說),它只是爲每個空格分隔的路徑元素打開一個選項卡。任何想法解決這個問題? – Dan 2013-09-03 07:47:11

5

您可以只運行CCleaner的註冊表清理工具,然後選擇並添加默認程序如常。它從ST2升級到ST3時適用於我。

0

試試這個,

@echo off 

SET st2Path=C:\Program Files\Sublime Text 2\sublime_text.exe 

rem add it for all file types 
@reg add "HKEY_CLASSES_ROOT\*\shell\Open with Sublime Text 2"   /t REG_SZ /v "" /d "Open with Sublime Text 2" /f 
@reg add "HKEY_CLASSES_ROOT\*\shell\Open with Sublime Text 2"   /t REG_EXPAND_SZ /v "Icon" /d "%st2Path%,0" /f 
@reg add "HKEY_CLASSES_ROOT\*\shell\Open with Sublime Text 2\command" /t REG_SZ /v "" /d "%st2Path% \"%%1\"" /f 

rem add it for folders 
@reg add "HKEY_CLASSES_ROOT\Folder\shell\Open with Sublime Text 2"   /t REG_SZ /v "" /d "Open with Sublime Text 2" /f 
@reg add "HKEY_CLASSES_ROOT\Folder\shell\Open with Sublime Text 2"   /t REG_EXPAND_SZ /v "Icon" /d "%st2Path%,0" /f 
@reg add "HKEY_CLASSES_ROOT\Folder\shell\Open with Sublime Text 2\command" /t REG_SZ /v "" /d "%st2Path% \"%%1\"" /f 

pause 

我測試了這對SublimeText 3(便攜式)也和工作的罰款。用上面的代碼創建一個.bat文件並以管理員身份運行它。

參考:https://gist.github.com/mrchief/5628677

+0

更新!,謝謝:) – IJas 2018-02-20 12:29:36

20

1:您還可以設置您的關聯控制面板在:

控制面板>Default Programs>關聯文件或協議與特定程序:

enter image description here

2:或者,通過IApplicationAssociationRegistrationUI::LaunchAdvancedAssociationUI從代碼中調用它;)

HRESULT LaunchAdvancedAssociationUI(
    [in] LPCWSTR pszAppRegName 
); 
+2

這是一個比修改註冊表更好的方法。感謝您發佈此信息。 – 2015-08-25 22:35:27

+0

@nomadic_squirrel:不客氣;) – 2015-09-04 19:18:54