显示总行数状态栏 sublime text 3

Show total line count status bar sublime text 3

在 Sublime Text 3 的状态栏中是否有代码或插件可以显示当前行和列的总行数?

状态栏显示行数的代码很简单, 只得到行数

line_count = view.rowcol(view.size())[0] + 1

并写入状态栏

view.set_status("line_count", "#Lines: {0}".format(line_count))

如果你想打包成一个插件,你只需要将它写在一个函数中并在某些 EventListener 上调用它。 通过单击 Tools >> Developer >> New Plugin... 并粘贴来创建插件:

import time
import sublime
import sublime_plugin

last_change = time.time()
update_interval = 1.5  # s


class LineCountUpdateListener(sublime_plugin.EventListener):
    def update_line_count(self, view):
        line_count = view.rowcol(view.size())[0] + 1
        view.set_status("line_count", "#Lines: {0}".format(line_count))

    def on_modified(self, view):
        global last_change
        current_change = time.time()
        # check if we haven't embedded the change in the last update
        if current_change > last_change + update_interval:
            last_change = current_change
            sublime.set_timeout(lambda: self.update_line_count(view),
                                int(update_interval * 1000))

    on_new = update_line_count
    on_load = update_line_count

这实际上是在创建新视图、加载文件和修改视图内容时调用命令。出于性能原因,它有一些逻辑不在每次修改时调用它。

转到菜单 -> 查找 -> 在文件中查找。

然后 select 正则表达式。

使用此模式计算每行中包含白色 space 的行数-

^(.*)$

要计算不包括白色的行数spaces,使用pattern

^.*\S+.*$

您可以指定是否排除某些文件类型的目录,例如

c:\your_project_folder\,*.php,*.phtml,*.js,*.inc,*.html, -*/folder_to_exclude/*

注意 - 白色 space 以外的字符也会被计算在内,因为它们的开头和结尾也是白色 space。