Python 但范围的第一部分保持不变

Python 但范围的第一部分保持不变,python,macos,sublimetext3,Python,Macos,Sublimetext3,因此,除非您只想在really、really特定位置触发代码段(例如,“仅在C#class方法中作为函数参数的数值常量前面),否则通常只需要作用域的第一部分,即source.js或text.html 我还想知道view.sel()[0].b是什么意思 在Sublime中,每个选项卡都由一个视图对象表示,该对象是与该特定文件的Sublime进行所有交互的对象。例如,需要在特定视图上执行编辑命令,以便Sublime知道您正在编辑的文件 在每个视图中都有一个或多个用于编辑的光标,其中每个光标代表一个选

因此,除非您只想在really、really特定位置触发代码段(例如,“仅在C#class方法中作为函数参数的数值常量前面),否则通常只需要作用域的第一部分,即
source.js
text.html

我还想知道view.sel()[0].b是什么意思

在Sublime中,每个选项卡都由一个
视图
对象表示,该对象是与该特定文件的Sublime进行所有交互的对象。例如,需要在特定视图上执行编辑命令,以便Sublime知道您正在编辑的文件

在每个视图中都有一个或多个用于编辑的光标,其中每个光标代表一个选定区域。即使明显没有选择文本,这种情况下选择的长度为0,也是如此

调用
view.sel()
会返回该视图中存在的所有选择的列表,下标
[0]
表示“第一个选择”。因此
view.sel()[0]
表示“在该视图中给我一个对第一个选择(光标)的引用”

每个选择都由一个
区域
对象表示,该对象包含两个点,
a
b
a
是选择开始的点,
b
是选择结束的点。如果选择是空的(即只有一个闪烁的光标),
a
b
是相同的值

b
可能小于
a
,这意味着您从右到左而不是从左到右选择了文本。实际上,
b
告诉您光标当前所在的选择点

因此,
view.sel()[0].b
的意思是“获取此视图中第一个选择的引用,然后告诉我该选择中的光标所在的点”

scope_name方法的arg点的含义是什么?(Offcail API参考说明scope_name(point)表示在给定点分配给字符的语法作用域名称。)

从上面可以看出,
Point
表示文档中的单个位置。文件中的第一个字符位于点0,文件中的最后一个字符位于点
view.size()
(一种告诉您当前文件中字符数的方法)


由于文件中每个字符的作用域都可能不同,因此方法
scope\u name
需要知道文件的哪个部分需要知道作用域,因此它要求您告诉它您要询问的位置。

您看到了ST2的命令,但您正在处理ST3,可能这就是原因。我不这么认为,因为所有api都可以在SUBLIME TEXT 3文档参考
view.sel()中找到[0].b
是文档中第一个插入符号的位置。@r-stein好的,你能详细说明文档中第一个插入符号的位置吗?。我已经做了基准测试,当模糊ST窗口并聚焦ST控制台时,这是光标的最后一次位置。@PageYe抱歉,我不明白什么可能不清楚。你知道什么是插入符号吗(又名“文本光标”)是吗?您看到了ST2的命令,但您正在处理ST3,这可能就是原因。我不这么认为,因为所有api都可以在SUBLIME text 3文档参考
view.sel()[0]中找到.b
是文档中第一个插入符号的位置。@r-stein好的,你能详细说明文档中第一个插入符号的位置吗?。我已经做了基准测试,当模糊ST窗口并聚焦ST控制台时,这是光标的最后一次位置。@PageYe抱歉,我不明白什么可能不清楚。你知道什么是插入符号吗(也称为“文本光标”)是?当我在ST控制台中测试以下内容时,它会产生不同的值,为什么?`>>>view.sel()>>>>>view.sel()>>>view.sel()`每次调用时,它都会创建一个新对象,当您完成它时,它会被销毁(垃圾收集)。但对象表示的数据保持不变,前提是实际选择没有改变。当我在ST console中测试以下内容时,会得到不同的值,为什么?`>>>view.sel()>>>>>view.sel()>>>view.sel()`每次调用时,它都会创建一个新对象,当您使用它时,它会被销毁(垃圾收集)。不过,假设实际选择没有改变,对象表示的数据保持不变。