我正在使用Notepad ++进行某些项目而错过了Visual Studio的 Ctrl + X , Ctrl + C 在没有选择文本时剪切或复制整个当前行的功能。剪切线快捷键似乎是 Ctrl + L ,这不如 Ctrl + X 和复制快捷方式似乎是 Ctrl + D , Ctrl + L ,这样更不方便。
虽然以前曾问过similar question,但是没有提供在Notepad ++中执行此操作的方法,我在Notepad ++网站或论坛上找不到解决方案。
答案 0 :(得分:22)
我已经创建了一个Notepad ++插件,可以执行此操作(无需python)。它可以在https://bitbucket.org/zastrowm/notepad-visualstudiolinecopy找到。
答案 1 :(得分:21)
综合所有其他答案和评论,以及一些尚未提及的其他必要步骤:
Scintilla提供了一个“copyAllowLine”命令来执行此操作。 Notepad ++不会在快捷方式映射器中公开该命令,但您可以从Python脚本中调用它,并将 Ctrl + C 映射到该脚本。 “cutAllowLine”没有相应的命令,但是会有一些额外的Python代码。必须将这些脚本添加到菜单中,并且Notepad ++必须重新启动才能在快捷方式映射器中可用
安装Python Script插件(可以使用Notepad ++插件管理器完成)
使用菜单插件创建以下两个python脚本 - > Python脚本 - >新脚本
editor.copyAllowLine()
if editor.getSelectionStart() == editor.getSelectionEnd():
editor.lineCut()
else:
editor.cut()
Python脚本 - >构造
重启notepad ++(重要)
设置 - >快捷方式Mapper ......
,删除 Ctrl + C 和 Ctrl + <的现有关联KBD> X
,找到您刚创建的脚本并将快捷方式映射到它们。
注意:通过插件管理器安装时,安装了1.0.6版。当我试图在Notepad ++中运行任何与python相关的东西时,我从插件管理器中得到了一个未知异常。解决方案是从这里手动下载并安装1.0.8 .msi:1.0.8 installer
答案 2 :(得分:3)
使用菜单插件创建此python脚本 - &gt; Python脚本 - &gt;新脚本:
if editor.getSelectionStart() == editor.getSelectionEnd():
editor.lineCut()
else:
editor.cut()
重启notepad ++(重要)
转到菜单设置 - &gt;快捷方式映射器 - &gt;插件命令
在列表中找到您刚刚创建的脚本并为其设置CTRL + X快捷方式
享受!
答案 3 :(得分:2)
转到设置 - &gt;快捷键映射器,然后单击顶部的“Scintilla命令”选项卡。在那里,您应该能够将 Ctrl + L 命令更改为 Ctrl + X 。
答案 4 :(得分:1)
您可以使用Python Script Notepad ++插件添加脚本,并将 Ctrl + C 分配给脚本(删除 Ctrl + < kbd> C 从快捷方式映射器中的SCI_COPY映射,Scintilla命令选项卡)
脚本只是:
if editor.getSelectionStart() == editor.getSelectionEnd():
line = editor.getCurLine()
editor.copyText(line)
else:
editor.copy()
显然,只需为Ctrl-X添加另一个类似的脚本,即删除该行。
答案 5 :(得分:1)
来自MackieChan: notepad-visual studio line copy
的插件 必须按照以下方式设置:
将其放入notepad ++ / plugin文件夹
打开记事本++(重启)
- &gt;快捷方式映射器
在 Scintilla命令下,删除Ctrl + C,X
的现有关联在插件命令下,找到您刚创建的脚本并将快捷方式映射到它们。
答案 6 :(得分:0)
在https://github.com/kbilsted/NppPluginCutNCopyLine开源时有一个插件,如果你有额外的需求,代码很容易修改。
答案 7 :(得分:-2)
你可以编写一个带有全局键事件挂钩的程序,每次你做一个 Ctrl + X 检查notepad ++是否是最重要的应用程序运行,抓取屏幕,检查是否选择了任何文本(通过查看屏幕截图和记事本++颜色设置),并将WM_KEYPRESS消息发送到模拟 Ctrl + L 的记事本++窗口(假设你正在使用Windows。)
(这不会把线放到剪贴板中,你必须做一些字符识别才能允许它)