首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

每行字符数(CPL)的起源

他想与我讨论一个问题: "各种计算机语言的编码风格,有的建议源码每行的字符数(characters per line)不超过72个,还有的建议不超过80个,这是为什么?区别在哪里?怎么来的?"...命令行状态下,终端窗口的显示宽度,默认是80个字符,这个我早就知道,但是并不清楚原因;至于72个字符,更是从未注意过。 幸好,世界上还有Wikipedia,我在里面找到了答案。 ?...打字机使用等宽字体(monospaced)的情况下,每英寸可以打12个字符,就相当于一行72个字符。 ? 早期,源码必须用打字机打出来阅读,所以有些语言就规定,每行不得超过72个字符。...当时,最流行的打孔卡是IBM公司生产的80栏打孔卡,每栏为一个字符,80栏就是80个字符。 ?...计算机读取打孔卡以后,把每个孔转换为相应的字符。如果显示器每行显示80个字符,就正好与打孔卡一一对应,终端窗口的每行字符数(CPL)就这样确定下来了。 (完)

1.2K60

LCD作为终端显示字符串的过程

如果每个字符的高度太小则看起来文字非常的小,在大屏上看起来十分不友好,所以这里选择40个高度的字体,而宽度不定是因为字符的宽度是不是确定的,每个字符有着自己的宽度比如L和l两个数字的宽度就不一样。...上述就是字符1在字符中的存放信息,每个字节按位展开,.表示0,@表示1。则右边的注释展示了该串字符的信息。如果我们将上述信息告诉给cpu,然后CPU处理这些信息放到LCD上显示则可以显示字符串1。...如果把上面的数组用程序解析交给LCD该如何设计。...一个标准字库是包含多个这样的字符串结构的,所以字符串需要一张表记录这些信息,根据asiic码表排序,字库的存放顺序也可如此,然后一个索引表记录着每个字符串的宽度,数组所在的起始地址信息,有了这些信息,就可以依次做解析然后转换成像素进行显示了...当绘制一帧画面完成后,再刷新到framebuffer中,这是因为framebuffer是非cache的,操作起来会影响刷屏的帧率,看起来帧率会很低。

1.2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    每天学点 Go 规范 - 代码不能写太宽,那么函数该怎么换行呢?

    上一篇文章:每天学点 Go 规范 - 函数传参时,struct 应该传值还是引用规范和原因公司的 Go 规范统一要求每一行 Go 代码不能超过 120 个可显示字符的宽度。为什么要限制呢?...诚然,我们的规范是要求出参不得超过 3 个,这往往会有两种情况:如果出参多达 3 个,那么这给出的几个参数都是非常简单和直观的类型(否则在 CR 终会被挑战),这种情况也占不了多少宽度,不用换行大部分情况是一到两个...,两个的情况下往往第二个类型就是 err error,占不了多少宽度,而第一个参数加上类型基本上不可能超过 80 个字符综上,出参都顺利放在同一行内,没有出现需要换行的情况。...笔者个人使用的基本上是流派 3,但是针对入参应该如何换行的问题,笔者秉承以下原则:如果所有入参拼在一起都没超过 80 个字符,那么各入参之间不换行。...import 行自动生成的代码参考资料函数签名的概念每行80个字符在今天(2020年)依然合理!Is this orm for go really a good idea?

    2.3K30

    python tkinter 设计指南

    如何打包 Python 文件至 Mac app pyinstaller -F demo.py 参数 含义 -F 指定打包后只生成一个exe格式的文件 -D –onedir 创建一个目录,包含exe文件...resizable(0,0)或者resizable(False,False)时不可更改 window.geometry() 设定主窗口的大小以及位置,当参数值为 None 时表示获取窗口的大小和位置信息...undo 该参数默认为 False,表示关闭 Text 控件的“撤销”功能,若为 True 则表示开启 wrap 该参数用来设置当一行文本的长度超过 width 选项设置的宽度时,是否自动换行,参数值...,比如当鼠标离开输入框的时候 控件的发生改变的时候触发事件,比如调整了控件的大小等 当控件的状态从“激活”变为“未激活”时触发事件 当控件被销毁的时候触发执行事件的函数 当窗口或组件的某部分不再被覆盖的时候触发事件...倍,垂直的绝对距离为80,并设置高度为窗体高度比例的0.5倍,宽度为80 Label4.place(relx=0.01,y=80,relheight=0.4,width=80) #开始事件循环 win

    6.9K30

    如何用 canvas 渲染 Web Excel 富文本

    这篇文章就来讲解如何在 canvas 中渲染和排版富文本。在介绍之前可以先点击下面链接,体验下最终的效果。...在 canvas 中如果想让文本自动换行,需要手动测量每一个字符的大小,如果累计的字符的宽度超过容器的宽度,则换一行继续渲染。...,如果超过 maxWidth 则换一行继续测量,这样就简单的实现了文本自动换行。...,按单词换行复杂多了,因为我们需要判断很多边界情况,例如要一个单词换行,但是当容器宽度小于一个单词长度时,又要强行中断,在或者容器宽度小于一个字符时,需要一个字符一行。...总结 这篇文章主要讲解了如何使用 canvas 来渲染富文本和富文本的自动换行,原理是使用 measureText API 来测量每个字符的宽高,并且判断当前字符是不是属于同一个单词,如果超过长度则进行换行

    1.3K20

    CKAD考试实操指南(二)--- 深入核心:探秘Kubernetes核心实操秘技

    命名空间名称必须符合 DNS 子域名的命名规则,只能包含小写字母、数字和短横线 -,且必须以字母或数字开头和结尾,长度不超过 63 个字符。...step, use a temp busybox image to wget its '/' 译:获取nginx pod在上一步中创建的ip,使用临时busybox镜像wget其'/'目录 注意:做此步骤时需要将之前产生的...#-- wget -O- x.x.x.x:80: 这是在 BusyBox 容器中执行的命令。...wget 命令用于获取指定 URL 的内容,这里获取的 URL 是 x.x.x.x:80,并使用 -O- 参数将获取的内容输出到标准输出。...由于这里使用了 -it 参数,这个选项会在终端会话结束后删除创建的 Pod。 # --restart=Never: 指定该 Pod 的重启策略为 "Never",即当容器退出时不会重新启动。

    55630

    代码美化的艺术

    在 Python编码风格指导(PEP8)规定了每行不超过 80 个字符。Prettier 默认也是 80 个字符。 赞成这条规范的人认为 80 个字符紧凑美观,在大屏显示器也可以分多栏显示。...首先这条规范是 Python 编码风格的建议,而 Python 的代码是以缩进代表代码块,类、函数等在定义时也没有大括号及小括号,算上括号前的空格,这就比一般的代码少几个字符。...另外,Angular 的代码风格建议不要为了精简变量命名而损失易读性,所以很多时候函数命名可能很长,再加上类型系统及链式调用等,单行代码很容易超过 80 个字符,这样就会造成过多的折行。...下面是一段使用 80 字符宽度格式化的 TS 代码: ? 我们再看一下扩大到 100 字符之后的效果: ?...目前常用的代码宽度有三种,分别是 80、100、120,很显然,80 太短,120 太长,以中庸之道,取 100 刚好。

    2K20

    代码美化的艺术

    在 Python编码风格指导(PEP8) 规定了每行不超过 80 个字符。Prettier 默认也是 80 个字符。 赞成这条规范的人认为 80 个字符紧凑美观,在大屏显示器也可以分多栏显示。...首先这条规范是 Python 编码风格的建议,而 Python 的代码是以缩进代表代码块,类、函数等在定义时也没有大括号及小括号,算上括号前的空格,这就比一般的代码少几个字符。...另外,Angular 的风格指南建议不要为了精简变量命名而损失易读性,所以很多时候函数命名可能很长,再加上类型系统及链式调用等,单行代码很容易超过 80 个字符,这样就会造成过多的折行。...下面是一段使用 80 字符宽度格式化的 TS 代码: 我们再看一下扩大到 100 字符之后的效果: 这段代码或许还不是最典型的例子,但是也能看出两者的不同,在实际的业务当中,类似的折行可能更多,而从我个人的角度来看...目前常用的代码宽度有三种,分别是 80、100、120,很显然,80 太短,120 太长,以中庸之道,取 100 刚好。

    2K20

    dotnet 读 WPF 源代码笔记 简单聊聊文本布局换行逻辑

    文本库排版的重点是在文本的分行逻辑,也就是换行逻辑,如何计算当前的文本字符串到达哪个字符就需要换到下一行的逻辑就是文本布局的重点模块。...,如果可以放下,那么就使用当行方式显示。...这是最为简单的,实现逻辑就是通过 Typeface 的 GlyphMetrics 的 AdvanceWidth 列表获取每个字符的排版宽度,将排版宽度乘以渲染字号即可获取每个字符占用的渲染布局宽度,将所有字符的占用布局框架之和...与可用行宽度进行比较,如果小于行宽度则进行单行布局 如果超过单行布局的能力,则进入 TextMetrics 的 FullTextLine 方法。...更多关于开发者使用文本排版,请看 WPF 简单聊聊如何使用 DrawGlyphRun 绘制文本 在拿到以上两个变量之后,即可进行计算每个字符的排版宽度,此计算方法将会让计算出来的值和实际渲染尺寸有一些误差

    62030

    Python 进阶指南(编程轻松进阶):三、使用 Black 工具来格式化代码

    因为制表符代表不同宽度的空白,你应该避免在你的源代码中使用它们。当你按下Tab键键而不是一个制表符时,大多数代码编辑器和 ide 会自动插入四或八个空格字符。...上,打开一个终端窗口,输入python3而不是python(本书中所有使用python的指令都应该这样做): Als-MacBook-Pro:~ al$ python3 -m pip install...在接下来的几十年里,打印机、显示器和命令行窗口都保留了 80 列的标准。 但在 21 世纪,高分辨率屏幕可以显示超过 80 个字符宽的文本。较长的行长度可以让您不必垂直滚动来查看文件。...较短的行长度可以防止过多的代码挤在一行上,并允许您并排比较两个源代码文件,而不必水平滚动。 Black 使用默认的每行 88 个字符,这是相当随意的,因为它比标准的 80 个字符多 10%。...我倾向于使用 120 个字符。例如,要告诉 Black 使用 120 个字符的行长度限制来格式化您的代码,请使用-l 120(这是小写字母L而不是数字 1)在命令行选项。

    2.1K90

    【linux】vim

    因为在 Vim 的默认配置中,箭头键与 hjkl 键的作用是等价的,但是在窗口切换快捷键中,你需要显式地使用 hjkl 键。...关闭分屏窗口 要关闭一个窗口,可以在该窗口下执行 :close 或使用快捷键 Ctrl+w c。...保存退出 06.vim配置 在 Vim 中配置格式化选项主要涉及使用 Vim 的设置选项,这些选项可以在 Vim 的配置文件 ~/.vimrc 中设置,以确保每次启动 Vim 时都会自动应用它们。...格式化时断行: set textwidth=80 如果一行的长度超过80个字符,Vim会在输入时自动换行。...对于 formatoptions: c 自动将注释的样式延续到新的一行。 r 在按下回车键时自动复制上一行的注释样式。 o 在新行使用 O 或 o 命令时自动复制注释。

    8810

    什么是零宽空格?

    "%E2%80%8B",让你的URL在请求时抛出404错误。...三种常见的零宽字符, (1)不换行空格,全称No-Break Space,它是最常见和我们使用最多的空格,大多数的人可能这个字符叫做Zero Width Space,中文可称为"零宽空白",这个字符在主流文本编辑器中均没有任何显示效果...,就像一只看不见、摸不着的幽灵。...在浏览者登录页面对内部文件进行浏览时,我们可以在文件的各处插入使用零宽度字符加密的浏览者信息,如果浏览者又恰好使用复制粘贴的方式在公共媒体上匿名分享了这个文件,我们就能通过嵌入在文件中的隐形水印轻松找到分享者了...使用谐音与拼音来逃脱敏感词过滤会让语言传递信息的效率降低,而使用零宽度字符可以在逃脱敏感词过滤的同时将词义原封不动地传达给接受者,大大提高信息传播者与接受者之间交流的效率。

    2.4K30

    HTML DOM的各种宽高、偏移位置的属性总结

    ,包括由于overflow溢出而在屏幕上不可见的内容,当元素其中内容没有超过其高度或者宽度的时候,该属性是取不到的。...当元素的 style.display 设置为 "none" 时,offsetParent 返回 null。...,不管浏览器窗口大小如何变化,都不会影响点击位置的坐标。...2.screenX和screenY 事件发生时鼠标相对于屏幕的坐标,以设备屏幕的左上角为原点,事件发生时鼠标点击的地方即为该点的screenX和screenY值,如下所示:可以看到尽管浏览器窗口被缩到很小...4.pageX和pageY 顾名思义,该属性是事件发生时鼠标点击位置相对于页面的位置,通常浏览器窗口没有出现滚动条时,该属性和event.clientX及event.clientY是等价的,但是当浏览器出现滚动条的时候

    1.6K30

    一开始看不上亲密接触后又让你欲罢不能的 vim

    cp /usr/share/vim/vim80/tutor/tutor.zh_cn.utf-8 ./ vim tutor.zh_cn.utf-8 但如果按照教程来练习,个人用起来感觉最舒服的方式是:同时打开两个终端...我们使用 vim 的绝大多数命令都在 Normal 模式运行,而 Cmdline(命令行)模式通常只在退出和保存时使用,因此,如不特别说明,当我们在说命令模式时,就是指代 Normal 模式。...h: 向左移动一个字符 l: 向右移动一个字符 j: 向下移动一行 k: 向上移动一行 ? 虽然可以使用 j, k 左右两边的 h 和 l 来实现向左和向右移动光标。...这在一次只移动一个字符时,也还是很方便。但是如果向左或向右移动一个字(word,英文中空格和标点符号隔开的单词,标点符号也算一个字)时,还使用 h 和 l 就显得有些笨拙了。...其他粒度的删除,也遵循相似的规律。 删除单个字符 删除单个字符有两者方法。两者等效,都是删除光标所在的字符,但是使用x更简单一些,因为只需要输入一个字母。

    75220

    Hexdump如何工作【Linux-Command line】

    可以使用GIMP或Mtpaint等图形应用程序来执行此操作,也可以使用ImageMagick在终端中创建它。...可以看到,在此图像文件的前8个字节内,特别是字符串PNG。 这很重要,因为它揭示了file命令如何知道要报告的文件类型。...在hexdump中,字符序列%_p告诉hexdump在系统的默认字符集中打印字符。...传统上,UNIX文本文件采用80个字符的输出宽度(因为很久以前,监视器往往只能容纳80个字符)。 尽管此输出不受格式限制,但可以通过附加选项强制hexdump一次处理80个字节。...具体来说,通过将80除以1,可以告诉hexdump将80字节视为一个单位: $ hexdump -e'80/1 "%_p"' /usr/share/doc/libblkid-devel/COPYING

    2.3K00

    Linux命令补充

    man windows中的ping命令只执行4次,Linux中的ping会一直执行 清屏命令:clear、ctrl+L netstat -natup [root@zgh1 /]# yum install...restart 服务名 wget wget是一个下载文件的工具 wget -O 使用wget -O下载并以不同的文件名保存(-O:下载文件到对应目录,并且修改文件名称) [root@zgh1 movie1...grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。 -c:只输出匹配行的计数。 -i:不区分大小写。...-h:查询多文件时不显示文件名。 -l:查询多文件时只输出包含匹配字符的文件名。 -n:显示匹配行及 行号。 -s:不显示不存在或无匹配文本的错误信息。 -v:显示不包含匹配文本的所有行。...$ grep ‘[a-z]\{5\}’ aa 显示所有包含每个字符串至少有5个连续小写字符的字符串的行。

    95620

    CKAD考试实操指南(七)---网络纵横谋略:服务和网络实战要诀

    在这种情况下,镜像名称是"nginx",这将使用官方的Nginx容器镜像。 # --restart=Never: 这部分命令指定了Pod的重启策略。"Never"表示当Pod终止时不会自动重启。...当有流量发送到Service的ClusterIP(或其他类型的服务IP)时,Service会查找Endpoints资源以确定哪些后端Pod应该接收流量,并将流量路由到这些Pod。...# wget -O- $IP:80 --timeout 2: 这是要在Pod中执行的命令。这个命令使用wget工具从指定的IP地址(可能是环境变量"IP"的值)的端口80下载内容,并在2秒内超时。...这个选择器告诉kubectl只返回具有标签"app=foo"的Pod。它用于过滤Pod,只返回符合该标签选择器条件的Pod。 # -o wide: 这是另一个选项,用于指定输出格式。"...当服务接收到流量时,它将流量路由到后端Pod的--target-port指定的端口。

    39931

    Extjs-lesson4

    ({ // 宽 width: 140, // 不允许文本框为空 allowBlank: false, // 文本框的最大长度为 20 个字符;超过 20 个字符仍然可以输入,但会有警告信息...当非空校验没有通过时的提示信息 blankText: "请输入用户名", // 当最大长度校验没有通过时的提示信息 maxLengthText: "用户名不能超过20个字符" }); //...password", fieldLabel: "密码", blankText: "请输入密码", maxLengthText: "密码不能超过20个字符" }); 2.Button 2.1...width: 80, //设置小数点后面的位数,当位数超过时系统会自动截断 decimalPrecision: 1, //设置数字文本框最小值 minValue: 0.01,...id 列的值;此属性必填 valueField: "id", //请设置为”all”,否则默认为”query”的情况下,你选择某个值后,再此下拉时,只出现匹配选项。

    4.8K10

    Python 代码风格

    2.7 行长度 Python代码风格最有争议(也是最常被拒绝使用的)的方面是对行长度的限制。PEP 8要求行长度不超过79个字符,文档字符串不超过72个字符。...该规则让很多开发人员感到沮丧,这些开发人员认为我们生活在一个27寸宽屏显示器的时代。GitHub是一个非常流行共享代码的网站,所使用的窗口宽度是120个字符。...而该规则的支持者指出很多人依然使用窄屏或80字符长度的终端,甚至仅仅是将代码窗口的宽度设置为小于屏幕宽度。 争论很难有一个结果。...总之,无论是遵循79字符宽度的标准或是更宽的标准,你应该按照项目标准的规范编码。当行长度过长时,你应该知道如何处理代码。...当需要决定如何解决问题时,请记住调试代码比写代码更有技术含量。 因此,以代码尽可能简洁和可读为目标。一年后的你将会感谢自己。当然,你的同事以及下属也会感谢你。

    1.2K90
    领券