在sublime3(2)中生成类或者方法的注释

本文介绍了如何在Sublime Text中安装PackageControl和DocBlockr插件,以便自动生成PHP文档注释。适用于JavaScript、PHP、ActionScript等语言。

1、首先在sublime安装Package Control,具体可以参考:如何安装Package Control

2、安装完Package Control以后,重启sublime;

3、step1:Preferences -> Package Control;

      step2:框内输入命令Install Package回车;

      step3:继续在框内输入DocBlockr,选中需要的后安装即可。

      具体可以参考:如何安装DocBlockr

备注:DocBlockr可以自动生成PHPDoc风格的注释。它支持的语言有Javascript, PHP, ActionScript, CoffeeScript, Java, Objective C, C, C++。只需要在函数上面输入/** ,然后按tab 就会自动生成注释。

<think>我们正在使用Sublime Text3,并且需要匹配中文注释。在编程中,注释通常以特定的符号开头,比如在JavaScript中可能是`//`或`/* */`,在HTML中是`<!-- -->`,在Python中是`#`或`&#39;&#39;&#39;`等。但是,用户没有指定具体的编程语言,所以我们考虑一般情况。 然而,用户提到了“中文注释”,所以我们需要匹配包含中文字符的注释。因此,我们可以分为两步: 1. 匹配注释的格式(根据不同的语言可能不同,但用户没有指定,所以我们可能需要一个通用的方法或者考虑多种注释形式) 2. 在匹配到的注释中,要求包含中文字符。 但是,用户要求的是在Sublime Text3中使用正则表达式,所以我们可以尝试匹配同时满足以下两个条件的文本: - 是注释(即包含注释符号) - 包含中文字符 由于不同语言的注释符号不同,我们可以考虑设计一个匹配多种注释形式的正则表达式,或者针对用户当前使用的文件型来设计。但用户没有说明,所以我们给出一个通用的思路,并给出一个示例(比如以常见的几种注释形式为例)。 另外,在Sublime Text3中,我们可以通过正则表达式搜索功能来查找。 思路: 我们可以使用一个正则表达式,它由两部分组成: a. 匹配注释的开始符号(例如://, /*, <!--, # 等)到注释的结束符号(如果有的话,如 */, -->)或者到行尾(对于单行注释)。 b. 在注释的内容部分,必须包含至少一个中文字符。 但是,由于不同注释的格式不同,我们可以分别考虑: 情况1:单行注释(如//, #) - 从注释符号开始,到行尾,且中间某处包含中文字符。 情况2:多行注释(如/* ... */, <!-- ... -->) - 匹配从开始符号(/*或<!--)到结束符号(*/或-->)之间的内容,且中间包含中文字符。 由于正则表达式需要同时覆盖多种情况,我们可以使用“或”操作符(|)来组合。 但是,一个正则表达式同时匹配多种注释形式可能会比较复杂,而且容易出错。因此,我们可以分多次搜索,或者根据当前文件型选择对应的注释形式。 这里,我们假设用户需要同时匹配多种注释形式,我们设计一个正则表达式来覆盖常见的注释: 常见注释形式: 1. `// 单行注释` 或 `# 单行注释` 2. `/* 多行注释 */` 3. `<!-- 多行注释 -->` 我们设计正则表达式如下: 第一部分:匹配单行注释(以//或#开头,到行尾)且包含中文字符 - 单行注释的正则:`(//|#)[^\n]*[\u4e00-\u9fa5]+[^\n]*` 第二部分:匹配多行注释(包括/*...*/和<!--...-->)且包含中文字符 - 对于`/* ... */`:`/\*[\s\S]*?[\u4e00-\u9fa5]+[\s\S]*?\*/` - 对于`<!-- ... -->`:`<!--[\s\S]*?[\u4e00-\u9fa5]+[\s\S]*?-->` 将这三部分合并,用“或”连接: 最终正则表达式(未考虑效率): `(//|#)[^\n]*[\u4e00-\u9fa5]+[^\n]*|/\*[\s\S]*?[\u4e00-\u9fa5]+[\s\S]*?\*/|<!--[\s\S]*?[\u4e00-\u9fa5]+[\s\S]*?-->` 注意: - 我们使用了`[\u4e00-\u9fa5]`来匹配一个中文字符(基本汉字),如果需要更全面的汉字,可以替换为更宽的范围或使用Unicode属性(但Sublime Text3可能不支持Unicode属性转义)。 - 在Sublime Text3中,正则表达式引擎是支持Unicode的,所以可以使用`\u`。 但是,这个正则表达式可能会匹配到包含中文字符的注释,但它也会匹配整个注释(包括注释符号)。如果只想高亮注释中的中文部分,这个表达式就不合适了。不过,用户要求的是匹配中文注释(即整个注释块),所以这样是可以的。 另外,这个正则表达式在匹配多行注释时,使用了非贪婪匹配`*?`,以避免跨注释块的匹配。 然而,由于Sublime Text3的搜索是在当前文件中进行的,所以这个正则表达式可以工作。 但是,我们也要注意,有些注释可能跨越多行,比如单行注释实际上可能有多行(多个连续的//注释),但我们的单行注释部分只能匹配一行。不过,如果一行单行注释包含中文,我们就匹配这一行。对于多行连续的//注释,每一行都是独立的,所以这样处理是合理的。 另外,多行注释部分,我们使用`[\s\S]*?`来匹配任意字符(包括换行)的非贪婪模式,以确保匹配到第一个结束符号。 但是,这个正则表达式可能较长,而且效率可能不是最优,但对于一般文件应该是可以接受的。 因此,我们可以在Sublime Text3中这样使用: 1. 打开搜索面板(Ctrl+F 或 Cmd+F) 2. 点击左侧的`.*`按钮(或者使用Alt+R)启用正则表达式模式 3. 在搜索框中输入上述正则表达式 但是,如果用户使用的是特定语言,可能只需要其中一种或两种注释形式,那么可以简化。 另外,如果用户想要匹配所有包含中文的注释(而不考虑注释符号),那么我们可以简单匹配注释中的中文,但是这样可能会匹配到非注释部分的中文(比如字符串中的中文)。所以,我们还是要结合注释符号。 因此,我们给出一个更通用的版本,并考虑到扩展汉字(如扩展A区、B区等)的情况,我们可以使用扩展的汉字范围: 将`[\u4e00-\u9fa5]`替换为:`[\u3400-\u4DBF\u4E00-\u9FFF\uF900-\uFAFF]` 所以,最终的正则表达式为: ``` (//|#)[^\n]*[\u3400-\u4DBF\u4E00-\u9FFF\uF900-\uFAFF]+[^\n]*|/\*[\s\S]*?[\u3400-\u4DBF\u4E00-\u9FFF\uF900-\uFAFF]+[\s\S]*?\*/|<!--[\s\S]*?[\u3400-\u4DBF\u4E00-\u9FFF\uF900-\uFAFF]+[\s\S]*?--> ``` 注意:这个正则表达式可能会匹配到包含至少一个汉字的注释,如果一行注释中有多个汉字,它也会匹配。 但是,如果注释中不包含汉字,则不会匹配。 另外,这个正则表达式在匹配多行注释时,要求注释中至少有一个汉字,并且会匹配整个注释块(从开始符号到结束符号)。 在Sublime Text3中,我们可以使用这个正则表达式来查找所有包含中文的注释。 然而,由于正则表达式较长,我们可以将其拆分为多行并添加注释(在Sublime Text中不支持正则表达式中的注释,所以这里只做说明): 实际使用中,我们直接输入整个字符串。 示例: 假设我们有以下文本: ```javascript // 这是一个中文注释 var str = "字符串"; // 这里也有中文注释 /* 这是多行注释,包含中文 */ /* 这是多行注释,但不包含中文 */ <!-- 这里是HTML注释,有中文 --> # 这是Python风格的中文注释 ``` 使用上面的正则表达式,将匹配除了`/* 这是多行注释,但不包含中文 */`之外的所有注释(因为这一条没有中文字符)。 但是,注意第二条注释:`// 这里也有中文注释`,它会被匹配。 但是,注意第二条注释是在代码后面的,我们正则表达式的单行注释部分会匹配从`//`开始到行尾,所以整行都会被匹配。如果我们只想匹配注释部分(不包括前面的代码),那么我们的正则表达式已经做到了,因为它从`//`开始。 但是,在Sublime Text3中,搜索会高亮整个匹配的文本,也就是整个注释(包括符号和内容)。 如果用户只想高亮注释中的中文部分,那么就需要修改正则表达式,使用捕获组或者只匹配中文部分。但是,用户的问题是要匹配中文注释(整个注释块),所以我们这样设计。 因此,我们推荐使用上述正则表达式。 但是,我们也要注意,有些语言可能有不同的注释符号,比如SQL使用`--`。如果用户需要,可以自行添加到单行注释部分。例如,将`(//|#)`改为`(//|#|--)`。但是,要注意`--`可能出现在其他上下文中(比如减减操作符),但在注释中,它通常出现在行首或前面有空白。不过,为了简单,我们只考虑注释符号出现在行首的情况?不一定,因为行内注释也可以。所以,我们可能需要更精确的匹配。 但是,由于用户没有指定语言,我们按照常见情况处理。用户可以根据需要修改。 所以,我们总结: 在Sublime Text3中,使用以下正则表达式可以匹配三种常见形式(//, #, /* */, <!-- -->)的包含中文的注释: ``` (//|#)[^\n]*[\u3400-\u4DBF\u4E00-\u9FFF\uF900-\uFAFF]+[^\n]*|/\*[\s\S]*?[\u3400-\u4DBF\u4E00-\u9FFF\uF900-\uFAFF]+[\s\S]*?\*/|<!--[\s\S]*?[\u3400-\u4DBF\u4E00-\u9FFF\uF900-\uFAFF]+[\s\S]*?--> ``` 如果还需要其他注释形式,可以自行添加。 注意:这个正则表达式在匹配多行注释时,要求注释中至少有一个汉字,并且会匹配整个注释块(从开始到结束)。如果多行注释中没有汉字,则不会匹配。 另外,如果单行注释中不包含汉字,也不会匹配。 最后,我们提醒用户,在Sublime Text3中,正则表达式默认是区分大小写的,但注释符号通常是小写,所以没有问题。 如果用户需要不区分大小写,可以勾选搜索面板中的“Case Sensitive”按钮(使其不选中),但我们的正则表达式中没有字母大小写的问题,因为注释符号都是特定的符号。 因此,我们给出上述答案。 如果用户有特定的语言,建议根据语言调整。 另外,如果用户想要匹配更精确的汉字(包括扩展区),并且使用Unicode属性转义,但Sublime Text3可能不支持ES2018的`\p{Script=Han}`,所以这里我们使用扩展的Unicode范围。 如果用户使用的是Sublime Text4(如果支持Unicode属性转义),那么可以使用`\p{Han}`(注意:`\p{Script=Han}`可以简写为`\p{Han}`),但需要确认Sublime Text的正则引擎是否支持。根据目前了解,Sublime Text3使用的正则引擎是Boost.Regex,它支持Unicode属性,但语可能不同。 经过查阅,Boost.Regex支持`\p{Han}`,但需要启用Unicode支持。在Sublime Text3中,我们无直接添加标志,所以可能无使用。因此,我们还是使用Unicode范围的方式。 所以,我们保留上述正则表达式。 如果用户需要,我们可以提供更精确的汉字范围,但上述范围已经覆盖了大部分情况。 因此,我们推荐使用上述正则表达式。 注意:在Sublime Text3中,多行匹配需要确保点号不匹配换行,但我们使用了`[\s\S]`来匹配任意字符,包括换行,所以可以跨行匹配多行注释。 最后,我们给出一个示例: 在Sublime Text3中,打开一个文件,按Ctrl+F,然后点击`.*`,在搜索框中输入: ``` (//|#)[^\n]*[\u3400-\u4DBF\u4E00-\u9FFF\uF900-\uFAFF]+[^\n]*|/\*[\s\S]*?[\u3400-\u4DBF\u4E00-\u9FFF\uF900-\uFAFF]+[\s\S]*?\*/|<!--[\s\S]*?[\u3400-\u4DBF\u4E00-\u9FFF\uF900-\uFAFF]+[\s\S]*?--> ``` 然后就可以查找所有匹配的中文注释了。 如果匹配不到,请检查: - 文件编码是否为UTF-8 - 正则表达式是否正确复制(注意没有换行) 希望这个回答能够帮助用户。 如果用户需要,我们还可以提供更具体的针对某种语言的注释匹配。 生成相关问题: §§相关问题§§ 1. 如何用正则表达式匹配包含中文的字符串(非注释)? 2. Sublime Text3中如何通过正则表达式批量删除中文注释3. 如何匹配不同编程语言中的注释?</think>在 Sublime Text3 中匹配中文注释,需要结合注释符号和中文字符的正则表达式。以下是针对不同编程语言的解决方案: ### 通用解决方案(推荐) ```regex (//|#|--|<!--|/\*)[^\n]*?[\u4e00-\u9fa5]+.*?(?:\n|\*/|-->) ``` **解释**: 1. `(//|#|--|<!--|/\*)`:匹配常见注释符号 - `//`:JS/Java/C++ 单行注释 - `#`:Python/Ruby 注释 - `--`:SQL 注释 - `<!--`:HTML 注释开始 - `/\*`:多行注释开始 2. `[^\n]*?`:匹配任意非换行字符(非贪婪模式) 3. `[\u4e00-\u9fa5]+`:匹配至少一个中文字符 4. `.*?`:匹配注释剩余内容 5. `(?:\n|\*/|-->)`:匹配注释结束标记 - `\n`:单行注释结束 - `\*/`:多行注释结束 - `-->`:HTML注释结束 ### 分语言解决方案 #### 1. JavaScript/Java/C++ 单行注释 ```regex //[^\n]*?[\u4e00-\u9fa5]+[^\n]* ``` **匹配示例**: ```javascript // 这是一个中文注释 const x = 1; // 带中文的行内注释 ``` #### 2. Python/Ruby 注释 ```regex #[^\n]*?[\u4e00-\u9fa5]+[^\n]* ``` **匹配示例**: ```python # 中文注释示例 def func(): # 函数说明 ``` #### 3. SQL 注释 ```regex --[^\n]*?[\u4e00-\u9fa5]+[^\n]* ``` **匹配示例**: ```sql SELECT * FROM table -- 这是中文注释 ``` #### 4. HTML 注释 ```regex <!--[\s\S]*?[\u4e00-\u9fa5]+[\s\S]*?--> ``` **匹配示例**: ```html <!-- 多行中文注释 第二行内容 --> ``` #### 5. CSS/多行注释 ```regex /\*[\s\S]*?[\u4e00-\u9fa5]+[\s\S]*?\*/ ``` **匹配示例**: ```css /* 中文注释 跨行示例 */ ``` ### 使用步骤(Sublime Text3) 1. 打开搜索面板:`Ctrl + F` 2. 启用正则模式:点击左侧 `.*` 按钮 3. 粘贴正则表达式到搜索框 4. 勾选 "Regular Expression" 选项 5. 点击 "Find All" 查找所有匹配项 ### 高级技巧 1. **扩展汉字支持**(如生僻字): ```regex //[^\n]*?[\u3400-\u4DBF\u4E00-\u9FFF\uF900-\uFAFF]+ ``` 覆盖扩展汉字区(如𠮷, 𡈽等)[^1] 2. **排除误匹配**: ```regex (^|[^\\])//[^\n]*?[\u4e00-\u9fa5]+ ``` 避免匹配被转义的注释(如:`http://`) 3. **批量删除中文注释**: ```regex (//|#|--|<!--|/\*)[^\n]*?[\u4e00-\u9fa5]+.*?(?:\n|\*/|-->) ``` 替换为空内容即可删除 > **提示**:在 Sublime Text3 中使用 `Alt + R` 可快速切换正则匹配模式[^3]。匹配结果会高亮显示,按 `F3` 可逐个跳转查看。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值