NotePad++使用、魔改笔记

NotePad++编译、使用笔记

  • ++++++++++++++
    • 好用的工作区
    • 一般人不知道的快捷键
    • 我的改进尝试
      • 项目启动!名之曰 `代号:NOTMAD`
      • 第一:修改图标
      • ~~第二:改进搜索~~
      • 第三:view菜单中,追加“文档列表面板”选项。
      • 第四:修改快捷键对话框,更改为非模态形式。
      • 第五:加强“行跳转对话框”。
      • 第六:让插件支持大图。

++++++++++++++

相信许多人都是从NotePad++开始接触代码的。最开始为游戏编写脚本的我,自然也不例外。

这款软件绝对堪称经典,作为和使命召唤4同时期的产物,在今天看来,他的身上仍然有着许多亮点。比如ALT+SHIFT按列选择全文搜索、好用的正则表达式集成、特别好用的宏录制插件系统等常用功能。

单单宏录制这一点,Android Studio/IDEA 就被打败了,Android Studio 的宏录制无法很好地记录文本替换操作,比如替换剪贴板内容,Android Studio根本就不会记录下粘贴来的、要被替换地文本,除非你一个字母一个字母地打出来。

NotePad++的全文搜索界面虽然没有Android Studio好看,也无法实时修改,但胜在能同时保留多个搜索结果,至今仍然风光无两。配合多实例模式,更是用起来如鱼得水。

好用的工作区

文档列表面板
此乃将所有标签页列出来的左侧面板。(缺点是不能搜索无法拖动。)可以配合快捷键 Ctrl/Command + Shift + PageUp/Down 移动标签页。

我的想法是,当此面板有显示的时候,用CTRL+TAB切换标签页就可以直接不显示原来的对话框了,岂不美哉?

一般人不知道的快捷键

列选 ALT + 鼠标拖动
快速列选 左键点击,ALT + SHIFT + 左键点击
切换标签页 Ctrl + Tab
向上切换标签页 Ctrl + SHIFT +Tab
移动标签页 Ctrl + SHIFT +PAGE UP / PAGE DOWN

我的改进尝试

项目启动!名之曰 代号:NOTMAD

NotMad的含义:代码可以疯狂YY,海阔天空无垠无限。但口出狂言就是不对了,滥用影响力实在令人扼腕叹息!

编译:PowerEditor模块可以直接编译,核心组件需要boost。(偷懒可以直接复制发行版中的dll文件。)

我的改进当然集中在界面和用户体验上,核心库我可改不了,没那个精力,那得需要个专家才行。

插件
项目主页
https://github.com/NotMad-Text-Editor-Plugins
https://github.com/KnIfER/notepad-plus-plus

⛲⛲⛲⛲⛲⛲⛲⛲

https://github.com/KnIfER/NotMad-Text-Editor/tree/394f762d6b1057e15ad134c498cbb5f2c938e596
https://sourceforge.net/projects/locationnav/files/Source/LocationNavigate_src_v0.4.7.7.zip/download

第一:修改图标

经典的小图标还算养眼,但大图标看起来太扎眼,满满的荆棘感。于是,修改一波走起!直接复用Android Studio自带的向量图标库,先用我的Vector Path Tweaker 简单编辑,然后让AS自动生成v4 hdpi的png图片,最后PhotoPea中润色一下就可以导出.ico文件给notepad++用了!让notepad++也Material Design起来吧!

第一波图标
虽然挺累,但结果我挺满意,且没有任何版权问题(试问Apache协议+GPL协议===???)。其中,“保存”的图标是图库原图,我的解读如下:整体外形代表文件或文件系统,矩形代表存储区域,一个点代表一个磁头。这样,“保存全部”的图标,由file图标+storage图标“合成”而来,其画面上含有多个磁头和多个存储区域,也就可以解读成多次写入了。

第二:改进搜索

原版,正则表达式默认不可以向后搜索,虽然有一点问题,但其实是可以的。

正则表达式不支持全词匹配?来来来,是谁告诉你的,看我不打爆它的狗头,不就是首尾自动添加\b嘛?

第三:view菜单中,追加“文档列表面板”选项。

左侧文档列表(document list panel /doc swicther)只能在设置中打开关闭,但其实应该在视图菜单中增设选项。

我认为更恰当的名字是Tab List,标签列表。不过,这都是第三个名字了……

参考 https://github.com/notepad-plus-plus/notepad-plus-plus/issues/3526

第四:修改快捷键对话框,更改为非模态形式。

模态形式的捷键对话框存储在栈空间,打开时无法操作主程序,关闭后立即销毁,无法长存。

快捷键对话框有搜索、定制的功能,理应长存,至少保留一定时间的上下文,不然,每次操作都要重新打开对话框、重新定位,岂不累死烦死?

修改为非模态形式客参考 Style Configurator (搜索IDM_SETTING_SHORTCUT_MAPPER、IDM_SETTING_SHORTCUT_MAPPER), 在 NppCommands.cpp 中处理,实例化Notepad_plus.cpp中已经定义的_pShortcutMapper指针变量,然后显示之。

第五:加强“行跳转对话框”。

5.1 固定对话框
使跳转对话框可多次使用。而不是“定位”一下就关闭了。

5.2 记忆跳转行
关闭后仍然记得上次我要他跳转的行位置。(其实是不清空)

5.3 放宽输入限制
手写_ttoi函数,高鲁棒地将TCHAR转换为int,可识别aaa123aaa中的数字123

5.4 支持行偏移
支持行偏移比如:123:10,定位第123行第10列。

第六:让插件支持大图。

Notepad++的插件,默认是不支持显示大图标的,只有经典图标可供放置在工具栏上面。

现改进此项不足,让插件支持大图标。以 LocationNavigate 插件为例,增制了四个图标:


支持大图/小图标的动态切换,然后为插件提供了默认的大图图标,图中是PythonScript :
NotePad++使用、魔改笔记_第1张图片
将 LocationNavigate 迁至64位还是花费了些功夫,主要之前不熟悉win32的API,比如64位需用LONG_PTR、GetWindowLongPtr、SetWindowLongPtr替换LONG、GetWindowLong、SetWindowLong,不然寻址出错,会报Access Violation。

令人欣喜的是,修改后,适配了修改版Notepad++的插件仍然兼容普通版本。

你可能感兴趣的:(编译奇兵)