💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
## 样式提示 ### 编辑配置 让您的编辑器负责格代码式化,您可以在验收过程中不会头痛。大多数Metasploit的贡献者使用vim或gvim作为默认的文本编辑器 - 如果你有一个其他编辑器的配置,我们很乐意看到它! #### vim和gvim 将以下设置添加到.vimrc将使得符合[CONTRIBUTING.md](https://github.com/rapid7/metasploit-framework/blob/master/CONTRIBUTING.md)和[msftidy.rb](https://github.com/rapid7/metasploit-framework/blob/master/tools/msftidy.rb)的规则变得相当容易。 顺便说一句,如果你安装了vim的[Janus Distribution](https://github.com/carlhuda/janus)插件,这一切都是为你自动完成的。但是,如果你是一个特殊的snowflake,那么下面就是让你的代码格式化的好方法。 ~~~ set shiftwidth=2 tabstop=2 softtabstop=2 " textwidth affects `gq` which is handy for formatting comments set textwidth=78 " Metasploit requires spaces instead of hard tabs set expandtab " Highlight spaces at EOL and mixed tabs and spaces. hi BogusWhitespace ctermbg=darkgreen guibg=darkgreen match BogusWhitespace /\s\+$\|^\t\+ \+\|^ \+\t\+/ ~~~ 如果您希望这些设置仅适用于ruby文件,则可以使用自动组和自动命令。 ~~~ 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 鉴于切换到使用标准的Ruby缩进,RubyMine不再需要特殊的配置。生活在双个空格的tab! ### 语法和大写 虽然我们知道世界上有很多种语言,弹Metasploit主要是用美国英语开发的。因此,模块中的描述语法应符合美国英语惯例。这样做不仅可以确保大多数Metasploit用户的易用性,还可以帮助自动(和手动)翻译成其他语言。 #### 标题 模块标题应该像标题一样阅读。有关英文的大写规则,请参阅:http://owl.english.purdue.edu/owl/resource/592/01/ 唯一的例外是函数名称(如'thisFunc()')和特定的文件名(如thisfile.ocx)。应该当为模块标题,所以第一个和最后一个词都以大写字母开头,因为这是一个msftidy.rb检查。