Sublime Text 是一個代碼編輯器(Sublime Text 2是收費軟件,但可以無限期試用),也是HTML和散文先進的文本編輯器。Sublime Text是由程序員Jon Skinner於2008年1月份所開發出來,它最初被設計爲一個具有豐富擴展功能的Vim。我這裏用的Windows平臺。把Sublime操作模式修改成Vim習慣(Preferences->Settings-User),註釋“Vintage"行
Sublime快捷鍵
- ctrl+shift+p:打開命令行
- ctrl+p:搜索項目中的文件,支持模糊匹配
- ctrl+r:列出當前文件中的所有函數,同ctrl+p後按一個@符號一樣,其實可以把ctrl+r理解成ctrl+p的快捷鍵
- ctrl+r+‘:’/'#':先刪除前面的’@‘,接‘:',再在後面輸入行號,跳轉指定行,接'#',搜索字符串,注意,支持組合使用,例如,可以在’@‘/':'/'#'前面加上文件名字,在指定文件裏面進行相應的操作,例如,ctrl+p後,輸入file_name@,就直接列出了file_name文件裏面的函數
- ctrl+f:當前文件中查找關鍵字
- ctrl+shift+鼠標左鍵:選中函數,定位函數定義位置
- ctrl+t:按兩次T,定位函數定義的地方,與上面ctrl+shift+鼠標左鍵一樣
- ctrl+shift+f:在所有文件裏面搜索
- 多重選擇,按下ctrl,在希望出現光標的地方點擊
- F11:全屏
- shift+F11:全屏免打擾模式,只編輯當前文件
- Ctrl+M 光標移動至括號內開始或結束的位置
- Ctrl+Shift+M 選擇括號內的內容(按住-繼續選擇父括號)
- Esc 退出光標多行選擇,退出搜索框,命令框等
- Ctrl+D 選中光標所佔的文本,繼續操作則會選中下一個相同的文本
- Alt+F3 選中文本按下快捷鍵,即可一次性選擇全部的相同文本進行同時編輯。舉個栗子:快速選中並更改所有相同的變量名、函數名等
Package Control插件
安裝Package Control插件,有兩種方式,一種是通過命令行,另一種是通過下載安裝包
命令行安裝
- 打開控制檯,直接通過Ctrl+~,或者通過View->Show Console
- 粘貼下面內容到控制檯
Sublime text 3
import urllib.request,os,hashlib; h = 'eb2297e1a458f27d836c04bb0cbaf282' + 'd0e7a3098092775ccb37ca9d6b2e4b7d'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener(
urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try
manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)
Sublime text 2
import urllib2,os,hashlib; h = 'eb2297e1a458f27d836c04bb0cbaf282' + 'd0e7a3098092775ccb37ca9d6b2e4b7d'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); os.makedirs( ipp
) if not os.path.exists(ipp) else None; urllib2.install_opener( urllib2.build_opener( urllib2.ProxyHandler()) ); by = urllib2.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); open( os.path.join( ipp,
pf), 'wb' ).write(by) if dh == h else None; print('Error validating download (got %s instead of %s), please try manual install' % (dh, h) if dh != h else 'Please restart Sublime Text to finish installation')
下載安裝包安裝
- 點擊 Preferences->Browse Packages… menu
- 選擇安裝路徑
- 下載Package Control.sublime-package,並且拷貝到安裝路徑
- 重啓Sublime Text
安裝成功後,將會看到Perference->Package control tab
CTags插件
安裝ctags插件,同樣有兩種方式,一種是通過Package Control插件,另一種是通過直接下載ctags的安裝包,我這裏只對Package Control方式進行介紹。
Package Control方式安裝
按下 Shift + Ctrl + p 調出命令面板。輸入 install 調出 Package Control: Install Package 選項。該選項會列出所有可被安裝的插件,輸入ctags,或者從列表中選擇ctags進行安裝。安裝成功後,就會看到Perference->Package Settings->CTags。安裝完成之後重啓Sublime Text 2
注意,這裏安裝成功後也要去下載ctags.exe纔可以用,下載了同樣要修改環境變量,能夠找到改可執行文件。
使用方法:
- 在左側列表中選擇項目目錄
- 右鍵->CTags:Rebuild Tags
- 選中函數,Ctrl+兩次T
CScope插件
安裝同CTags插件一樣,用Package Control方式安裝很方便,同Ctags一樣,安裝成功後,同時也要去下載cscope.exe纔可以用。
使用方法:
- 生成 cscope.files列表,例如:進入windows命令行,進入項目文件夾,執行>dir /s /b *.c *.cpp *.h *.hpp > cscope.files生成cscope.files
- 生成cscope.out文件,例如:用上面生成的cscope.files文件生成cscope.out,執行>cscope -b
- 修改cscope的配置文件,Preferences->Browse Packages->Cscope,修改文件CscopeSublime.sublime-settings裏面關於"database_location"的內容,指定到上面生成的cscope.out文件路徑,如果使用的是Sublime text 3,沒有這一步,直接把上面生成的cscope.out文件放到當前代碼文件夾裏面即可
- 重啓Sublime text 2
brackethighlighter插件
brackethighlighter爲sublime括號配對顯示插件,直接通過Package Control插件來安裝,默認顏色不好看,修改顏色顯示,Preference->Package Setting->Bracket highlighter->Bracket Setting - User,粘貼以下內容。配置文件修改參考於:https://gist.github.com/leopku/89ff7eb32b8563e0b523
{
"bracket_styles": {
"default": {
"icon": "dot",
"color": "brackethighlighter.default",
"style": "outline"
},
"unmatched": {
"icon": "question",
"color": "brackethighlighter.unmatched",
"style": "outline"
},
"curly": {
"icon": "curly_bracket",
"color": "brackethighlighter.curly",
"style": "outline"
},
"round": {
"icon": "round_bracket",
"color": "brackethighlighter.round",
"style": "outline"
},
"square": {
"icon": "square_bracket",
"color": "brackethighlighter.square",
"style": "underline"
},
"angle": {
"icon": "angle_bracket",
"color": "brackethighlighter.angle",
"style": "underline"
},
"tag": {
"icon": "tag",
// "endpoints": true,
"color": "brackethighlighter.tag",
"style": "outline"
},
"c_define": {
"icon": "hash"
// "color": "brackethighlighter.c_define",
// "style": "underline"
},
"single_quote": {
"icon": "single_quote",
"color": "brackethighlighter.single_quote",
"style": "outline"
},
"double_quote": {
"icon": "double_quote",
"color": "brackethighlighter.double_quote",
"style": "outline"
},
"regex": {
"icon": "regex"
// "color": "brackethighlighter.quote",
// "style": "underline"
}
}
}