Блокнот ++ Сценарии: как удалить Newline? - PullRequest
2 голосов
/ 22 июня 2011

В настоящее время я пишу очень простой скрипт на PythonScript для базовой поддержки флажка ASCII в текстовом файле.

План состоит в том, что когда я нажимаю Alt + F2, редактор переключает [] на [x]и от [x] до [], если строка начинается с флажков или иным образом, чтобы просто вставить [] в текущую позицию.

Я написал скрипт, который работает ... почти

from Npp import *
import string

# If the line starts with [ ] or [x] the script toggles the value between the two possibilites
# if the line doesn't contains [ ] the script adds the empty box at the current position
curLine = editor.getCurLine()
curPos = editor.getCurrentPos()
curLineNr = editor.lineFromPosition(curPos)
strippedLine = curLine.lstrip()

if (strippedLine.startswith('[ ]')):
    curLine = curLine.replace('[ ]', '[x]', 1).rstrip('\n')
    editor.replaceWholeLine(curLineNr, curLine)
    editor.gotoPos(curPos)
elif (strippedLine.startswith('[x]')):
    curLine = curLine.replace('[x]', '[ ]', 1).rstrip('\n')
    editor.replaceWholeLine(curLineNr, curLine)
    editor.gotoPos(curPos)
else:
    editor.addText('[ ] ')

Но этот скрипт добавляет новую строку после замененной строки редактора.Весьма глупая работа заключалась бы в том, чтобы удалить вновь вставленную строку, но я не хочу вставлять ее в первую очередь.

Редактировать: / Получил работу .Просто используйте метод editor.replaceWholeLine, и он работает как шарм.

1 Ответ

2 голосов
/ 22 июня 2011

Используйте метод editor.replaceWholeLine с методом editor.replaceLine.

Сценарий, приведенный выше, теперь работает

...