【译】Metasploit:代码风格小建议



编辑器配置

请让你的文本编辑器为你处理格式化问题,这会在我们接受你的代码的时候不那么头疼。
绝大多数的 Metasploit 贡献者在使用 vim 和/或者 gvim 作为他们的默认编辑器。
如果你有一些其他的编辑器的配置的话,我们非常乐意看到你分享出来!

VIM 与 GVIM

添加下面的配置文件到你的 .vimrc 文件中,你的代码将会更加符合 CONTRIBUTING.mdmsftidy.rb 指南中的要求。

顺便提一句,如果你安装了 Janus Distribution 这个 vim 的插件,那么下面配置文件中的工作将会被这个插件自动化地完成。但是如果你是一个特殊的雪花(译者注:可能是完美主义者的意思?),那么下面的操作就可以让你的代码有非常完美的格式。

set shiftwidth=2 tabstop=2 softtabstop=2
" textwidth 这个配置项会影响 `gq` 命令,这对格式化注释非常方便
set textwidth=78
" Metasploit 要求使用 空格 代替 制表符
set expandtab
" 高亮每一行结尾(EOL,end of line)的空格,并且将 制表符 与 空格合并
hi BogusWhitespace ctermbg=darkgreen guibg=darkgreen
match BogusWhitespace /\s\+$\|^\t\+ \+\|^ \+\t\+/

如果您希望这些设置只对于 Ruby 文件生效,您可以使用 vim 的 autogroupautocommands 功能。

if !exists("au_loaded")
    let au_loaded = 1
    augroup rb
        au FileType ruby set shiftwidth=2 tabstop=2 softtabstop=2 textwidth=78
        au FileType ruby set expandtab
        au FileType ruby hi BogusWhitespace ctermbg=darkgreen guibg=darkgreen
        au FileType ruby match BogusWhitespace /\s\+$\|^\t\+ \+\|^ \+\t\+/
    augroup END
endif

你也可以使用 :set list 命令来将所有空格视为不同的字符,以便更容易看到错误的空白。

Rubymine(译者注:Jet Brains 出品)

鉴于切换到使用标准Ruby缩进,RubyMine 不再需要特殊配置。 两个空格替换制表符妥妥的!

语法与大小写

虽然我们了解世界上有很多种语言,但Metasploit主要是以美国英语开发的。因此,模块中的描述语法应当符合美国英语的语法惯例。这样做不仅可以确保大多数 Metasploit 用户使用的方便,而且还可以帮助自动(和手动)翻译为其他语言。

标题

模块标题应该像文章的标题一样容易阅读。 有关英文的大写规则,请参阅:

唯一的例外是函数名称(例如:thisFunc())和特殊的文件名称(例如:thisfile.ocx)。
模块标题应该被良好设计,所以第一个和最后一个词都以大写字母开头,因为这是 msftidy.rb 的检查项目。

推荐阅读更多精彩内容

  • 目录(?)[-] 关于Vim 1 Vim的几种模式 启动Vim 文档操作 光标的移动 1 基本移动 2 翻屏 3 ...
    SunnyLeong阅读 6,296评论 0 33
  • 我亲爱的小孩 躺在我的身边 酣睡 姐姐在左 弟弟在右 像给我的人生 安上了两只翅膀 我便成为了幸福的天使 而我...
    妈妈老师是超人阅读 56评论 0 1
  • 看一个人是否能自律,不是在人群中,而是看独处时; 一人独处时,能自律,是真自律;自律贵在坚持,坚持过简单重复的生活...
    理思明阅读 43评论 0 0
  • 当大地冰封了我的城市 我仍用爱 用心 用万般执着 融化这千里冰封 当新年报晓惊醒了我的梦 你消失的身影 笑声 和万...
    厉害了喵阅读 171评论 5 16
  • 明亮而宽敞的教室里 天空的颜色透过帘子的细缝映进来 我抬了抬头 向墙角的一隅 要了一抹灿烂的阳光 作为冬日的念...
    玉米卷的夏天阅读 23评论 0 0