gpt4 book ai didi

sublimetext3 - Sublime 3;行终止中同时包含CR和LF时如何准确计算字符

转载 作者:行者123 更新时间:2023-12-03 13:36:03 26 4
gpt4 key购买 nike

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

我已经尝试安装WordCount程序包,但存在相同的问题。设定偏好

char_ignore_whitespace : true

不会改变行为。

有人可能会争辩说Sublime的行为是不正确的,因为(对于我正在处理的文件)换行符是两个字符,而不是一个字符。

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

有我缺少的设置吗?是否可以使用其他包装?

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

EDIT2:我在这里找到了一些代码( Is it possible to show the exact position in Sublime Text 2?),可在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)

关于sublimetext3 - Sublime 3;行终止中同时包含CR和LF时如何准确计算字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30812278/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com