Texte Sublime-ligne et Colonne Goto

actuellement, le raccourci de Go to line (CTRL+G dans windows / linux) ne permet de naviguer que sur une ligne spécifique.

il serait bien de permettre en option que le numéro de colonne soit spécifié après la virgule, Par exemple

:30,11 pour passer à la ligne 30, colonne 11

Est-il un plugin ou un script personnalisé pour atteindre cette?

33
demandé sur Allen Bargi 2014-01-22 17:04:52

1 réponses

mise à Jour 3

C'est maintenant partie de Sublime Text 3 à partir de la version 3080:

Goto Anything supporte:line: col syntaxe en plus de: line

Par exemple, vous pouvez utiliser :30:11 pour passer à la ligne 30, colonne 11.

mise à Jour de 1 - obsolète

je viens de réaliser que vous avez étiqueté ceci comme sublime-text-3 et je suis en utilisant 2. Il peut travailler pour vous, mais je n'ai pas testé en 3.

mise à Jour 2 - obsolète

Edit 3: toutes les exigences du package_control repo ont été satisfaites. ce pack est maintenant disponible dans le dépôt de paquets dans l'application ( install -> GotoRowCol à installer ).

je voudrais aussi cette fonctionnalité. Il y a probablement une meilleure façon de distribuer cela, mais je n'ai pas vraiment investi beaucoup de temps en elle. J'ai lu quelques tutoriels de développement de plugin très rapidement, et j'ai utilisé un autre code de plugin pour corriger cette chose ensemble.

sélectionnez l'option de menu Tools -> New Plugin

un nouveau modèle d'exemple s'ouvrira. Coller ceci dans le modèle:

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 (->)

Enregistrer le fichier. Lorsque le dialogue" Enregistrer sous " s'ouvre, il doit être dans le Sublime Text 2\Packages\User\ répertoire. Naviguez jusqu'à un niveau, et de créer le dossier Sublime Text 2\Packages\GotoRowCol\ et sauvegardez le fichier avec le nom GotoRowCol.py.

Créer un nouveau fichier dans le même répertoire Sublime Text 2\Packages\GotoRowCol\GotoRowCol.sublime-commands et ouvrir GotoRowCol.sublime-commands en texte sublime. Les coller dans le fichier:

[
    {
        "caption": "GotoRowCol",
        "command": "prompt_goto_row_col"
    }
]

Enregistrer le fichier. Cela devrait enregistrer le plugin GotoRowCol dans le système de texte sublime. Pour l'utiliser, frapper ctrl+ shift+ p puis tapez GotoRowCol et frappez ENTER. Une invite s'affichera au bas de la sublime texte de la fenêtre avec deux numéros préenregistrés, la première est la ligne que vous souhaitez aller, le second est la colonne. Entrez les valeurs que vous désirez, puis frappez ENTER.

je sais que c'est une opération complexe, mais c'est ce que j'ai en ce moment et il est travaillé pour moi.

50
répondu Bill Stidham 2016-10-04 04:29:50