代码改变世界

Sublime Text 2 && MinGW G++ On Windows

2013-01-21 11:47  @影子@  阅读(380)  评论(0编辑  收藏  举报

一名合格的程序员在我看来至少需要三样东西:

(我还不合格:P)

  • 一个称手的键盘
  • 一个舒适的屏幕
  • 一个好用的编辑器
  •  
  • 这篇随笔就是对Sublime Text 2 这个编辑器我一个月来的使用总结,方便自己以后翻阅,也免了自己再去海量的网络文章中找寻。这篇并不是ST2的介绍
  • sub_thumb2_thumb

    Sublime Text 2 配置

  • 官方文档在此

    http://docs.sublimetext.info/en/latest/index.html

  • 安装Package Control

  • Ctrl +` 调出命令行,输入下面这段神奇的命令
  • import urllib2,os; 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())); open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read()); print 'Please restart Sublime Text to finish installation'
  •  
  • 通过Package Control 安装插件

  • 按Ctrl + Shift +p 打开命令面板 输入 pci(package control : Install的缩写),回车

  • ConverToUTF8  中文支持

  • CTags  代码的navigation to definition (即VS中的 goto definition)
  •     安装CTags之前需要先到 http://ctags.sourceforge.net/ (墙)去下载Ctags,解压后在环境变量PATH中添加路径:
  • 如  F:\Program Files\Sublime Text 2\ctags58
  • 在左侧边栏右击工程,选择Ctags :Rebuild Tags,然后当光标停留在函数名上时,右击选择Navigate To Definition,就会跳到相关定义。
  • CTags快捷键:
  • ctags-sublime-_thumb7_thumb
  • 更多信息,参看https://github.com/SublimeText/CTags
  • SideBarEnhancements 边栏命令增强,右击边栏后多了一些命令
  • Theme Soda 一个界面配置主题(不是代码配色方案)
  •   启用主题需要在 Preferences -> Settings – User  中添加
  • "theme": "Soda Dark.sublime-theme"
  • "theme": "Soda Light.sublime-theme"
  •  
  • C++编译配置(后文介绍MinGW G++的安装)

  • Tools –> Build System –> New Build System… 在给出的空文件中粘贴后保存
  •  
    复制代码
    {
        //"cmd": ["g++","${file}","-std=c++11" ,"-o", "${file_path}/${file_base_name}" ,"-I","F:/MinGW/boost_1_50_0"],
        "cmd": ["make"],
        "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
        "working_dir": "${file_path}",
        "selector": "source.c, source.c++",
        
    
        "variants":
        [
            {
                "name": "Run",
                "cmd": ["${file_path}/${file_base_name}"]
            }
        ]
    }
    复制代码
  • 注意注释掉的一行cmd,该行用g++直接编译当前文件。逗号隔开的字符串,相当于在命令行输入命令时用空格隔开,请根据自己的编译要求修改。
  • 第二行是使用make命令进行编译(需要自己在当前文件的所在目录下有 makefile 或Makefile)
  • 二者只能取其一。
  • Ctrl+B 编译,Ctrl+Shift+B运行。
  • 文件默认保存在 Preference –> Browse Packages… 中的User目录下
  • 如:C:\Users\ZhengLi\AppData\Roaming\Sublime Text 2\Packages\User
  •        文件名:Z++.sublime-build(后缀固定)
  • 也可以打开该目录后,打开C++目录找到C++.sublime-build 直接修改(不建议)。
     

    Sublime Text 2 常用快捷键

  • Vim的快捷键

  • 在用户设置文件中加入
    "ignored_packages": []
  • 按ESC后就可以进入Vim 模式,把ST2当Vim来用吧
  • ST2常用快捷键

    Tab              缩进
    Shift+Tab        去除缩进
    Ctrl+Enter       插入行后
    Ctrl+Shift+Enter 插入行前
    Ctrl+Shift+UP    与上行互换
    Ctrl+Shift+DOWN  与下行互换
    Ctrl+Shift+V     粘贴并自动缩进(无需担心代码格式问题了,建议抛弃Ctrl+V)
    Ctrl+/           行注释
    Ctrl+Shift+/     块注释
    Ctrl+M           跳到光标匹配位置(匹配位置会有下划线,一般为括号)
    Ctrl+Shift+M     选择括号内的内容(继续按则继续选择父括号)
    Ctrl+J           合并选择的多行
    Ctrl+L           选择整行(继续按则选择下行)
    Ctrl+K,Ctrl+K    从光标处删除至行尾
    Ctrl+K,Ctrl+Backspace  从光标处删除至行首
    Ctrl+Shift+K     删除整行
    Ctrl+Shift+D     复制光标所在整行,插入在该行之前


  • 多行改:
    Ctrl+D           选中光标所在处词(继续按就向下继续选相同词)
    Alt+F3             选中与光标处相同的全部词
    按住Ctrl左键选择代码,可选不连续代码
    按住Shift右键(或者仅按鼠标中键)框选代码,可选矩形区代码

    Ctrl+Shift+L      同时编辑所选行

    Ctrl+K,Ctrl+U    改为大写
    Ctrl+K,Ctrl+L    改为小写

    Ctrl+Shift+[     折叠代码
    Ctrl+Shift+]     展开代码

    Ctrl+P             跳转面板
    Ctrl+Shift+P     控制面板
    Ctrl+G               跳到行(Ctrl + P , : )
    Ctrl+R              调到标识符(Ctrl+P , @ )

    @ : 可以在跳转面板混用 如 test.cpp@main,跳到test.cpp文件的main函数

    F11

    Shift+F11 两种全屏模式,可以用控制面板控制显示哪些view

    MinGW G++ 安装

    安装,配置环境变量都没什么好说的,官网http://www.mingw.org/

    安装有个关键命令在这个页面http://www.mingw.org/wiki/Getting_Started

    其实就一句:

    mingw-get install g++

    这是因为我安装完之后发现没有给我装g++(貌似是当初我没有在安装程序中勾选该项?)

    请注意:必须用英文版g++,否则无法在Sublime Text2的编译结果窗口中显示中文的报错信息。 (如果你的g++“不幸”被自动装成了中文版,或许你可以试一试这个命令(也许需要先删掉MinGW根目录\bin中的g++,我没试过))。(默认安装 是否为英文与什么有关我也不清楚,或许是与系统语言有关,但我也不确定。我在中文win7下就自动装成了中文,但我在中文版的win8下就装的英文版(用 了上文的命令)。望大神赐教)。

     

    安装完毕后把F:\MinGW\bin 下的 mingw32-make.exe 改为 make.exe

    当然了,不改也可以。

     

    Sublime Text 2 与 MinGW G++ 协同编程的一个小细节

    那就是ST2貌似不读取除Path外的环境变量(说貌似是因为我没有读过ST2的官方文档)

    在使用其他库时尤其需要注意。

    请注意:这个章节也许在非win8 Release Preview环境下是无效的(我没有在win7下测试,我的系统是win8 RP),也就是说也许在win7下下文所述4个环境变量可以被ST2正确读取。

    http://www.mingw.org/wiki/IncludePathHOWTO

    http://gcc.gnu.org/onlinedocs/cpp/Environment-Variables.html#Environment-Variables

    这两个文档讲述了g++找寻头文件的规则,第二个文档给出了4个与找寻头文件相关的环境变量

    CPATHC_INCLUDE_PATHCPLUS_INCLUDE_PATHOBJC_INCLUDE_PATHCPATHspecifies a list of directories to be searched as if specified with-I, but after any paths given with-Ioptions on the command line. This environment variable is used regardless of which language is being preprocessed.  写博客真是个体力活。这段时间在学习C++,接下来也希望可以分享些C++的东西。用Windows Live Writer 写完,发上来格式似乎不大对?郑理 Presents
  • 水平有限,见笑。
  • 后记
  • 如果使用Windows 8的cmd编译,将会正常到这些环境变量定义的地方找寻头文件。但在ST2中无效。这也是为什么上文给的c++编译配置代码注释掉的一行中有-I 参数的原因。
  • The remaining environment variables apply only when preprocessing the particular language indicated.