【问题标题】:Show total line count status bar sublime text 3显示总行数状态栏 sublime text 3
【发布时间】:2016-10-02 09:29:10
【问题描述】:

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

【问题讨论】:

  • 如果您正在寻找插件,请使用 Package Control 的search function。要求我们推荐或查找书籍、工具、软件库、教程或其他非现场资源的问题对于 Stack Overflow 来说是题外话,因为它们往往会吸引固执己见的答案和垃圾邮件。取而代之的是describe the problem 以及迄今为止为解决该问题所做的工作。
  • 我已经看过插件,但我认为用户配置文件中的一些代码可能会这样做。

标签: sublimetext3 sublime-text-plugin


【解决方案1】:

在状态栏中显示行数的代码很简单, 只需获取行数

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

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

【讨论】:

    【解决方案2】:

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

    然后选择正则表达式。

    使用此模式计算行数,包括每行中的空格-

    ^(.*)$
    

    要计算不包括空格的行数,请使用模式

    ^.*\S+.*$
    

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多