【问题标题】:Notepad++ Multi editingNotepad++ 多编辑
【发布时间】:2011-03-28 01:24:38
【问题描述】:

如何在 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++ 完成吗?

【问题讨论】:

  • 呃...使用 SublimeText。 :)
  • 我一直用 Notepad++ 来做这件事,但是在这个工作上我被 UltraEdit 困住了……我如何用 UltraEdit 做这个? :)

标签: notepad++


【解决方案1】:

Notepad++ 现在也可以处理多个光标。

进入设置 => 首选项 => 编辑并在“多编辑设置”中选中“启用” 然后,只需使用 Ctrl+单击即可使用多个光标。

官网功能演示在这里https://npp-user-manual.org/docs/editing/

【讨论】:

【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

    【解决方案4】:

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

    在你的场景中:

    1. 单击菜单项搜索\替换...

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

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

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

    就是这样。

    【讨论】:

    • 我使用正则表达式进行这些类型的编辑已有 10 多年了,但许多人修复正则表达式令人困惑或难以学习
    【解决方案5】:

    在要添加文字的位置,执行:

    Shift + Alt + down arrow

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

    【讨论】:

    • 这里真的是最好的答案。
    • 这是更好的答案!切记使用 shift+alt 进行剪切、复制等任何操作!
    • 找这个功能很久了,谢谢!
    【解决方案6】:

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

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

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

    【讨论】:

      【解决方案7】:

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

      您也可以前往设置>首选项...,并在编辑标签中,开启多重编辑,以启用多个独立区域或列的选择一次编辑的文本。

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

      【讨论】:

      • 这里是 2013,v5.2:没有(不再是)编辑选项卡或多编辑选项。
      • @Wouter:它在 v6.2 中对我来说仍然存在......如果它在 v5.2 中不存在,那么其他可能是错误的,但我无法进一步评论。跨度>
      • @BoltClock:酷!必须在 v5.2 和 v6.2 之间的某个地方添加了该功能。或者它可能在那之前的某个地方暂时丢失了:)
      • 可以在此处查看演示:notepad-plus-plus.org/features/multi-editing.html。貌似是老版本,不过我在v6.4.5试了一下,效果很好。
      • alt+up/down 对我不起作用。我不得不改用alt+shift+up/down。 v6.9.1
      【解决方案8】:

      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 的多行编辑。
      • 更正:npp 的多光标编辑远不及 sublime 的多行编辑 default。 scintilla 库允​​许 sublime 支持的所有功能。任何用户都可以下载诸如 nppscripts 或 pythonscript 之类的插件来访问底层 npp 框架并将这些脚本映射到键盘快捷键,从而模拟所有 sublime 命令。对于那些不想费心配置编辑器的人,一定要为 sublime 付费。
      • 我了解您来自哪里,但要求普通用户必须编写底层编辑器框架的脚本以获得正常功能是不公平的。如果插件已经这样做了,我会同意你的看法(如果我有更多时间我会做一个)。最近的这篇帖子sourceforge.net/p/scintilla/feature-requests/1085 说“突出显示下一个”可能很容易做到,但你仍然不能拥有箭头键功能。我想知道“跳过”的实现有多容易?突出显示下一个,跳过下一个,箭头有时会很有帮助。
      【解决方案9】:

      您可以使用Edit > Column Editor... 在当前行和下一行插入文本。快捷键是 Alt + C

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-11
        • 1970-01-01
        • 1970-01-01
        • 2014-05-01
        • 1970-01-01
        相关资源
        最近更新 更多