代码之家  ›  专栏  ›  技术社区  ›  alexn

扩展记事本++

  •  15
  • alexn  · 技术社区  · 15 年前

    当我每天在工作中使用记事本++时,我想扩展它以提高工作效率。

    我要做的是选择包含单词的多行,右键单击并单击“逗号分隔”之类的菜单项,然后在一行中以逗号分隔所有单词。

    我知道Notepad++支持宏和插件。最好的方法是什么?

    我的C++技能有限。

    更新:

    更新2

    谢谢你的回答。我将尝试创建一个记事本++插件。

    更新3

    有人知道用.NET包装器来创建记事本++插件吗?也许这应该是一个新问题。

    6 回复  |  直到 15 年前
        1
  •  8
  •   Dave Brotherstone    14 年前

    现在,您可以使用Notepad++的Python脚本插件轻松完成这项工作。

    只需添加一个脚本,如下所示

    text = editor.getSelText()
    text = text.replace(' ', ',')
    editor.replaceSel(text)
    

        2
  •  5
  •   Blorgbeard    15 年前

    假设你有这个:

    apple
    pear
    banana
    grape
    orange
    

    要用逗号分隔行,可以转到第一行,按ctrl+r(开始录制),然后按end、delete、逗号,然后再按ctrl+r停止录制。

    您不能保存宏以备以后使用,但这样简单的操作很容易再次执行。

    编辑: 事实上,原来是你 可以 保存宏以备将来使用,甚至为其指定热键。只需录制宏,然后继续 Macro -> Save current recorded macro .

        4
  •  1
  •   Malcolm    15 年前

    实际上,在Notepad++中,您必须使用此字符串来匹配一行中的单个单词,可能带有尾随空格:

    ^\<(.*)\> *$

    然后用 \1,

    我自己也试过这么做,一切都成功了,除了在这之后你必须从正则表达式搜索模式切换到扩展和删除所有 \r\n \n 取决于你的行尾。

        5
  •  1
  •   balver    13 年前

    1. 关闭记事本++
    2. 在除N以外的任何文本编辑器中编辑%AppData%\Notepad++\shortcuts.xml++
    3. 查找<宏>在下面的代码中标记并粘贴:

      <Macro name="Lines to comma separated text" Ctrl="no" Alt="yes" Shift="yes" Key="82">
          <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
          <Action type="3" message="1601" wParam="0" lParam="0" sParam="\r\n" />
          <Action type="3" message="1625" wParam="0" lParam="1" sParam="" />
          <Action type="3" message="1602" wParam="0" lParam="0" sParam="," />
          <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
          <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
      </Macro>
      
    4. 保存、关闭和打开记事本++-您将在“宏”菜单中看到一个新宏,快捷键设置为Alt+Shift+R(易于在shortcuts.xml中配置)
        6
  •  0
  •   PhiLho    15 年前

    让我看看。 我有五行字。我选择了他们。Ctrl+H。选中所选内容中的扩展和。搜索“\r\n”,替换为“,”,点击全部替换。 我基本上得到了你想要的结果(末尾加了一个逗号)。

    这就是你想要的吗?也许你可以用它制作一个宏,我对这个功能不太了解(实际上我主要使用SciTE)。