web-dev-qa-db-ja.com

崇高なテキスト-行と列に移動

現在、Go to lineショートカット(windows/linuxのCtrl + G)では、特定の行への移動のみが許可されています。

オプションで、カンマの後に列番号を指定できるようにすると便利です。

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

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

34
Leo Gallucci

アップデート3

これは Sublime Text 3の一部 ビルド番号3080以降です:

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

たとえば、:30:11を使用して、30行11列目に移動できます。

Update 1-期限切れ

あなたはこれをsublime-text-3としてタグ付けし、2を使用していることに気付きました。

Update 2-古い

  • GotoRowCol.pyにいくつかの健全性チェックといくつかの変更を追加しました
  • Githubリポジトリを作成 sublimetext2-GotoRowCol
  • 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\ディレクトリにあるはずです。 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を押します。

私はこれが複雑な操作であることを知っていますが、それは私が今持っているものであり、私のために働いています。

53
Bill Stidham