Notepad++ 中用户自定义区域与折叠的使用

79

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

如何配置Notepad++来显示这个文件?是否有其他建议?


请隐藏记事本中的注释(2010是我能找到的最早版本)的重复问题。 - Wolfpack'08
7个回答

62

对于版本6.5.5及以上:

在菜单 "语言" 下有一个名为 "定义你的语言..." 的菜单项。

输入图像描述

在 "文件夹和默认值" 标签页中,有一个名为 "代码折叠" 的功能组,可以输入 "打开" 和 "关闭" 关键字。

代码折叠

对于早于6.5.5版本的:

在菜单 "查看" 下有一个名为 "用户定义对话框..." 的菜单项。

查看 定义您的语言

在 "文件夹和默认值" 标签页中,可以输入 "文件夹打开关键字" 和 "文件夹关闭关键字"。

文件夹打开关闭关键字


4
有没有办法将这些添加到现有的语言定义中?特别是,我是否可以添加注释来创建折叠区域,例如:/<privateMethods>/ ... [大量代码] ... /</privateMethods>/。 - RSG
6
在6.5.5版本中,此对话框位于“语言”菜单下。我只是添加了#region end #endregion,折叠效果很好! - adg
1
@adg:我也想在JavaScript中添加“// #region”折叠功能。你是如何做到的?你是将其添加到哪种语言中的? - Robert Koritnik
@StephanSchielke,现在它在“语言>>定义您的语言”下。 - Pacerier
@adg和Pacerier已更改了描述和图片。 - Stephan Schielke
显示剩余2条评论

58
另一种简单的方法是只需添加“注释命令”,然后加上“ { ”开始,稍后再加上“注释命令”,然后加上“ } ”。在 C/C++、Java、Javascript 等语言中,可以像这样:
// {

// }

2
从NPP v6.4.3开始,快速简便的用户定义对话框似乎已经消失(或者被整合到了用户定义语言语法中)。因此,在内置语言中添加可折叠区域语法不再是一件容易的事情。但是,Marcelo提供的这个解决方案非常快捷、简单,并且在NPP 6.4.3中有效。 - Todd
7
谢谢!现在我在JavaScript中这样写:“//{ #region LOADING”和“//} #endregion LOADING”。 - Szymon Toda
1
“添加‘注释命令’”是如何执行的?我有与所示相同的代码,但没有折叠选项。我想必须选择该块并使用Alt+h隐藏它吧? - Goufalite
3
我使用的是 Notepad++ 6.7.9.2 版本。在这个版本中,你需要删除注释前面和括号之间的空格。所以 //{ 是可以工作的,但 // { 不行。 - jeremysawesome

16

我有类似的问题。我想在不支持此功能的语言中添加自定义标签,如#region / #endregion来创建任意折叠点。具体而言,我正在尝试为php实现这一点。

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

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

用注释包裹您希望折叠的代码,例如:

#{ 
...
#}

然后将光标移动到左花括号之前,按下CTRL+ALT+b来高亮整个代码块,接着按下ALT+h来隐藏它。

这是一种不同于折叠的操作,但在紧急情况下很有用。


这些快捷键具体是做什么的?它们对我不起作用,也许是你安装的插件的问题? - Hikari
2
Alt+H可以用,但似乎只是暂时的。我只需要扩展它让它消失即可。 - Hikari
嗨!至少你可以提一下你抄袭了我的答案,就像“user1881282”那样,但我并不是非常担心。祝你有美好的一天! - Marcelo Ruggeri
1
按下CTRL + ALT + b可以高亮显示代码块。(我不同意这只是从Marcelo的答案复制过来的 - 这个答案提到了使用块选择和隐藏而不是折叠,这是一个关键点) - Nick Rice
感谢 @Nick Rice 对按键的纠正,我已经更正了答案为 CTRL+ALT+B 来突出显示代码块,这似乎有效(光标必须在 # 和 { 字符之间)。 - Kevin Jhangiani

4
我使用马塞洛提供的方法解决了这个问题(在Perl中),只做了一个更改...
如果我在注释符号和括号之间添加空格,那么它就无法工作。 必须紧跟在后面。
#START example
################{

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

#}END example

请注意,如果我执行以下操作:
#END example }

在文本后面加上括号也不行。

0

!! 免责声明:完全是 PHP 新手 !!

假设您将 PHP 嵌入某些 HTML 中,您可以使用 <?php 和?> 定义自定义部分。

例如:

<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 :) - Prid

-1

如果是 SQL,则使用 BEGIN 和 END 封装代码效果很好。BEGIN 语句如下所示,您还可以在同一行上添加任何注释。

e.g:

BEGIN --creating temp table with eligible users

   ...code

END

-2
第一步: 添加一个带有开放和关闭的唯一键(即,

)。
#1
{{{
#2
{{{
#2
}}}
##
}}}

使用缩进和/或注释来表示嵌套级别。
第二步:完成后按下{CTRL}-H。替换所有的'{{{'和'}}}'。
第三步:注释剥离(应用程序)。

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

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