在Notepad++中管理代码片段

43

有没有办法在Notepad++中管理带有数据库备份和代码高亮的代码片段?

3个回答

25

有一个很好的插件可以管理代码片段:

SnippetPlus
需要.NET 3.5!用于Notepad++的代码片段和Surround With插件。编写片段名称并将其替换为实际代码,或选择一些文本并将其包围在类似IF、TryCatch、Table、Div或其他内容中。如果您不记得片段名称,它会给您提示。请注意,即使您安装了旧版本,最新版本可能也会显示。重新安装以确保您拥有最新版本。
作者: Rajesh Kumar
主页: http://sourceforge.net/projects/snippetplus/

您可以通过Notepad++插件管理器安装它,并通过单击工具栏中的黑色m形符号来激活停靠;然后通过双击来选择捆绑的代码片段并将其粘贴到编辑器中。

例如,如果您有一个Visual Basic文件,并且您需要包含一个包含if-elseif-else结构的try/catch块,则必须按照图像中指示的步骤进行操作:

SnippetPlus example

  1. 将光标放在新代码片段所在的位置,然后从工具栏激活停靠窗口:这将打开标记为黄色的停靠对话框。
  2. 在停靠窗口的Snippets部分中双击选项ifelseif:这将插入标记为蓝色的代码块。
  3. 选择要放置在try/catch块内的所有代码,并在停靠窗口的SurroundWith部分中双击选项TryCatch:这将用标记为红色的所有代码块替换所选代码。

如果您想修改现有的代码片段或包含自己的代码片段,请使用GUI编辑器:
GUI Editor

单击要修改/删除的代码片段:它将显示在右侧。活动部分(SnippetsSurroundWith)以深红色背景突出显示:

GUI Editor

你也可以添加自定义代码片段:选择正确的语言,点击你想要新片段属于的部分(无论是Snippets还是SurroundWith),然后输入你想要创建的新片段名称(例如sample):按钮Modify将变为Add New
Add new snippet 你也可以使用键盘快捷键Ctrl+Shift+ENTER向文档中插入代码片段:
  1. 你可以直接输入片段名称并按下键盘快捷键,或者
  2. 你可以按下键盘快捷键弹出窗口,再按一次键盘快捷键以用代码片段内容替换代码片段名称。

insert snippet by keyboard shortcut

注意:

  • 此插件会在重启后保留代码片段(包括自定义的)。
  • 重要提示:如果您添加/修改/删除代码片段,只有在重新启动Notepad++之后才会应用更改(包括"Snippets"和"SurroundWith"部分列表中的内容)。请小心操作,以免重复或添加不完整的代码片段。
  • 要为您正在使用的语言应用代码高亮,请从菜单"Language"中选择它,就像传统方式一样:
    code highlight
  • Ctrl+Shift+ENTER菜单上显示的代码片段取决于当前应用于文档的语言高亮。全局显示的唯一代码片段是属于"GENERAL"类别的。

希望这些信息对您有所帮助。


4
我差点放弃了这个插件,但因为你提到“该插件会在重启Notepad++后保留代码片段(包括自定义的),如果你添加/修改/删除了片段,在重启之前不会应用更改”,所以幸好没有放弃。在读到这句话之前,我认为它要么是坏了,要么是我操作有误。感谢你提到这一点。 - mason81
1
你必须一直重新加载,这真的很糟糕!我不知道他是否做得很好,但如果我有一点改变,我总是不得不重新启动npp。当我添加几个片段时,除非我重新启动npp,否则我看不到我已经添加的内容。似乎程序员失去了完成这个插件的兴趣。它非常有用,但看起来我最好把所有东西都放在一个文本文件中^^ - Dwza
1
即使重新加载,这仍然不起作用。这个插件的可用性真的很糟糕。 - Thomas Weller
这个插件真的很糟糕。添加新片段(藏得很深)根本不起作用。 - Marc
作者已经意识到重新加载错误已经有4年了,而且还在继续 https://sourceforge.net/p/snippetplus/bugs/3/#ffb9 - Matthew
请大家注意笔记 :) - Mustafa Tığ

1
还有FingerText。它可以从NPP的新插件管理员中安装和运行。如果您想尝试它,您应该去Plugins | FingerText | Install Default Snippet Package,以获取默认的代码片段集。它是2012年的老版本,但仍然可以使用。它默认通过<TAB>键扩展代码片段,类似于TextMate。它具有扩展宏,例如$[![(key)DATE:yyyy/MM/dd]!]表示其插入日期片段的当前日期。如果您插入一个超链接,它会突出显示文本部分,因此当您开始输入时,它将替换文本的占位符,然后您可以按下<TAB>,URL占位符将被突出显示。这类似于Emmet的工作方式。当然,您可以添加新的并编辑代码片段。也许它最大的疏忽是它没有将代码片段分成类别;因此,您只能得到一个长长的列表。但是,代码片段知道文件扩展名。它似乎没有自动完成功能。文档可以在其{NPP}\plugins\FingerText目录中找到,“README.rdoc”。
这显然是一个win32项目,因此不需要.NET 3.5。开发人员表示它处于Alpha阶段;但在我看来,它似乎相当稳定,并且比Alpha阶段更成熟。它是开源的,并且可以从GitHub获取 " erinata / FingerText:Notepad ++的Tab触发代码片段插件". 我猜如果你想要一个x64版本,你就得自己编译它;但有一个Visual Studio项目。

1
这篇答案并不是关于如何管理np++代码片段的,但这可能是一个很好的替代方案,因为看起来那个插件并不工作得很好。我发现一个非常灵活的系统范围解决方案是使用AHK。然后,您可以通过自定义热键和文本扩展获得类似片段的功能,以及更多功能。
例如,像这样的一行AHK脚本:*:123::123456789将自动将输入"123"扩展为"123456789",无论您当前使用的编辑器是np ++还是VS等。要将其限制为特定应用程序,只需添加另一行,如#IfWinActive, ahk_exe devenv.exe完整示例在此处)。 有关纯文本的AHK更多信息
简单的 AHK 脚本以管理代码片段。
我刚刚设计了一个简单的解决方案来管理CodeSnippet数据库。再多做一些工作,这个解决方案就会更加顺畅。 它是什么 通过按下 Ctrl+Alt+S 提供代码片段列表。双击片段,它将粘贴到您的应用程序中。片段只是文件列表,文件的内容提供了片段的代码。 如何设置 1.) 需要在MyDocuments目录下创建名为“CodeSnippets”的文件夹。在此文件夹中创建您的代码片段文件。
2.) 使用AHK运行以下脚本。要“设置并忘记”,请在Windows启动时运行脚本。从Windows的任何应用程序中,按下Ctrl+Alt+S选择片段。
#NoEnv

HotKey, ^!s, ShowList
return

ShowList:
Gui, Add, ListView, r20 w300 gMyListView, Name
Loop, %A_MyDocuments%\CodeSnippets\*.*
    LV_Add("", A_LoopFileName)

Gui, Show
return

MyListView:
if A_GuiEvent = DoubleClick
{
    LV_GetText(RowText, A_EventInfo)
    FileRead, Snippet, %A_MyDocuments%\CodeSnippets\%RowText%
    Clipboard := Snippet
    Gui, Destroy
    Send ^v
}
return

GuiClose:
Gui, Destroy
return

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接