目前,转到行快捷方式(在 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 - 过时
编辑 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/