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 来创建折叠部分,例如: /*// #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,那么用 BEGIN 和 END 封装代码效果很好。显示 BEGIN 语句,以及您在同一行添加的任何 cmets。
例如:
BEGIN --creating temp table with eligible users
...code
END
【讨论】:
以上是关于notepad++ 用户定义的折叠区域的主要内容,如果未能解决你的问题,请参考以下文章