41

現在、行に移動するショートカット (Windows/Linux では CTRL+G) では、特定の行に移動することしかできません。

オプションで、コンマの後に列番号を指定できるようにするとよいでしょう。

:30,11行 30、列 11 に移動します

これを実現するためのプラグインまたはカスタム スクリプトはありますか?

4

1 に答える 1

64

アップデート 3

これは、ビルド番号 3080 以降の Sublime Text 3 の一部になりました。

Goto Anything は :line に加えて :line:col 構文をサポートします

たとえば、:30:11行 30、列 11 に移動するために使用できます。

更新 1 - 時代遅れ

あなたがこれを としてタグ付けしていてsublime-text-3、私は 2 を使用していることに気付きました。うまくいくかもしれませんが、3 ではテストしていません。

更新 2 - 時代遅れ

編集 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\「名前を付けて保存」ダイアログが開くと、ディレクトリにあるはずです。1 つ上のレベルに移動してフォルダーを作成しSublime Text 2\Packages\GotoRowCol\、ファイルを という名前で保存しますGotoRowCol.py

同じディレクトリに新しいファイルを作成し、崇高なテキストSublime Text 2\Packages\GotoRowCol\GotoRowCol.sublime-commandsで開きます。GotoRowCol.sublime-commandsこれをファイルに貼り付けます。

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

ファイルを保存します。これにより、崇高なテキスト システムに GotoRowCol プラグインが登録されます。それを使用するには、ctrl+ shift+pを押してから GotoRowCol と入力して を押しENTERます。崇高なテキストウィンドウの下部にプロンプ​​トが表示され、2 つの数値が事前入力されています。最初の数値は移動する行、2 番目の数値は列です。必要な値を入力し、 を押しますENTER

これが複雑な操作であることは承知していますが、それは私が現在持っているものであり、私のために働いています.

于 2014-01-22T16:26:52.667 に答える