我发现Notepad ++的自动样式有点奇怪:当我在缩进行上键入时,我做希望它在按Enter后缩进下一行(这样做正确)。但是,当我在一个空行(没有缩进,没有字符)并按Enter键时,它使用与最后一个非空行相同的缩进来缩进下一行。我发现这非常烦人;你遇到过这个问题吗?你知道如何修复它吗?
(注意:我正在编辑HTML / PHP文件。)
(另外,如果没有办法改变这种行为,欢迎提供其他HTML / PHP优秀免费编辑的建议。)
答案 0 :(得分:23)
1)首先安装NppAutoIndent插件,如果你没有它。
插件>插件管理器>显示插件管理器,然后从该菜单的“可用”选项卡中安装NppAutoIndent 。
2)可以通过执行以下操作来关闭此行为:
插件> NppAutoIndent>上一行
3)如果禁用此选项,您可能需要先检查此选项:
插件> NppAutoIndent>忽略语言
答案 1 :(得分:14)
我可以确认Notepad ++版本5.0.3发生了这个问题。我找到的唯一相关设置是在设置>下偏好> MISC>自动缩进,但只是打开或关闭所有自动缩进。
我过去曾使用过Editra(http://editra.org)并对此感到满意,并且它似乎以您描述的方式处理缩进。
答案 2 :(得分:3)
我找到了另一种方式:
使用宏“修剪尾随并保存”快捷键“Alt + Shift + S”
我总是需要这个,只需将保存快捷方式与宏“Trim Trailing并保存”快捷方式交换。
我在编程时只倾向于使用记事本++,所以这对我很有用。
答案 3 :(得分:2)
不幸的是,Notepad ++没有自动修剪第二个空的新行。但是,作为一种解决方法,我同意user108570:宏将是完美的。
我喜欢在“soft”与“hard”换行符之间进行概念上的区分,类似于两种类型的标签。前者的输出取决于当前样式和缩进设置。然而,后者的输出应该始终是一个简单,纯粹,纯粹的香草新线。
当然,最常用的换行风格应该映射到更简单的键组合。对于大多数编辑,您可能希望将“soft linefeed”映射到“Enter”键并更改“Ctrl + Enter”以触发“hard linefeed”。
在“菜单 - >设置 - >快捷键映射器 - >主菜单”中,您会看到默认情况下“Ctrl + Enter”映射到“Word完成”。这需要首先通过将其映射到“无”来禁用。
然后只记录一个宏:
最后一步将弹出一个对话框,您可以在其中命名宏(例如“Hard Linefeed”)并设置其映射(即“Ctrl + Enter”)。
在第3步,我们可以添加任何内容(可打印)。它的唯一目的是在之前没有任何内容的情况下添加要删除的内容,以便光标后面的任何文本都保持不变。
答案 4 :(得分:1)
我在Notepad ++中所做的是:
我会告诉你如何录制一个使用另一个宏的宏,但是几年前我做了它,现在我只是复制文件。我希望它能正常工作,或者我可能通过手动编辑快捷方式文件来实现。它看起来像这样(在shortcuts.xml中):
<Macro name="Trim and save" Ctrl="no" Alt="yes" Shift="yes" Key="83">
<Action type="1" message="2170" wParam="0" lParam="0" sParam=" " />
<Action type="1" message="2170" wParam="0" lParam="0" sParam=" " />
<Action type="1" message="2170" wParam="0" lParam="0" sParam=" " />
<Action type="0" message="2327" wParam="0" lParam="0" sParam="" />
<Action type="0" message="2327" wParam="0" lParam="0" sParam="" />
<Action type="2" message="0" wParam="42024" lParam="0" sParam="" />
<Action type="2" message="0" wParam="41006" lParam="0" sParam="" />
</Macro>
两个警告:
修剪宏是错误的。它仅在光标位于行末尾时才有效。我偶尔会考虑尝试修复它或做我自己的,但永远不会被打扰,因为我在保存之前通过自己移动光标来反复解决它。可以在“修剪和保存”宏中构建相同的解决方法。
如果你从“他们的”文件中删除尾随空格,有些人会感到沮丧 - 或者因为他们喜欢它,或者因为他们有时使用diff而不忽略空格(例如在更改报告中)并且不想看到你改变了一半文件,真的是一个单行。因此,对于这些文件,只需保留尾随空格,然后使用alt-f-s(或移动保存的“其他内容”)而不是ctrl-s进行保存。您可能需要将Notepad ++设置为不在保存时清除撤消缓冲区:否则此处的错误将是一个灾难。但无论如何我都设定了。
答案 5 :(得分:1)
修剪尾随空格和保存令人讨厌。你会注意到你无意中在文档中插入了几个字符。
而是录制宏并将其绑定到ctrl + s。
以下是如何操作:
答案 6 :(得分:0)
老实说,这对我来说似乎是预期的行为。我自己使用了很多空白行来分解代码以使其更具可读性,让程序让我不得不再次标记将非常烦人。
我可以理解这是对Python之类的挫折,但不是用PHP ...但是,在括号等之前这可能会很烦人。
尝试Komodo Edit然而,它是免费的,而且我发现它通常是我自动缩进的最佳选择。它似乎已经学习了我的编码风格(或者在所有编码风格中都有选项,并且它可以获取你正在使用的内容)并自动缩进所有内容。
编辑:正如你在回复中所提到的那样,问题在于“尾随空白” - 我不太了解Notepad ++,但大多数为编码设计的现代编辑器都有一个“保存时带尾随空格”选项(我知道Komodo会这样做!)