我目前正在PythonScript中编写一个非常简单的脚本,以便在文本文件中支持基本的ASCII复选框。
计划是当我按下Alt + F2时,编辑器会将[]切换为[x]和[x]切换为[],如果行以复选框开头,或者只是在当前位置插入[]。 / p>
我写了一个有效的脚本......差不多
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方法,它就像一个魅力。
答案 0 :(得分:2)
将editor.replaceWholeLine方法与editor.replaceLine方法一起使用。
上面的脚本现在可以使用了