Sublime Text 2/3 - 如何在当前行下始终至少有10行?

时间:2016-01-21 09:53:50

标签: sublimetext2 sublimetext3 sublimetext

有没有办法在ST中显示当前行以下至少x行数?假设我的光标位于第55行,我希望Sublime在当前行下方至少再显示10行,因此第55行永远不会位于屏幕的底部。在Sublime中这可能吗?

1 个答案:

答案 0 :(得分:0)

您可以使用一个简单的插件来实现此目的,该插件会侦听光标移动事件。

在Sublime Text的Tools菜单中,点击New Plugin。 用以下内容替换内容:

import sublime, sublime_plugin

class ShowLinesUnderSelectionListener(sublime_plugin.EventListener):
    def show_lines_under_selection(self, view, number_of_lines_to_show):
        cursor_pos = view.sel()[0].end()
        row, col = view.rowcol(cursor_pos)
        desired_pos = view.text_point(row + number_of_lines_to_show, col)
        if not view.visible_region().contains(desired_pos):
            view.show(desired_pos, False)

    def on_post_text_command(self, view, command_name, args):
        if command_name in ('word_highlight_click', 'move', 'move_to', 'insert'):
            self.show_lines_under_selection(view, 10)

    def on_post_window_command(self, window, command_name, args): # for Vintageous support
        if command_name in ('press_key'):
            self.show_lines_under_selection(window.active_view(), 10)

将其保存到建议的文件夹中,如show_lines_under_cursor.py

这将确保光标下始终有10条可见线。请注意,一旦到达文件的底部,它将不再滚动以显示10个不存在的文件行。我不确定这是否可以通过API。