【问题标题】:Manage code snippets in Notepad++在 Notepad++ 中管理代码片段
【发布时间】:2019-04-29 20:58:16
【问题描述】:

有没有办法管理带有数据库备份和 Notepad++ 代码高亮的代码 sn-ps?

【问题讨论】:

    标签: notepad++ code-snippets


    【解决方案1】:

    有一个很好的插件来管理代码sn-ps:

    SnippetPlus
    .NET 3.5 需要! 编码 sn-p 和 Surround With plugin 对于记事本++。写下 sn -p 名称和 用真实代码替换它或选择 一些文字并用 像 IF,TryCatch,Table,Div 或任何东西。如果你会给你提示 不记得 sn-p 名称 注意 可以显示最新版本, 即使您有旧版本 安装。重新安装以确保您 有最新版本。
    作者: Rajesh Kumar
    主页: http://sourceforge.net/projects/snippetplus/

    您可以从 Notepad++ Plugin Manager 安装它,并通过单击工具栏中的黑色 m 符号来激活 Dock;然后选择其中一个捆绑的 sn-ps 并通过双击将其粘贴到编辑器中。

    例如,如果您有一个 Visual Basic 文件,并且需要包含一个 try/catch 块,其中包含 if-elseif-else 结构,则必须遵循图片中显示的这些步骤:

    1. 将光标放在您希望新代码 sn-p 所在的位置,然后从工具栏中激活停靠:这将打开标记为黄色的停靠对话框。
    2. 双击停靠栏片段部分中的ifelseif选项:这将插入标记为蓝色的代码块。
    3. 选择你想在 try/catch 块中的所有代码,然后双击停靠栏 SurroundWith 部分中的选项TryCatch:这将用所有代码块标记为红色。

    如果您想修改现有的 sn-ps 或包含您的,请使用 GUI 编辑器:

    点击你要修改/删除的sn-p:它会显示在右边。活动部分(SnippetsSurroundWith)以深红色背景突出显示:

    您也可以添加自定义 sn-ps:只需选择正确的语言并单击您希望新 sn-p 所属部分中的任何 sn-p(SnippetsSurroundWith ),然后写下您要创建的新 sn-p 的名称(例如 sample):按钮 Modify 将改为新增

    您也可以使用键盘快捷键 Ctrl+Shift+ENTER 将 sn-ps 插入文档:

    1. 你可以直接写sn -p name,然后按键盘快捷键,或者
    2. 您可以按键盘快捷键调用弹出窗口,然后再次按键盘快捷键以将 sn-p 名称替换为 sn-p 内容。

    注意事项:

    • 此插件在重新启动之间保留 sn-ps(包括自定义的)。
    • 重要提示:如果您添加/修改/删除 sn-ps,只有在重新启动 Notepad++ 后才会应用更改(包括 Snippets 部分的列表内容SurroundWith)。请注意不要重复或添加不完整的 sn-ps。
    • 要为您正在使用的语言应用代码突出显示,只需按照传统方式从菜单语言中选择它:
    • Ctrl+Shift+ENTER 菜单上显示的代码 sn-ps,取决于当前应用于文档的语言突出显示。全局显示的唯一代码 sn-ps 属于 GENERAL 类别。

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

    【讨论】:

    • 我几乎放弃了这个插件,但谢天谢地,因为你提到“这个插件在重启之间保持 sn-ps(包括自定义的)。如果你添加/修改/删除 sn-ps,只有在重新启动记事本++后才会应用更改”。在我读到它之前,我认为它要么坏了,要么我做错了什么。感谢您提及。
    • 您必须一直重新加载的事实非常糟糕!我不知道他是否一切都好,如果我有变化,我总是必须重新启动 npp。当我添加几个 sn-ps 时,我无法看到我已经添加的内容,直到我重新启动 npp。似乎程序员对完成这个插件失去了兴趣。它非常有用,但看起来我最好把所有东西都放到一个文本文件中^^
    • 即使重新加载,这也不起作用。这个插件的可用性真的很糟糕。
    • 这个插件很烂。添加新的 sn-p(隐藏得很好)根本不起作用。
    • 作者已经知道重载bug有4年了,而且还在数sourceforge.net/p/snippetplus/bugs/3/#ffb9
    【解决方案2】:

    这个答案并不是专门关于如何管理 np++ 代码 sn-ps 的,但这可能是一个不错的选择,因为看起来那个插件不能很好地工作。我发现一个非常灵活的系统范围的解决方案是使用AHK。然后,您可以通过自定义热键和文本扩展来获得类似 sn-p 的功能以及更多其他功能。

    例如,像 :*:123::123456789 这样的单行 AHK 脚本会自动将键入的“123”扩展为“123456789”,而不管您当前的编辑器(np++ 还是 VS,等等)。要将其限制为特定应用程序,只需添加另一行,如 #IfWinActive, ahk_exe devenv.exe (Full example here)。

    More on AHK for plaintext


    管理代码片段的简单 AHK 脚本


    我刚刚创建了一个简单的解决方案来管理 CodeSnippet 数据库。多做一点工作,这可能会更流畅。

    它的作用

    通过按 Ctrl+Alt+S 提供代码 sn-p 列表。双击一个 sn-p,它将粘贴到您的应用程序中。片段只是一个文件列表,文件的内容将代码提供给 sn-p。

    如何设置

    1.) 在您的 MyDocuments 目录下需要一个名为“CodeSnippets”的文件夹。在此文件夹中创建您的代码 sn-p 文件。

    2.) 使用AHK 运行以下脚本。要“设置并忘记”,请让脚本在 Windows 启动时运行。在 Windows 中的任何应用程序中,按 Ctrl+Alt+S 选择一个 sn-p。

    #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
    

    【讨论】:

      【解决方案3】:

      还有FingerText。它从 NPP 的新插件管理员安装并运行良好。如果你试一试,你可能应该去插件 |手指文字 |安装 Default Snippet Package 以获得一组默认的 sn-ps。这是 2012 年的年份,但仍然有效。默认情况下,它通过 键(即 TextMate)扩展 sn-ps。它有扩展宏,这样$[![(key)DATE:yyyy/MM/dd]!] 代表其插入日期sn-p 的当前日期。如果您插入例如一个超链接,它会突出显示文本部分,因此当您开始输入时它将替换其占位符以替换文本,然后您可以点击 并且 URL 占位符将突出显示。这也让人想起 Emmet 的工作方式。您当然可以添加新的和编辑 sn-ps。

      也许它最大的疏忽在于它没有将 sn-ps 分成几类;所以你只会得到一份长长的 sn-ps 清单。然而,片段知道文件扩展名。它似乎没有自动完成功能。文档可以在“README.rdoc”的 {NPP}\plugins\FingerText 目录中找到。

      这显然是一个 win32 项目,因此不需要 .NET 3.5。开发者表示处于 alpha 阶段;但它似乎相当稳定,并且似乎比 alpha 阶段更成熟,恕我直言。它是开源的,可从 GitHub 上的“erinata/FingerText: Tab triggered snippet plugin for Notepad++”获得。我的猜测是,如果您想要 x64 版本,则必须自己编译;但是有一个 Visual Studio 项目。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-04-12
        • 2021-03-22
        • 2011-01-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多