![Notepad++ 同时打开和关闭标签页](https://linux22.com/image/1355204/Notepad%2B%2B%20%E5%90%8C%E6%97%B6%E6%89%93%E5%BC%80%E5%92%8C%E5%85%B3%E9%97%AD%E6%A0%87%E7%AD%BE%E9%A1%B5.png)
我希望当我使用资源管理器中的上下文菜单时,Notepad++ 带有选项卡(默认情况下如此)Edit with Notepad++
,但当我仅选择某些文件扩展名时,它在新窗口中打开而不带选项卡(类似于 Notepad/Notepad2)Open
。如果可以在上下文菜单项中完成此操作Open
,那也很好。
Notepad2 很好,但我希望 Notepad++ 具有非选项卡式窗口的确切功能(它突出显示所选单词的所有实例、键盘快捷键等的方式)。将 asNotepad.xml 添加到 Notepad++ 文件夹将使其每次都在新窗口中打开,但我希望能够同时打开选项卡式窗口。
在 cmd 中使用"C:\Program Files (x86)\Notepad++\notepad++.exe" -multiInst -notabbar -nosession <text file>
(可以轻松修改为放入上下文菜单,或可能与“打开”一起使用)将在新窗口中打开 Notepad++,而没有选项卡栏。乍一看这似乎不错,但是在这个窗口仍然打开的情况下,Edit with Notepad++
在任何文件上使用都会在这个未加选项卡的窗口中打开它。
答案1
似乎没有简单的解决方案,因此我使用了 2 个 Notepad++:
- (标签式复制)Notepad++ 6.3 安装用于在标签中打开文件
- (未加标签的副本)Notepad++ 6.3 从源代码编译而来,并进行了一些简单的调整以在新窗口中打开文件(未加标签的副本)。
如果不调整 Notepad++ 的未标签副本,文件将不会像您期望的那样在 Notepad++ 副本中打开。如果编辑源文件不适合超级用户,我很抱歉,但我希望这对某些人有用。
编译未加标签的副本
源代码自述文件建议在 Visual Studio 2005 中进行编译,但在 Visual C++ 2010 Express(微软免费提供)中编译成功http://www.microsoft.com/visualstudio/eng/downloads#d-2010-express)。
只需打开 npp.6.3.src\PowerEditor\visual.net\notepadPlus.vcproj(如果系统要求,请转换项目)并选择构建“Unicode Release”。现在您可以测试它是否正确构建:
这会将 notepad++.exe 放置在 PowerEditor\bin 中,但您需要在同一目录中复制一份 SciLexer.dll 才能运行。它随 Notepad++ 一起提供,因此只需从网站下载即可。还要在同一目录中创建一个空文本文件“asNotepad.xml”,这将使其取消选项卡并在新窗口中打开文件。
调整
在 winmain.cpp 的第 214 行,将 更改"nppInstance"
为"nppInstance2"
或类似内容。进行此更改后,当您只打开未打开选项卡的窗口时,Notepad++ 的选项卡式副本将不会认为 Notepad++ 窗口已打开。
在 Notepad_plus_Window.cpp 的第 32 行,将其更改"Notepad++"
为"Notepad++2"
或类似内容。这在 winmain.cpp 的第 287 行中使用。进行此更改后,选项卡式版本在搜索当前打开的窗口以打开文件时将不包含非选项卡式窗口。
现在再次构建,并将 PowerEditor\bin 文件夹移动到您想要的任何位置。如果您希望在打开某些文件扩展名(例如 .txt)时打开未带标签的副本,在 Windows 7 中,我发现我必须将“notepad++.exe”重命名为“notepad++2.exe”,否则它将打开已安装的(带标签的)副本。
编辑:
如果您从源代码编译并想要插件菜单,您还需要从 Notepad++ 的另一个副本将 DLL 复制到插件文件夹中。
答案2
一个解决方案是使用 Windows 中的“发送到”功能。
%APPDATA%\Microsoft\Windows\SendTo
在文件夹中放置 Notepad++ 的快捷方式
(这通常是C:\Users\<username>\Appdata\Roaming\Microsoft\Windows\SendTo
)
右键单击快捷方式,选择属性并转到快捷方式选项卡。
"C:\Program Files (x86)\Notepad++\notepad++.exe" -multiInst -notabbar -nosession
在目标字段中使用。
现在右键单击一个文件并发送到 -> Notepad++ 将在 Notepad++ 中打开未加标签的文件。
由于该-notabbar
标志目前似乎强制 Notepad++ 保存其设置,因此您应该在 SendTo 中设置 2 个快捷方式:
一个指向 Notepad++ 标准安装版本,名为“Notepad++ Tabbed”(将标志-multiInst -nosession
附加到目标字段的末尾)
一个(附加-multiInst -nosession -notabbar
到目标字段)指向该程序的压缩版本,称为“Notepad++ Untabbed”。
只要两个快捷方式都添加了-multiInst
标志,它们就可以同时运行,并且您可以完全控制哪个版本打开哪个文档。