Notepad ++多重编辑

Notepad++ Multi editing

如何在Notepad ++中使用多个游标?

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

1
2
3
1234 xyz pqr
2345 sdf kkk
...

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

像这样:

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

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


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

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

它更加直观,因为您可以在键入时看到您的编辑。


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

Shift + Alt + down arrow

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


您可以使用Edit > Column Editor...在当前行和后续行插入文本。快捷方式是Alt + C


Notepad++ also handles multiple cursors now.

进入Settings => Preferences => Editing并选中"Multi editing settings"中的"Enable"
然后,只需使用Ctrl +单击即可使用多个游标。

官方网站上的功能演示:https://notepad-plus-plus.org/features/multi-editing.html


您可以使用控制按钮在多行上添加/编辑内容。这是Notepad ++中的多编辑功能,我们需要从设置中启用它。按住控件,选择要输入文本的位置,释放控件并开始键入,这将更新之前选择的所有位置的文本。

enter image description here

参考:http://notepad-plus-plus.org/features/multi-editing.html


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

在您的方案中:

  • 单击菜单项Search replace ...

  • 使用搜索模式填写"查找内容"字段:

    1
    ^(\d{4})\s+(\w{3})\s+(\w{3})$
  • 填充替换模式:

    1
    Insert into tbl (\1, \2) where clm = \3
  • 单击Replace All按钮。

  • 就是这样。

    NotePad++ replace window screenshot


    解决问题的最简单方法(无需转到不同的编辑器或学习正则表达式)就是录制宏。

    • 将光标放在文本的开头,单击功能区中的"记录"按钮,然后只编辑那一行文本。您只能使用箭头键或ctrl +箭头键移动字符/单词而不是用鼠标单击。 'home'和'end'键也很有用。

    • 当您完成该一行后,将光标(再次不使用鼠标)移动到下一行的开头。

    • 单击"停止录制"按钮。

    • 单击"播放宏"按钮以检查它是否按预期在下一行上工作。

    • 单击"多次运行宏"再次执行,然后再次执行...:P

    这种"多编辑"游标的一个优点是您不必手动点击并在每一行上放置游标。第二个优点是你可以使用没有一致大小/长度的制表符分隔数据 - 只需使用ctrl + left / right来跳过单词。
    老实说,N ++中的宏已经节省了大约一年的生命。


    Notepad ++只有列编辑。这与多个游标不完全相同。

    Sublime Text有一个奇妙的实现,可能值得一试......
    这是一个相对较新的编辑(2011年),它正在迅速普及:
    http://www.google.com/trends/explore#q=Notepad%2B%2B%2C%20Sublime%20Text&cmpt=q

    编辑:显然在Notepad ++版本6.x多点光标编辑的某处附加了,但在Sublime中还有一些更高级的功能,如"select next occurrence"。


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

  • 使用命令行cc.spc /\t/ a将文本拆分为列并将它们存储在双暗阵列中。
  • 使用命令cc.p打印,使用数组的内容。