使用Sublime Text进行ERLANG开发

1、为什么使用Sublime Text
    漂亮的用户界面
    强大的功能,支持大多数语言
    程序简洁,内存占用小
    神器,支持Windows,Mac,Linux
    简单的配置,齐全的插件
    支持多个项目
    不需要主动保存,每次打开都会恢复到上次编辑的状态
 
2、Sublime Text安装和插件
    官方网址:http://www.sublimetext.com
    推荐使用版本:2.0.2
    虽然注册和不注册都能正常使用,但是推荐还是找个激活码来注册一下
    2.0.2可用激活码,复制以下内容到Help->Enter License完成注册:
----- BEGIN LICENSE -----
Andrew Weber
Single User License
EA7E-855605
813A03DD 5E4AD9E6 6C0EEB94 BC99798F
942194A6 02396E98 E62C9979 4BB979FE
91424C9D A45400BF F6747D88 2FB88078
90F5CC94 1CDC92DC 8457107A F151657B
1D22E383 A997F016 42397640 33F41CFC
E1D0AE85 A0BBD039 0E9C8D55 E1B89D5D
5CDB7036 E56DE1C0 EFCC0840 650CD3A6
B98FC99C 8FAC73EE D2B95564 DF450523
------ END LICENSE ------
    
   汉化:虽然直接看英文菜单能稍微锻炼英语能力,这边还是提供汉化的办法吧
   用法1: 1、进入安装目录\Sublime Text 2\Pristine Packages
              2、将Default.sublime-package改名为Default.sublime-package.zip然后解压缩到文件夹
              3、使用汉化包中的文件覆盖解压出来的文件,然后采用zip方式压缩回去,重命名为Default.sublime-package即可
   用法2:更简单的方法是将汉化包中的文件直接复制..\Administrator\AppData\Roaming\Sublime Text 2\Packages\Default目录覆盖原始文件即可
 
   安装插件:某些重要功能是通过插件提供的,所以首先要安装插件管理工具

   package control:

       插件管理工具,需要自己安装
  1. 按Ctrl+`调出console
  2. 粘贴以下代码到底部命令行并回车:
    import urllib2,os;pf='Package Control.sublime-package';ipp=sublime.installed_packages_path();os.makedirs(ipp) if not os.path.exists(ipp) else None;open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read())
  3. 重启Sublime Text 2。
  4. 如果在Perferences->package settings中看到package control这一项,则安装成功。
    
    在安装完插件管理工具后就能够通过命令来安装插件
    安装插件的方法一:
  1. 按下Ctrl+Shift+P调出命令面板
  2. 输入install 调出 Install Package 选项并回车,然后在列表中选中要安装的插件。
    安装插件的方法二:
       点击Preferences->Package Control进入Package Control: 输入框,输入install Package即可
 
    CTags安装:
        支持大多数语言的函数、宏等跳转。
        原理是首先预处理生成标签文件,标签文件详细定义一个函数宏的使用位置和定义位置等信息,每次跳转直接查询标签文件即可。
        在插件安装框输入CTags找到对应插件安装即可
    CTags使用方法:
        1、预处理:
        在选中的文件夹上右键选择CTags:Rebuild Tags,预处理根据选中内容的多少需要的处理时间不同。
        
        2、跳转:
        默认情况下按按住crtl键,连击两下t就能够实现函数调转到定义位置和变量或者宏的跳转
        3、其它按键:
        请参看Preferences->Package Setting->CTags->Key Bindings-Default
 
        版本相关插件:Git、SVN
        
        Erlang相关插件:
        暂时无法通过插件管理器来安装,必须要手动的安装
        https://github.com/fjl/Sublime-Erlang:语法插件,仅优化现有的erlang语法功能,全平台支持
        1、从git上下载代码,讲拿到的Sublime-Erlang复制到Sublime Text的Packages目录下,改名并替换掉原有的Erlang文件夹。
        2、补齐功能有优化,定义跳转有优化
        3、个人感觉用处不大
   Git无法下载的附插件包:https://files.cnblogs.com/files/luobei/Sublime-Erlang.rar
        https://github.com/ostinelli/SublimErl:不支持windows,仅支持mac和Linux,支持erlang系统函数的补齐,各种测试函数
        1、能够支持系统函数的补全
        2、不支持windows
        3、配置比较复杂,需要安装rebar,erl才能够正常运行
        
3、使用Sublime Text进行Erlang代码开发:
        1、配置编译环境
             首先你需要安装erlang程序
             确保在win的cmd指令内能够不需要路径执行erl,如果不能,请配置环境变量
             配置方式是(控制面板\所有控制面板项\系统->高级系统设置->环境变量->系统变量->PATH->加入ERLANG的bin路径..\erl5.10.3\bin,请注意这里是绝对路径)
         选中文件,按Crtl+B就能实现erl文件的编译,编译产生的beam文件直接在本目录下
           编译命令的配置在Preferences->Browse Packages-> Erlang ->Erlang.sublime-build,可以通过蟹盖erlc指令将beam文件重定向到任意文件或者是加入自己的编译参数。
        
        2、编写自己的erlang代码木板
             Eclipse的重要功能是创建gen_server模块就给你创建对应的回调函数,sublime Text也可以做到,通过使用snippet功能能够自定义代码块。
             增加自定义代码块:Tools ->new sinppet,在新的sinppet的CDATA代码块加入自己想要的代码
             通过自定义按键来定义insert sinppet操作,
             
             通过选择不同的模板来选择代码块,上述代码来源于sublime-erlang插件
        3、引入ERLANG的源代码
             Project->Add Folder to Project->加入ERLANG源码目录
           通过引入Erlang的源代码,并对源代码进行ctags之后,就能实现任意erlang系统函数的定义跳转
           多数情况下识别都是没问题的。
    
        4、小技巧:
             通过修改Setting-Default中的file_exclude_patterns,加入beam文件能够避免beam文件出现在编辑器中
             修改translate_tabs_to_spaces选项从false到true可以实现Tab的空格补齐tab_size能够指定Tab被几个空格替代。
             推荐ERLANG的颜色主题为Monokai Bright
             如果是windows编写代码,Linux执行的话,仅仅将Sublime Text当作编辑器来用也是极好的。
 
附一:Sublime Text的快捷键(Preferences->Key Bindings-Default)
        以下为常用快捷键,可以随意修改,建议是不要变动Key Bindings-Default,而是配置Key Bindings-User,User的配置会覆盖Default的数据:
        
Ctrl+F 文件内文字查找
Ctrl+H 文件内文字替换
Ctrl+P 在所有项目中查找文件
Ctrl+O 打开外部文件
Ctrl+N 创建新文件
Ctrl+G 跳转到某行
Ctrl+Shift+F 文件夹内文字查找
Ctrl+L 选择整行(按住-继续选择下行)
Ctrl+KK 从光标处删除至行尾
Ctrl+Shift+K 删除整行
Ctrl+Shift+D 复制光标所在整行,插入在该行之前
Ctrl+D 选词(按住-继续选择下个相同的字符串)
Ctrl+M 光标移动至括号内开始或结束的位置
Ctrl+Shift+M 选择括号内的内容(按住-继续选择父括号)
Ctrl+/ 注释整行(如已选择内容,同“Ctrl+Shift+/”效果)
Ctrl+Shift+/ 注释已选择内容
Ctrl+Z 撤销
Ctrl+Y 恢复撤销
Ctrl+M 光标跳至对应的括号
Ctrl+Shift+A 选择光标位置父标签对儿
Ctrl+T 词互换
Ctrl+Enter 插入行后
Ctrl+Shift Enter 插入行前
Ctrl+K Backspace 从光标处删除至行首
Shift+Tab 去除缩进
Tab 缩进
F9 行排序(a-z)

附二:Sublime Text的配置(Preferences->Setting-Default)
        
// While you can edit this file, it’s best to put your changes in
// “User/Preferences.sublime-settings”, which overrides the settings in here.
//
// Settings may also be placed in file type specific options files, for
// example, in Packages/Python/Python.sublime-settings for python files.
{
// Sets the colors used within the text area
// 主题文件的路径
“color_scheme”: “Packages/Color Scheme – Default/Monokai.tmTheme”,
// Note that the font_face and font_size are overriden in the platform
// specific settings file, for example, “Preferences (Linux).sublime-settings”.
// Because of this, setting them here will have no effect: you must set them
// in your User File Preferences.
// 设置字体和大小,必须在Settings-User里重写,这里设置没有任何效果
“font_face”: “Consolas”,
“font_size”: 12,
// Valid options are “no_bold”, “no_italic”, “no_antialias”, “gray_antialias”,
// “subpixel_antialias” and “no_round” (OS X only)
// 字体选项:no_bold不显示粗体字,no_italic不显示斜体字,no_antialias和no_antialias关闭反锯齿
// subpixel_antialias和no_round是OS X系统独有的
“font_options”: [],
// Characters that are considered to separate words
// 在文字上双击会全选当前的内容,如果里面出现以下字符,就会被截断
“word_separators”: “./\\()\”‘-:,.;<>~!@#$%^&*|+=[]{}`~?”,
// Set to false to prevent line numbers being drawn in the gutter
// 是否显示行号
“line_numbers”: true,
// Set to false to hide the gutter altogether
// 是否显示行号边栏
“gutter”: true,
// Spacing between the gutter and the text
// 行号边栏和文字的间距
“margin”: 4,
// Fold buttons are the triangles shown in the gutter to fold regions of text
// 是否显示代码折叠按钮
“fold_buttons”: true,
// Hides the fold buttons unless the mouse is over the gutter
// 不管鼠标在不在行号边栏,代码折叠按钮一直显示
“fade_fold_buttons”: true,
// Columns in which to display vertical rulers
//列显示垂直标尺,在中括号里填入数字,宽度按字符计算
“rulers”: [],
// Set to true to turn spell checking on by default
// 是否打开拼写检查
“spell_check”: false,
// The number of spaces a tab is considered equal to
// Tab键制表符宽度
“tab_size”: 4,
// Set to true to insert spaces when tab is pressed
// 设为true时,缩进和遇到Tab键时使用空格替代
“translate_tabs_to_spaces”: false,
// If translate_tabs_to_spaces is true, use_tab_stops will make tab and
// backspace insert/delete up to the next tabstop
// translate_tabs_to_spaces设置为true,Tab和Backspace的删除/插入作用于制表符宽度
// 否则作用于单个空格
“use_tab_stops”: true,
// Set to false to disable detection of tabs vs. spaces on load
// false时禁止在载入的时候检测制表符和空格
“detect_indentation”: true,
// Calculates indentation automatically when pressing enter
// 按回车时,自动与制表位对齐
“auto_indent”: true,
// Makes auto indent a little smarter, e.g., by indenting the next line
// after an if statement in C. Requires auto_indent to be enabled.
//针对C语言的
“smart_indent”: false,
// Adds whitespace up to the first open bracket when indenting. Requires
// auto_indent to be enabled.
// 需要启用auto_indent,第一次打开括号缩进时插入空格?(没测试出来效果…)
“indent_to_bracket”: true,
// Trims white space added by auto_indent when moving the caret off the
// line.
// 显示对齐的白线是否根据回车、tab等操作自动填补
“trim_automatic_white_space”: true,
// Disables horizontal scrolling if enabled.
// May be set to true, false, or “auto”, where it will be disabled for
// source code, and otherwise enabled.
// 是否自动换行,如果选auto,需要加双引号
“word_wrap”: false,
// Set to a value other than 0 to force wrapping at that column rather than the
// window width
// 设置窗口内文字区域的宽度
“wrap_width”: 0,
// Set to false to prevent word wrapped lines from being indented to the same
// level
// 防止被缩进到同一级的字换行
“indent_subsequent_lines”: true,
// Draws text centered in the window rather than left aligned
// 如果没有定义过,则文件居中显示(比如新建的文件)
“draw_centered”: false,
// Controls auto pairing of quotes, brackets etc
// 自动匹配引号,括号等
“auto_match_enabled”: true,
// Word list to use for spell checking
// 拼写检查的单词列表路径
“dictionary”: “Packages/Language – English/en_US.dic”,
// Set to true to draw a border around the visible rectangle on the minimap.
// The color of the border will be determined by the “minimapBorder” key in
// the color scheme
// 代码地图的可视区域部分是否加上边框,边框的颜色可在配色方案上加入minimapBorder键
“draw_minimap_border”: false,
// If enabled, will highlight any line with a caret
// 突出显示当前光标所在的行
“highlight_line”: false,
// Valid values are “smooth”, “phase”, “blink”, “wide” and “solid”.
// 设置光标闪动方式
“caret_style”: “smooth”,
// Set to false to disable underlining the brackets surrounding the caret
// 是否特殊显示当前光标所在的括号、代码头尾闭合标记
“match_brackets”: true,
// Set to false if you’d rather only highlight the brackets when the caret is
// next to one
// 设为false时,只有光标在括号或头尾闭合标记的两端时,match_brackets才生效
“match_brackets_content”: true,
// Set to false to not highlight square brackets. This only takes effect if
// match_brackets is true
// 是否突出显示圆括号,match_brackets为true生效
“match_brackets_square”: false,
// Set to false to not highlight curly brackets. This only takes effect if
// match_brackets is true
// 是否突出显示大括号,match_brackets为true生效
“match_brackets_braces”: false,
// Set to false to not highlight angle brackets. This only takes effect if
// match_brackets is true
// 是否突出显示尖括号,match_brackets为true生效
“match_brackets_angle”: false,
// Enable visualization of the matching tag in HTML and XML
// html和xml下突出显示光标所在标签的两端,影响HTML、XML、CSS等
“match_tags”: true,
// Highlights other occurrences of the currently selected text
// 全文突出显示和当前选中字符相同的字符
“match_selection”: true,
// Additional spacing at the top of each line, in pixels
// 设置每一行到顶部,以像素为单位的间距,效果相当于行距
“line_padding_top”: 1,
// Additional spacing at the bottom of each line, in pixels
// 设置每一行到底部,以像素为单位的间距,效果相当于行距
“line_padding_bottom”: 1,
// Set to false to disable scrolling past the end of the buffer.
// On OS X, this value is overridden in the platform specific settings, so
// you’ll need to place this line in your user settings to override it.
// 设置为false时,滚动到文本的最下方时,没有缓冲区
“scroll_past_end”: true,
// This controls what happens when pressing up or down when on the first
// or last line.
// On OS X, this value is overridden in the platform specific settings, so
// you’ll need to place this line in your user settings to override it.
// 控制向上或向下到第一行或最后一行时发生什么(没明白也没试出来)
“move_to_limit_on_up_down”: false,
// Set to “none” to turn off drawing white space, “selection” to draw only the
// white space within the selection, and “all” to draw all white space
// 按space或tab时,实际会产生白色的点(一个空格一个点)或白色的横线(tab_size设置的制表符的宽度),选中状态下才能看到
// 设置为none时,什么情况下都不显示这些点和线
// 设置为selection时,只显示选中状态下的点和线
// 设置为all时,则一直显示
“draw_white_space”: “selection”,
// Set to false to turn off the indentation guides.
// The color and width of the indent guides may be customized by editing
// the corresponding .tmTheme file, and specifying the colors “guide”,
// “activeGuide” and “stackGuide”
// 制表位的对齐白线是否显示,颜色可在主题文件里设置(guide,activeGuide,stackGuide)
“draw_indent_guides”: true,
// Controls how the indent guides are drawn, valid options are
// “draw_normal” and “draw_active”. draw_active will draw the indent
// guides containing the caret in a different color.
// 制表位的对齐白线,draw_normal为一直显示,draw_active为只显示当前光标所在的代码控制域
“indent_guide_options”: ["draw_normal"],
// Set to true to removing trailing white space on save
// 为true时,保存文件时会删除每行结束后多余的空格
“trim_trailing_white_space_on_save”: false,
// Set to true to ensure the last line of the file ends in a newline
// character when saving
// 为true时,保存文件时光标会在文件的最后向下换一行
“ensure_newline_at_eof_on_save”: false,
// Set to true to automatically save files when switching to a different file
// or application
// 切换到其它文件标签或点击其它非本软件区域,文件自动保存
“save_on_focus_lost”: false,
// The encoding to use when the encoding can’t be determined automatically.
// ASCII, UTF-8 and UTF-16 encodings will be automatically detected.
// 编码时不能自动检测编码时,将自动检测ASCII, UTF-8 和 UTF-16
“fallback_encoding”: “Western (Windows 1252)”,
// Encoding used when saving new files, and files opened with an undefined
// encoding (e.g., plain ascii files). If a file is opened with a specific
// encoding (either detected or given explicitly), this setting will be
// ignored, and the file will be saved with the encoding it was opened
// with.
// 默认编码格式
“default_encoding”: “UTF-8″,
// Files containing null bytes are opened as hexadecimal by default
// 包含空字节的文件被打开默认为十六进制
“enable_hexadecimal_encoding”: true,
// Determines what character(s) are used to terminate each line in new files.
// Valid values are ‘system’ (whatever the OS uses), ‘windows’ (CRLF) and
// ‘unix’ (LF only).
// 每一行结束的时候用什么字符做终止符
“default_line_ending”: “system”,
// When enabled, pressing tab will insert the best matching completion.
// When disabled, tab will only trigger snippets or insert a tab.
// Shift+tab can be used to insert an explicit tab when tab_completion is
// enabled.
// 设置为enabled时,在一个字符串间按Tab将插入一个制表符
// 设置为true时,按Tab会根据前后环境进行代码自动匹配填补
“tab_completion”: true,
// Enable auto complete to be triggered automatically when typing.
// 代码提示
“auto_complete”: true,
// The maximum file size where auto complete will be automatically triggered.
// 代码提示的大小限制
“auto_complete_size_limit”: 4194304,
// The delay, in ms, before the auto complete window is shown after typing
// 代码提示延迟显示
“auto_complete_delay”: 50,
// Controls what scopes auto complete will be triggered in
// 代码提示的控制范围
“auto_complete_selector”: “source – comment”,
// Additional situations to trigger auto complete
// 触发代码提示的其他情况
“auto_complete_triggers”: [ {"selector": "text.html", "characters": "<"} ],
// By default, auto complete will commit the current completion on enter.
// This setting can be used to make it complete on tab instead.
// Completing on tab is generally a superior option, as it removes
// ambiguity between committing the completion and inserting a newline.
// 设为false时,选择提示的代码按回车或点击可以输出出来,但选择true时不会输出而是直接换行
“auto_complete_commit_on_tab”: false,
// Controls if auto complete is shown when snippet fields are active.
// Only relevant if auto_complete_commit_on_tab is true.
// auto_complete_commit_on_tab必须为true,控制代码提示的活跃度(没明白…)
“auto_complete_with_fields”: false,
// By default, shift+tab will only unindent if the selection spans
// multiple lines. When pressing shift+tab at other times, it’ll insert a
// tab character – this allows tabs to be inserted when tab_completion is
// enabled. Set this to true to make shift+tab always unindent, instead of
// inserting tabs.
// 设置为false,使用Shift + tab总是插入制表符
“shift_tab_unindent”: true,
// If true, the selected text will be copied into the find panel when it’s
// shown.
// On OS X, this value is overridden in the platform specific settings, so
// you’ll need to place this line in your user settings to override it.
// 选中的文本按Ctrl + f时,自动复制到查找面板的文本框里
“find_selected_text”: true,
//
// User Interface Settings
//
// The theme controls the look of Sublime Text’s UI (buttons, tabs, scroll bars, etc)
// Data\Packages\Theme – Default\Default.sublime-theme控制软件的主题
“theme”: “Default.sublime-theme”,
// Set to 0 to disable smooth scrolling. Set to a value between 0 and 1 to
// scroll slower, or set to larger than 1 to scroll faster
// 滚动的速度
“scroll_speed”: 1.0,
// Controls side bar animation when expanding or collapsing folders
// 左边边栏文件夹动画
“tree_animation_enabled”: true,
// 标签页的关闭按钮
“show_tab_close_buttons”: true,
// OS X 10.7 only: Set to true to disable Lion style full screen support.
// Sublime Text must be restarted for this to take effect.
// 针对OS X
“use_simple_full_screen”: false,
// Valid values are “system”, “enabled” and “disabled”
// 水平垂直滚动条:system和disabled为默认显示方式,enabled为自动隐藏显示
“overlay_scroll_bars”: “system”,
//
// Application Behavior Settings
//
// Exiting the application with hot_exit enabled will cause it to close
// immediately without prompting. Unsaved modifications and open files will
// be preserved and restored when next starting.
//
// Closing a window with an associated project will also close the window
// without prompting, preserving unsaved changes in the workspace file
// alongside the project.
// 热推出功能!退出时不会提示是否保存文件,而是直接退出
// 下次打开软件时,文件保持退出前的状态,没来得及保存的内容都在,但并没有真实的写在原文件里
“hot_exit”: true,
// remember_open_files makes the application start up with the last set of
// open files. Changing this to false will have no effect if hot_exit is
// true
// 软件使用最后的设定打开文件,hot_exit为true时没有效果
“remember_open_files”: true,
// OS X only: When files are opened from finder, or by dragging onto the
// dock icon, this controls if a new window is created or not.
// 针对OS X
“open_files_in_new_window”: true,
// Set to true to close windows as soon as the last file is closed, unless
// there’s a folder open within the window. This is always enabled on OS X,
// changing it here won’t modify the behavior.
// 针对OS X
“close_windows_when_empty”: true,
// 哪些文件会被显示到边栏上
// folder_exclude_patterns and file_exclude_patterns control which files
// are listed in folders on the side bar. These can also be set on a per-
// project basis.
“folder_exclude_patterns”: [".svn", ".git", ".hg", "CVS"],
“file_exclude_patterns”: ["*.pyc", "*.pyo", "*.exe", "*.dll", "*.obj","*.o", "*.a", "*.lib", "*.so", "*.dylib", "*.ncb", "*.sdf", "*.suo", "*.pdb", "*.idb", ".DS_Store", "*.class", "*.psd", "*.db"],
// These files will still show up in the side bar, but won’t be included in
// Goto Anything or Find in Files
“binary_file_patterns”: ["*.jpg", "*.jpeg", "*.png", "*.gif", "*.ttf", "*.tga", "*.dds", "*.ico", "*.eot", "*.pdf", "*.swf", "*.jar", "*.zip"],
// List any packages to ignore here. When removing entries from this list,
// a restart may be required if the package contains plugins.
// 删除你想要忽略的插件,需要重启
“ignored_packages”: ["Vintage"]

}

 

posted on 2015-03-10 19:15  落北  阅读(3793)  评论(0编辑  收藏  举报

导航