在 Intellij 自动完成@author

我要从 Eclipse 迁移到 Intellij Idea。有一件事我还没弄明白,那就是 @author JavaDoc 标记的自动完成。 在 Eclipse 中输入 @a时,有两个建议:

@author - author name
@author

我如何在 Intellij 实现第一个方案(这可能吗?) ?如果可能的话,如何更改为作者名称占位符插入的内容的模板?

137184 次浏览

您可以通过 Live Template 解决这个问题。

转到 Settings-> Editor-> Live Templates,单击 Plus Icon Button(在右边)。

在“缩写”字段中,输入应该激活模板的字符串(例如 @a) ,在“ Template Text”区域中输入要完成的字符串(例如 @author - My Name)。将“ Applicable context”设置为 Java (可能只有注释) ,并设置一个键来完成(在右侧)。

我测试了它,它工作得很好,但是 IntelliJ 似乎更喜欢内建模板,所以“@a + Tab”只能完成“ author”。然而,将完成键设置为 Space可以工作。

To change the user name that is automatically inserted via the File Templates (when creating a class for example), can be changed by adding

-Duser.name=Your name

to the Idea.exe.vmoptions or Idea64.exe.vmoptions (depending on your version) in the 智能垃圾箱 directory.

enter image description here

重新启动 IntelliJ

还有一个选择,虽然不完全符合你的要求,但可能很有用:

转到 Settings-> Editor-> File and code templates-> Includes选项卡(右边)。有一个新文件的模板头,你可以在这里使用用户名:

/**
* @author myname
*/

For system username use:

/**
* @author ${USER}
*/

Screen shot from Intellij 2016.02

对于 Intellij IDEA Community 2019.1,你需要遵循以下步骤:

文件-> 新建-> 编辑文件模板. .-> 类->/* 由 ${ USER }创建 在 ${ DATE } */

enter image description here

检查激活模板 并将光标保留在所需的位置,然后单击 Apply then OK

enter image description here

回答几个问题:

Yo 还可以添加带有以下值的预定义变量:

${PACKAGE_NAME}      Name of the package in which the new file is created
${USER}              Current user system login name
${DATE}              Current system date
${TIME}              Current system time
${YEAR}              Current year
${MONTH}             Current month
${MONTH_NAME_SHORT}  First 3 letters of the current month name. Example: Jan, Feb, etc.
${MONTH_NAME_FULL}   Full name of the current month. Example: January, February, etc.
${DAY}               Current day of the month
${DAY_NAME_SHORT}    First 3 letters of the current day name. Example: Mon, Tue, etc.
${DAY_NAME_FULL}     Full name of the current day. Example: Monday, Tuesday, etc.
${HOUR}              Current hour
${MINUTE}            Current minute
${PROJECT_NAME}      Name of the current project