Sublimetext3 崇高3;行终止中同时存在CR和LF时如何准确计数字符

Sublimetext3 崇高3;行终止中同时存在CR和LF时如何准确计数字符,sublimetext3,sublimetext,Sublimetext3,Sublimetext,编辑文本文件时,升华3中的默认字符计数功能将换行作为一个字符计数,而不管换行是以LF还是CR,LF结尾。我找不到一个设置来为具有CR、LF行结尾的文本文件提供正确的计数 我尝试过安装WordCount软件包,但它也有同样的问题。设置首选项 char_ignore_whitespace : true 不会改变行为 有人可能会说升华的行为是不正确的,因为(对于我正在处理的文件)换行符由两个字符组成,而不是一个 我希望在字符计数中包含CR(即换行符为2个字符)的原因是,我可以使用Sublime来帮助

编辑文本文件时,升华3中的默认字符计数功能将换行作为一个字符计数,而不管换行是以LF还是CR,LF结尾。我找不到一个设置来为具有CR、LF行结尾的文本文件提供正确的计数

我尝试过安装WordCount软件包,但它也有同样的问题。设置首选项

char_ignore_whitespace : true
不会改变行为

有人可能会说升华的行为是不正确的,因为(对于我正在处理的文件)换行符由两个字符组成,而不是一个

我希望在字符计数中包含CR(即换行符为2个字符)的原因是,我可以使用Sublime来帮助调试某些使用ftell/fseek的代码。目前,我必须不断地将行计数添加到字符计数中,以获得文件中正确的字节位置(当选择从文件开头到关注点的所有文本时)

有没有我错过的场景?是否有不同的包装可以使用

编辑:我注意到Notepad++正确地报告了此类文件的字符数,但我更喜欢使用升华:)


EDIT2:我在这里发现了一些代码(),这些代码可以在Sublime 3中使用,但也不正确地计算两个字符的换行符。

我修改了上面链接中的代码,以粗略地补偿缺少的行尾计数。下面的代码只是将行数(从零开始)添加到字符位置,并将其显示为替代位置(在unix样式文件打开的情况下,不需要补偿)

这无疑是粗糙的,而且不够智能,无法确定文件结尾的行的类型。也许其他人有更好的主意

import sublime, sublime_plugin

class PositionListener(sublime_plugin.EventListener):
  def on_selection_modified(self,view):
    text = "Position: "
    sels = view.sel()
    for s in sels:
        if s.empty():
            row, col = view.rowcol(s.begin())
            text += str(s.begin())
            text += " [" + str(s.begin() + row) + "]"
        else:
            text += str(s.begin()) + "-" + str(s.end())
            row, col = view.rowcol(s.begin())
            text += " [" + str(s.begin() + row) + "-"
            row, col = view.rowcol(s.end())
            text += str(s.end() + row) + "]"
    view.set_status('exact_pos', text)