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


我无法弄清楚如何配置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;

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


59
2017-09-21 14:15


起源


stackoverflow.com/questions/9251858/hide-comments-in-notepad 重复(2010年是我能找到的最早的)。 - Wolfpack'08


答案:


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

//{

//}

45
2018-05-09 23:26



从NPP v6.4.3开始,快速简便的用户定义对话似乎已经消失(或者转化为用户定义的语言语法)。因此,简单地将可折叠区域语法添加到内置语言就变得非常简单。但是,Marcelo的这个解决方案非常快速简便,适用于NPP 6.4.3。 - Todd
谢谢!现在我做: //{ #region LOADING 和 //} #endregion LOADING 在Javascript中 - Szymon Toda
要构建这个答案,现在是正确的答案,在XML中你的 - {标签将由存储过程中的END部分结束。折叠大部分SP在过程列表的末尾有一个开头 - {标记后跟一个开头 - {在每个过程中没有结束,然后是一个结束 - }。现在您的每个程序都可以折叠或整个过程。 +1 BTW获得一个很好的答案Marcelo,只是感到受宠若惊凯文已经复制了你的答案! - RyanfaeScotland
如何执行“添加'评论命令'”?我有相同的代码,但没有折叠选项。我想必须使用Alt + h选择和隐藏块? - Goufalite
我在用着 Notepad++ 6.7.9.2。在此版本中,您需要删除注释开头和括号之间的空格。所以 //{ 工作,但 // { 才不是。 - jeremysawesome


对于版本 6.5.5 以上:

在菜单下“语言“有一个名为”的菜单项目“定义你的语言......

enter image description here

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

Folding in code

对于早于版本的版本 6.5.5

在菜单下“视图“有一个名为”的菜单项目“用户定义的对话框......

View Define your language

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

Folder Open Close Keyword


44
2017-09-22 08:40



有没有办法将这些添加到现有的语言定义中?具体来说,我可以添加注释来创建折叠部分,例如:/ * <privateMethods> * / ... [许多代码] ... / * </ privateMethods> * / - RSG
正如您在图片中看到的那样,有一种方法可以导出和导出语言文件。 Notepad ++存储现有的语言配置。也许您可以将它们导入用户定义的并编辑它们。祝你好运。 - Stephan Schielke
在6.5.5版本中,此对话框位于“语言”菜单下。我刚刚添加#region end #endregion并且折叠效果很好! - adg
@adg:我想补充一下 // #region 折叠到Javascript也是。你是怎么做到的,你把它添加到哪种语言? - Robert Koritnik
@StephanSchielke,现在是“语言>>定义你的语言” - Pacerier


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

经过一两个小时的研究,由于潜在的闪烁词法分析器,修改现有语言似乎相当困难,编写插件可能是实现这一目标的唯一方法。

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

在您的评论中包含您希望折叠的代码,例如:

#{ 
...
#}

然后在打开支架前移动光标并按 CTRL+ALT+b 突出显示整个块,然后是 ALT+H 隐藏它

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


12
2018-06-20 10:13



这些快捷方式到底做了什么?它们不适合我,maube它是你安装的插件吗? - Hikari
Alt + H工作,但它似乎只是暂时的。我只需要扩展它就可以消失 - Hikari
嗨!至少,你可以提到你复制了我的答案,就像“user1881282”那样,但我并不担心它。祝你今天愉快 ! - Marcelo Teixeira Ruggeri
CTRL + ALT + b突出显示块。 (我不同意这只是从Marcelo的答案中复制而来 - 没有提到使用块选择和隐藏而不是折叠,这是这个答案的关键点) - Nick Rice
感谢@Nick Rice的击键修正,我已经纠正了CTRL + ALT + B的答案以突出显示该块,这看起来确实有效(光标必须介于#和{字符之间) - Kevin Jhangiani


我用Marcelo的答案为自己解决了这个问题(在Perl中),只有一个变化......
如果我在注释符号和括号之间包含一个空格,那么它将无效。必须立即放置:

#START example
################{

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

#}END example

请注意,如果我这样做:

#END example }

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


4
2017-07-01 08:00





!免责声明: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,所以我的代码可能不是很棒;它仍然是一个持续的过程。


-1
2018-06-11 15:18





步骤1:添加一个打开和关闭的唯一键(即,

#1
{{{
#2
{{{
#2
}}}
##
}}}

使用缩进 /或注释以指示嵌套级别。

第2步{CTRL}-H 当你完成了。替换所有“{{{'和'}}}'。

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


-1
2018-02-15 19:36



这些方法都很慢。 - Wolfpack'08
?那么你每次添加一个新的时候都需要按Ctrl H查找和替换? - Pacerier


如果是SQL,那么使用BEGIN和END封装代码效果很好。将显示BEGIN语句,以及您在同一行上添加的任何注释。

例如:

BEGIN --creating temp table with eligible users

   ...code

END

-2
2018-02-01 11:11