sublimetext - Sublime Text - 转到行和列

标签 sublimetext sublimetext3 sublime-text-plugin

目前,转到行快捷方式(在 windows/linux 中为 CTRL+G)仅允许导航到特定行。

可选地允许在逗号后指定列号会很好,例如
:30,11转到第 30 行,第 11 列

是否有任何插件或自定义脚本来实现这一点?

最佳答案

更新 3

现在是 part of Sublime Text 3从版本号 3080 开始:

Goto Anything supports :line:col syntax in addition to :line



例如,您可以使用 :30:11转到第 30 行,第 11 列。

更新 1 - 过时

我刚刚意识到您已将此标记为 sublime-text-3我正在使用 2。它可能对你有用,但我还没有在 3 中测试过。

更新 2 - 过时
  • 为 GotoRowCol.py 添加了一些完整性检查和一些修改
  • 创建 github 仓库 sublimetext2-GotoRowCol
  • fork 并提交拉取请求以提交添加到 package_control_channel

  • 编辑 3:已满足 package_control 存储库的所有要求。这个包现在在应用程序的包存储库中可用( install -> GotoRowCol to install )。

    我也想要这个功能。可能有更好的方法来分发它,但我并没有真正投入大量时间。我非常快速地阅读了一些插件开发教程,并使用了一些其他插件代码来修补这个东西。

    选择菜单选项 Tools -> New Plugin
    将打开一个新的示例模板。将其粘贴到模板中:
    import sublime, sublime_plugin
    
    
    class PromptGotoRowColCommand(sublime_plugin.WindowCommand):
            def run(self, automatic = True):
                    self.window.show_input_panel(
                            'Enter a row and a column',
                            '1 1',
                            self.gotoRowCol,
                            None,
                            None
                    )
                    pass
    
            def gotoRowCol(self, text):
                    try:
                            (row, col) = map(str, text.split(" "))
    
                            if self.window.active_view():
                                    self.window.active_view().run_command(
                                            "goto_row_col",
                                            {"row": row, "col": col}
                                    )
                    except ValueError:
                            pass
    
    
    class GotoRowColCommand(sublime_plugin.TextCommand):
            def run(self, edit, row, col):
                    print("INFO: Input: " + str({"row": row, "col": col}))
                    # rows and columns are zero based, so subtract 1
                    # convert text to int
                    (row, col) = (int(row) - 1, int(col) - 1)
                    if row > -1 and col > -1:
                            # col may be greater than the row length
                            col = min(col, len(self.view.substr(self.view.full_line(self.view.text_point(row, 0))))-1)
                            print("INFO: Calculated: " + str({"row": row, "col": col})) # r1.01 (->)
                            self.view.sel().clear()
                            self.view.sel().add(sublime.Region(self.view.text_point(row, col)))
                            self.view.show(self.view.text_point(row, col))
                    else:
                            print("ERROR: row or col are less than zero")               # r1.01 (->)
    

    保存文件。当“另存为”对话框打开时,它应该在 Sublime Text 2\Packages\User\ 中。目录。向上导航一级并创建文件夹 Sublime Text 2\Packages\GotoRowCol\并使用名称 GotoRowCol.py 保存文件.

    在同一目录中创建一个新文件 Sublime Text 2\Packages\GotoRowCol\GotoRowCol.sublime-commands并打开 GotoRowCol.sublime-commands在 Sublime Text 。将其粘贴到文件中:
    [
        {
            "caption": "GotoRowCol",
            "command": "prompt_goto_row_col"
        }
    ]
    

    保存文件。这应该在 sublime 文本系统中注册 GotoRowCol 插件。要使用它,请点击 ctrl + shift + p然后输入 GotoRowCol 并点击 ENTER .在 sublime 文本窗口的底部会出现一个提示,其中预填充了两个数字,第一个是您要转到的行,第二个是列。输入您想要的值,然后点击 ENTER .

    我知道这是一个复杂的操作,但这是我现在拥有的并且正在为我工​​作。

    关于sublimetext - Sublime Text - 转到行和列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21283763/

    相关文章:

    css - Sublime Text : Add css3 syntax highlighting

    python - 崇高文本 3 : Anaconda package error connection to localhost timed out

    python - 导入错误: No module named 'selenium' in Sublime text plugin

    python - Sublime Text 插件,从选择中获取行和列

    visual-studio-code - 在 VS 代码编辑器或 Sublime 编辑器中打开文件夹时,点和下划线显示文件名

    sublimetext - 创建快捷方式以便在 Sublime Text 中轻松打开相应的 hpp 或 cpp 文件?

    sublimetext3 - 带有 Sublime Text 编辑器的阿拉伯语

    python - 在 Sublime Text 中打开一个文件并等待它在 Python 脚本运行时关闭

    sublimetext2 - 如何编辑内置命令行为

    sublimetext3 - 没有这样的文件或目录 : 'jshint'