Я не знаю, как прокрутить за пределы автоматически для варианта (1), но для варианта (2): если у вас есть PythonScript , ты можешь использовать editor.documentEnd()
прокрутить до конца активного документа. Чтобы автоматически прокрутить до конца при открытии, запустите следующий скрипт:
# encoding=utf-8
"""in response to https://superuser.com/questions/1395356/open-a-session-file-and-show-the-last-document-lines-at-the-top-of-the-window"""
from Npp import *
def su1395356_ScrollToEnd_Callback(args):
"""this will scroll to the end of the current file"""
b = args['bufferID']
notepad.activateBufferID(b)
editor.documentEnd()
def su1395356_EndCallback():
"""This deactivates (clears) the scroll-to-end callback"""
notepad.clearCallbacks(su1395356_ScrollToEnd_Callback)
if __name__ == '__main__':
"""This registers (activates) the scroll-to-end callback"""
su1395356_EndCallback()
notepad.callback(su1395356_ScrollToEnd_Callback, [NOTIFICATION.FILEOPENED])
Каждый файл, который вы открываете после запуска этого скрипта, должен прокручиваться до конца буфера при его открытии.
Чтобы остановить этот обратный вызов, Плагины & gt; PythonScript & gt; Показать консоль затем беги su1395356_EndCallback()
с прямой линии. Или конечный обратный вызов может быть помещен в отдельный скрипт, который сначала импортирует это, а затем вызывает su1395356_EndCallback()
функция.
Если вы перезапустите NPP, обратный вызов больше не будет активным, поэтому вам нужно будет снова запустить скрипт. Или вы можете импортировать этот скрипт из вашего startup.py
, с Плагины & gt; Python Script & gt; Конфигурация ... установив «Инициализация» на «ATSTARTUP», что сделает его автоматический запуск
Если у вас его нет в startup.py
вы можете использовать Конфигурация ... диалог, чтобы добавить его в Пункты меню список; как только это будет сделано и АЭС будет перезапущена, вы можете использовать Настройки & gt; Ярлык быстрого доступа назначить сочетание клавиш.
редактировать: Выяснил для (1): отредактируйте первую функцию и добавьте еще одну функцию, как показано ниже. Задавать n=16
сколько угодно строк, или вы можете сделать это параметром, по желанию. Это только отправная точка.
def su1395356_ScrollToEnd_Callback(args):
"""this will scroll to the end of the current file"""
b = args['bufferID']
notepad.activateBufferID(b)
su1395356_AlternateScrollToLastNLines()
def su1395356_AlternateScrollToLastNLines():
"""will scroll the last n, assuming **Settings | Preferences | Editing | Enable scrolling beyond last line** enabled"""
n = 16
editor.scrollToEnd()
for i in range(n-1): # use n-1 because one row is already visible
editor.lineScrollUp()