notepad++ 用户定义的折叠区域

Posted

技术标签:

【中文标题】notepad++ 用户定义的折叠区域【英文标题】:notepad++ user defined regions with folding 【发布时间】:2011-04-15 05:49:18 【问题描述】:

我不知道如何配置 notepad++ 以显示用户定义关键字的区域。

我有一个大的跟踪文件,它显示了一个过程的开始和结束。 跟踪文件如下所示:

Beginn abc.def;
   ...
   Beginn ghi.jkl;
   ...
   Ende ghi.jkl;
   ...
Ende abc.def;

我想像这样折叠这些区域:

[+] Beginn abc.def;

[-] Beginn abc.def;
       ...
[+]    Beginn ghi.jkl;
       ...
    Ende abc.def;

如何配置我的记事本++ 来显示它。 可能吗?您还有其他建议吗?

【问题讨论】:

***.com/questions/9251858/hide-comments-in-notepad Duplicate(2010 年是我能找到的最早的)。 【参考方案1】:

6.5.5及以上版本:

在“语言”菜单下有一个名为“Define your language...”的菜单项

在“文件夹和默认”选项卡中有一个名为“代码折叠”的组,您可以在其中输入“打开”和“关闭”关键字。

对于早于 6.5.5 的版本:

在“View”菜单下有一个名为“User-Defined Dialog...”的菜单项

在“文件夹和默认值”选项卡中,您可以输入“文件夹打开关键字”和“文件夹关闭关键字”

【讨论】:

有没有办法将这些添加到现有的语言定义中?具体来说,我可以添加 cmets 来创建折叠部分,例如: /**/ ... [lots of code] ... /**/ 正如您在图片中看到的那样,有一种方法可以将语言文件复制并导出。 Notepad++ 存储现有的语言配置。也许您可以将它们导入用户定义的并编辑它们。祝你好运。 在 6.5.5 版本中,此对话框位于“语言”菜单下。我刚刚添加了#region end #endregion,折叠效果很好! @adg:我也想在 javascript 中添加 // #region 折叠功能。你是怎么做到的?你把它添加到了哪种语言中? @StephanSchielke,现在在“语言>>定义你的语言”下【参考方案2】:

另一种简单的方法是添加一个注释标记,后跟一个 open-block 来开始一个块,一个注释标记后跟 end-block 来结束一个块。在 C、C++、Java、Javascript 等语言中,它看起来像这样:

//

//

【讨论】:

从 NPP v6.4.3 开始,快速简便的用户定义对话似乎消失了(或转入用户定义的语言语法)。因此,简单地将可折叠区域语法添加到内置语言中变得不简单。但是来自 Marcelo 的这个解决方案非常快速和简单,并且适用于 NPP 6.4.3。 谢谢!现在我做:// #region LOADING// #endregion LOADING 在 Javascript 中 “添加'评论命令'”是如何执行的?我有与所示相同的代码,但没有折叠选项。我想必须使用 Alt+h 选择和隐藏该块? 我正在使用Notepad++ 6.7.9.2。在此版本中,您需要删除注释开头和括号之间的空格。所以// 有效,但// 无效。【参考方案3】:

第一步:添加一个具有打开和关闭功能的唯一键(即,

#1

#2

#2

##

使用缩进/或 cmets 表示嵌套级别。

第 2 步:完成后CTRL-H。替换所有 '' 和 ''。

第 3 步:评论条(应用)。

【讨论】:

这些方法都很慢。 ?所以你每次添加一个新的都需要 Ctrl H 查找和替换?【参考方案4】:

我也有类似的问题。我想添加一个自定义标签,如 #region / #endregion 以在不支持它的语言中创建任意折叠点。具体来说,我正在尝试为 php 执行此操作。

研究了一两个小时后,由于底层的闪烁词法分析器,修改现有语言似乎相当困难,编写插件可能是完成此任务的唯一方法。

我确实发现了一个不错的解决方法:

将要折叠的代码包装在 cmets 中,例如:

# 
...
#

然后将光标移动到左大括号之前并按 CTRL+ALT+b 突出显示整个块,然后按 ALT+h 隐藏它。

这是一种与折叠不同的操作,但它可以在紧要关头工作。

【讨论】:

这些快捷方式到底有什么作用?它们不适合我,maube 这是你安装的插件吗? Alt+H 有效,但它似乎只是暂时的。我只需要扩展它就可以让它消失 嗨!至少,您可以提到您复制了我的答案,就像“user1881282”一样,但我并不担心。祝你有美好的一天! CTRL + ALT + b 突出显示块。 (我不同意这只是从 Marcelo 的答案中复制的——没有提到使用块选择和隐藏而不是折叠,这是这个答案的关键点) 感谢@Nick Rice 对击键的更正,我已将答案更正为 CTRL+ALT+B 以突出显示该块,这似乎确实有效(光标必须在 # 和 字符之间)【参考方案5】:

我使用 Marcelo 的答案为自己解决了这个问题(在 Perl 中),只是做了一个改动... 如果我在注释符号和括号之间包含一个空格,那么它将不起作用。它必须立即放置在:

#START example
################

print "Hi there! ";
print "How are you?\n";

#END example

请注意,如果我这样做:

#END example 

文本后面的括号也不起作用

【讨论】:

【参考方案6】:

!!免责声明:PHP 新手!

假设您将 PHP 包装在一些 html 中,您可以使用 <?php and?> 定义自定义部分。

例如:

<html>
<head></head>
<body>
<?php 
$cities[1] = "Phoenix";$cities[2] = "Tucson";$cities[3] = "Flagstaff";  
$capitals['CA'] = "Sacramento";$capitals['TX'] = "Austin";$capitals['OR'] = "Salem";    
$cities[] = "Phoenix";$cities[] = "Tucson";$cities[] = "Flagstaff"; 
echo "Here are cities: $cities[1]";echo nl2br("\n");
?>
</br>
<?php
$cities = array( "Phoenix","Tucson","Flagstaff");   
$capitals = array( "CA" => "Sacramento","TX" => "Austin","OR" => "Salem",);
echo $capitals['TX'];echo nl2br("\n");  
?>
<body>
</html>

Notepad++ 将允许您任意折叠这些部分,并且您可以用“#”标记这些部分。 刚学PHP,所以我的代码可能不太好;这仍然是一个持续的过程。

【讨论】:

谢谢!正是我需要的 PHP :)【参考方案7】:

如果是 SQL,那么用 BE​​GIN 和 END 封装代码效果很好。显示 BEGIN 语句,以及您在同一行添加的任何 cmets。

例如:

BEGIN --creating temp table with eligible users

   ...code

END

【讨论】:

以上是关于notepad++ 用户定义的折叠区域的主要内容,如果未能解决你的问题,请参考以下文章

Notepad++ 文件过滤器

notepad++搭配jdk配置jave环境变量

关于sublime text, notepad++,vscode 代码折叠显示的比较

右键添加快捷方式(vscode,notepad++)

如何通过评论折叠CLION中的自定义区域?

在notepad++中运行perl和python的方法