Primeiro:
- Vá para o menu suspenso "Plug-ins".
- Abra o
Plugins Manager
. - Transfira
PythonScript
para o Notepad ++. - Por meio do prompt, reinicie o Notepad ++.
Próximo:
- Vá para Plug-ins no menu suspenso.
- Clique em
PythonScript -> new script
. - Salve o script com a extensão
.py
.
Copie e cole este código e edite-o:
#*** IMPORTS ***
from Npp import *
#*** DEFINITIONS ***
#*** http://docs.python.org/release/1.4/tut/node70.html (.h triple-string variables)***
initial_string="""
THIS IS A HUGE
STRING
WITH COMMENTS
AND FUNCTIONS
AND
NESTING varr
MISSPELLEDD WORDS
VARIABLES Varr
ALL KINDS OF CRAZY STUFF"""
#*** I am using a case-sensitive replacement; ***
#*** therefore, I use two replacement operations ***
#*** First replacement, lowercase ***
print initial_string
user_replacement_string=notepad.prompt(notepad, 'Replace', "")
#*** Second replacement, uppercase ***
editor.replace("varr", user_replacement_string)
user_replacement_string=notepad.prompt(notepad, 'Replace', "")
editor.replace("Varr", user_replacement_string)
Salvar .
Agora, crie um novo arquivo ctrl-n e teste o script. Vá para Plugins->PythonScript->Run Last Script
. Se funcionar, você pode colocá-lo em ação no arquivo em que está trabalhando.
Por conveniência, eu fiz ctrl-shift-e
uma tecla de atalho para o comando Run Previous Script (#yourscriptname.py)
. No menu suspenso, vá para Configurações ->
Mapeador de Atalhos . Clique na guia Plugin commands
. Perto do final, Run Previous Script
. Muito útil.
Curiosamente, você pode usar esse script para se duplicar para diferentes padrões. Eu realmente gostaria de saber como tornar isso possível. Por favor, veja a edição da minha pergunta.
EDIÇÃO IMPORTANTE
O código abaixo fará com que seu Notepad ++ crie seus próprios scripts. Execute este script e salve o arquivo no diretório c:/program files/Notepad++/plugins/config/PythonScript/scripts
{ padrão do Windows }:
#imports
from Npp import *
#variables
pattern_string=notepad.prompt(notepad, 'Pattern String')
number_of_replacements=int(notepad.prompt(notepad, 'Number of Replacements'))
variable_to_replace = []
replacement_title = []
the_header = """#imports
from Npp import *
#definitions
"""
a = "pattern_string = """ + '"' + '""' + pattern_string + '""' + '"'
b = """
print pattern_string
user_replacement_string"""
c = """=notepad.prompt(notepad, 'Replace', "Replaces: """
d = '"' + """)
editor.replace(""" + '"'
e = """", user_replacement_string"""
f = ")"
#function
for i in range (0, number_of_replacements):
replacement_title.append(str("Replacement Item ") + str(i+1))
variable_to_replace.append(notepad.prompt(notepad, replacement_title))
print the_header + a
print b + str(i) + c + variable_to_replace[i] + d + variable_to_replace[i] + e + str(i) + f
#thanks Wolfpack08.
Ele fará com que você possa importar strings que você costuma colar em seu arquivo, junto com variáveis que você geralmente precisa substituir. Escreva seu padrão de entrada com variáveis (por exemplo,
This is my stupid input pattern foo, and I use the common variable bar
.
Quando você executa o script, especifica esse padrão de entrada no primeiro pop-up. Você então especifica o número de variáveis no padrão de entrada: foo e bar (por exemplo, variáveis "2"). Nas caixas de entrada pop-up resultantes, você especifica as variáveis na ordem em que gostaria de substituí-las: (" foo ", " bar " ).
Eu não coloquei uma função de 'valor padrão' porque achei que seria chato substituir o que eu posso imaginar ser realmente aleatório dentro do léxico. Eu acho que seria muito útil ter valores padrão para pessoas que fazem muita entrada de dados e precisam desse tipo de macro, no entanto. Se alguém fizer uma solicitar para uma, eu a adicionarei.