Sublime:如何使用键盘箭头跳转n行?

den*_*ido 2 text text-editor editor sublimetext3

当我必须用箭头逐行遍历文本文件时,我感到非常乏味,但我觉得 PageDown/PageUp 让我迷失了方向。

有没有一种方法可以使用简单的快捷方式(如 ctrl+向下/向上箭头)简单地跳转 n 行?我觉得5行很适合我。

Oda*_*urd 6

内置的移动命令允许您以多种方式移动,但一次只能移动一次(例如,向上一行、向左一个单词、向下一页等)。

正如本在他的回答中提到的,解决这个问题的一种方法是创建宏来进行您想要的动作,绑定按键来运行宏,然后就可以开始了。

另一种选择是使用一个简单的插件,如下所示(最初来自此论坛帖子),您可以通过从菜单中选择来使用Tools > Developer > New Plugin...该插件,用此代码替换存根代码,然后保存在默认位置,如下所示move_amount.py

import sublime
import sublime_plugin

class MoveAmountCommand(sublime_plugin.TextCommand):
    def run(self, edit, amount=1, **kwargs):
        for _ in range(amount):
            self.view.run_command("move", args=kwargs)
Run Code Online (Sandbox Code Playgroud)

这将创建一个名为move_amount包装内部move命令的命令,并提供额外的参数amount来指示执行移动操作的次数。如果您需要制作一些这样的绑定,这会很方便,因为它减少了您必须制作的宏的数量,并且更容易自定义它们。

完成后,您可以使用以下键绑定,根据需要修改金额:

{
    "keys": ["ctrl+up"], "command": "move_amount",
    "args": {"by": "lines", "amount": 5, "forward": false}
},
{
    "keys": ["ctrl+down"], "command": "move_amount",
    "args": {"by": "lines", "amount": 5, "forward": true}
},
Run Code Online (Sandbox Code Playgroud)

请注意,这些键已经绑定到命令scroll_lines,该命令滚动视口但不保留插入符号,因此如果您也使用该功能,您可能需要选择不同的绑定。