如何在Notepad++上将宏应用到多行?

问题描述 投票:0回答:2

我想在这些日期上输入“-更新”,并用新行分隔。 我的宏位于 ALT + P 上。 我尝试在日期末尾进行垂直选择,但宏仅适用于第一行。如何在多行上应用宏?

如果我粘贴它,它会起作用,但在执行宏时则不起作用。 VS code 和 EmEditor 上有类似的功能。

开始:

21 Mar-27 Mar
28 Mar-03 Apr
18 Apr-24 Apr

结果:

21 Mar-27 Mar - updated
28 Mar-03 Apr
18 Apr-24 Apr

理想结果:

21 Mar-27 Mar - updated
28 Mar-03 Apr - updated
18 Apr-24 Apr - updated
notepad++
2个回答
0
投票

来自 Notepad++ 文档 :

Notepad++ 能够记录您在编辑文档时执行的一些操作,并在以后重播这些操作,以避免重复该操作序列。这称为宏,可以节省大量时间。

这意味着 - Notepad++ 宏仅回放 您的键盘操作。您还需要确切知道光标在哪里。

  • 将第 1 行的光标设置到位置 1
  • 开始宏录制
  • 转到行尾End并添加所需的文本
  • 跳至行首 Home
  • 往下走一行
  • 停止宏录制

从主菜单执行宏>多次运行宏,然后选择运行直到文件末尾。这导致:

enter image description here

如果您想尝试使用正则表达式,您需要执行以下步骤:

  • Ctrl+H
  • 查找内容:
    (.+)
  • 替换为:
    $1 - update
  • 勾选环绕选项
  • 搜索模式:正则表达式
  • 单击全部替换(风险自负)
(.+)
1st Capturing Group (.+)
. matches any character (except for line terminators)
+ matches the previous token between one and unlimited times

enter image description here


0
投票

于山多PowerShell

    # Ruta al directorio de los archivos
$directorio = "C:\internet\correos_guardados"

# Extensión de los archivos a procesar (ajusta si es necesario)
$extension = ".txt"


# Obtener todos los archivos con la extensión especificada
$archivos = Get-ChildItem $directorio -Filter "*$extension"

# Iterar sobre cada archivo
foreach ($archivo in $archivos) {
    # Ruta completa del archivo
    $rutaCompleta = Join-Path $directorio $archivo.Name

    # Abrir el archivo en Notepad++
    $notepad = Start-Process "C:\Program Files\Notepad++\notepad++.exe" -ArgumentList $rutaCompleta

    # Esperar a que Notepad++ se abra
    Start-Sleep -Seconds 2


    # Simular la secuencia de teclas
    Add-Type -AssemblyName 'System.Windows.Forms'
    #[System.Windows.Automation.AutomationElement]::Focused().SetFocus()
    #Add-Type -AssemblyName 'System.Windows.Forms'
    [System.Windows.Forms.SendKeys]::SendWait("%+9")

    # Simular la combinación de teclas Ctrl+S para guardar
    #Add-Type -AssemblyName 'System.Windows.Forms'
    [System.Windows.Forms.SendKeys]::SendWait("^{s}")
    
    # Simular la combinación de teclas Ctrl+W para cerrar
    #Add-Type -AssemblyName 'System.Windows.Forms'
    [System.Windows.Forms.SendKeys]::SendWait("^{w}")
    
    # Cerrar Notepad++ (opcional)
    #$notepad.CloseMainWindow()
}
© www.soinside.com 2019 - 2024. All rights reserved.