sublime text中文件总行数默认不显示,需右键状态栏勾选“show line count”(st4+)或用控制台执行view.rowcol(view.size())[0] + 1;选中代码时状态栏实时显示行数,基于\n统计,含空行和注释。

Sublime Text 怎么看当前文件总行数
打开文件后,状态栏(窗口最底部)右下角会直接显示类似 127:5 的信息,其中 127 就是当前光标所在行号,而整个文件的总行数需要手动触发查看——它默认不主动显示总行数,但有快捷方式。
按 Ctrl+Shift+P(Windows/Linux)或 Cmd+Shift+P(macOS)调出命令面板,输入 Tools: Show Scope Name 并回车,不会生效;真正有效的是:View: Toggle Status Bar 确保状态栏开启,然后用以下方法之一:
- 右键状态栏空白处 → 勾选
Show Line Count(Sublime Text 4 build 4143+ 原生支持) - 旧版本(如 ST3)没有该选项,需安装插件
LineCounter或用 Python 控制台执行:view.rowcol(view.size())[0] + 1
Sublime 如何统计选中代码的行数
只要文本被选中(哪怕跨多段、含空行),状态栏就会实时显示类似 37 selections, 12 lines 的提示——前提是开启了状态栏且选区非空。如果没显示,检查是否误触了“列选择模式”(Alt+鼠标拖拽):列选时 Sublime 不计算逻辑行数,只报“columns”。
常见误区:
- 用
Ctrl+A全选后状态栏只显示1 selection,但行数仍会正确计为总行数 - 正则替换后选区消失,行数提示同步消失,需重新选中
- 折叠代码块(
Ctrl+Shift+[)不影响行数统计,统计的是实际文本行,不是展开后的可视行
用控制台命令精确获取行数(含空行和注释)
Sublime 的行数统计始终基于换行符 \n,不跳过空行或注释,这点和 wc -l 一致。想确认具体值,可打开 Python 控制台(Ctrl+`),运行:
view.rowcol(view.size())[0] + 1
返回的是总行数;若要统计选中区域:
len(view.substr(view.sel()[0]).split('\n')) if view.sel() else 0
注意:view.sel() 返回多个 Region 对象,上面代码只取第一个选区;多选区需遍历 view.sel() 并累加。
为什么有时行数显示异常?几个关键干扰点
行数不准通常不是 Bug,而是编辑器对“行”的定义与你预期不同:
- 文件末尾无换行符时,最后一行仍被计入(符合 POSIX 标准),但某些工具(如 Git diff)可能不计,造成差异
- 使用 DOS 行尾(
\r\n)和 Unix 行尾(\n)混存时,Sublime 统一按\n切分,不会多算 - 启用了
trim_trailing_white_space_on_save且保存后自动删空行,会导致下次打开行数减少 - 通过
File → Revert File恢复未保存修改时,行数会回退到磁盘状态,而非撤销栈状态
真正容易被忽略的是:Sublime 的“行数”永远以当前视图的编码解析为准。如果文件是 GBK 编码但被错误识别为 UTF-8,可能导致换行符解析错位——此时先用 File → Reopen with Encoding → GBK 重载,再看行数。










