Notepad ++多重编辑


112

如何在Notepad ++中具有多个光标?

我将有几个制表符分隔的值。我需要为所有这些值编写查询。例如,如果我得到一个具有以下值的Excel文件:

1234 xyz pqr
2345 sdf kkk
...

我想将整个数据复制到Notepad ++并编写查询,一次插入所有值。

像这样:

Insert into tbl (1234, xyz) where clm = 'pqr'
Insert into tbl (2345, sdf) where clm = 'kkk'
...

我以前是用我以前的文本编辑器Ultraedit来做的。可以使用Notepad ++完成吗?


2
呃...使用SublimeText。:)
Praveen Kumar Purushothaman'2

我一直使用Notepad ++进行此操作,但是在此工作上受UltraEdit的困扰...如何使用UltraEdit进行此操作?:)
罗恩·詹森-我们都是莫妮卡

Answers:


166

是:只需按住Alt键,单击并拖动以选择要编辑其列的行,然后开始输入。

您也可以转到“设置”>“首选项...”,然后在“ 编辑”选项卡中启用多重编辑,以启用多个单独区域或文本列的选择以立即进行编辑。

它更加直观,因为您可以在键入时实时看到所做的修改。


2013在这里,v5.2:没有(较长)的“编辑”选项卡或多编辑选项。
Wouter

@Wouter:在v6.2中它仍然对我有用...如果v5.2中不存在它,则可能是其他问题,但是我无法进一步评论。
BoltClock

@BoltClock:太酷了!在版本v5.2和v6.2之间的某个位置,必须已添加该功能。或者,也许在此之前它暂时丢失了:)
Wouter

1
可以在此处查看演示:notepad-plus-plus.org/features/multi-editing.html。它看起来像旧版本,但是我在v6.4.5中尝试了一下,效果很好。
brazilianldsjaguar 2014年

10
alt+up/down没有为我工作。我不得不使用alt+shift+up/down。v6.9.1
AXO

51

在您要添加文本的位置,执行以下操作:

Shift+ Alt+down arrow

并选择所需的行。然后输入。您键入的文本将插入到您选择的所有行中。


1
确实是这里最好的答案。
Etienne Gautier,

这是更好的答案!切记使用shift + alt进行剪切,复制等任何操作!
gaurav

我一直在寻找此功能很久了,谢谢!
michal.hubczyk




8

Notepad ++具有强大的正则表达式引擎,可以随意搜索和替换模式。

在您的情况下:

  1. 单击菜单项“搜索\替换...”。

  2. 使用搜索模式填写“查找内容”字段:

    ^(\d{4})\s+(\w{3})\s+(\w{3})$
    
  3. 填写替换模式:

    Insert into tbl (\1, \2) where clm = \3
    
  4. 点击Replace All按钮。

就是这样。

NotePad ++替换窗口截图


我使用正则表达式进行这些类型的编辑已有10多年了,但是许多人修复了正则表达式令人困惑或难以学习的问题
raider33

6

解决问题的最简单方法(无需使用其他编辑器或学习正则表达式)是记录宏。

  • 将光标置于文本的开头,单击功能区中的“记录”按钮,然后仅编辑该行文本。您只能使用箭头键或ctrl +箭头键来移动字符/单词,而不用鼠标单击。'home'和'end'键也很有用。
  • 完成那一行后,将光标(再次不使用鼠标)移动到下一行的开头。
  • 点击“停止录制”按钮。
  • 点击“播放宏”按钮,检查它是否可以按预期在下一行运行。
  • 单击“多次运行宏”,一次又一次,再一次...:P
与“多编辑”游标相比,此游标的一个优势是您不必手动单击并在每行上放置游标。第二个优点是您可以使用大小/长度不一致的制表符分隔数据-只需使用ctrl +向左/向右跳过单词即可。

老实说,N ++中的宏已经挽救了我大约一年的生命。


1

Notepad ++仅具有列编辑功能。这与多个游标并不完全相同。

Sublime Text具有出色的实现,可能值得一看...
这是一个相对较新的编辑器(2011年),很快得到了普及:http : //www.google.com/trends/explore#q=Notepad% 2B%2B%2C%20Sublime%20Text&cmpt = q

编辑:显然是在Notepad ++ 6.x版本的多光标编辑周围添加了一些内容,但是Sublime中仍然有一些更高级的功能,例如“选择下一个出现”。


npp的多光标编辑远不及sublime的多行编辑好。
th1rdey3

1
校正:默认情况下,npp的多光标编辑远不及sublime的多行编辑。scintilla库允许sublime支持的所有功能。任何用户都可以下载nppscripts或pythonscript之类的插件来访问基础的npp框架,并将这些脚本映射到键盘快捷方式,从而模拟所有崇高命令。对于那些不想麻烦配置其编辑器的人,一定要付出高昂的代价。
user2867288 2014年

我知道您来自哪里,但是要求普通用户必须为常规功能编写底层编辑器框架的脚本并不公平。如果某个插件已经做到了这一点,我会同意你的看法(如果我有更多时间,我会做一个)。同样在最近的这一文章sourceforge.net/p/scintilla/feature-requests/1085中说,“突出显示下一个”可能很容易,但是您仍然不能使用箭头键功能。我想知道实施“跳过”有多么容易?突出显示下一个,跳过下一个,有时箭头都可能有帮助。
ShawnFumo 2015年

0

您可以使用插件ConyEdit来执行此操作。与ConyEdit在后台运行,请按照下列步骤操作:

  1. 使用命令行将cc.spc /\t/ a文本分成几列,然后将它们存储在二维数组中。
  2. 使用命令cc.p打印,使用数组的内容。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.