Tim*_*Tim 3 python emacs coding-style
我想知道在Python代码中每行包含79个字符是否可以在emacs中自动且智能地完成?通过智能,我的意思是它可以在适当的地方打破一长串代码.
如果不能自动完成,可以半自动地完成,或者比完全手动更方便(例如手动计算每行字符数)?
顺便说一句,我假设每行79个字符是一个很好的做法.如果我错了,请随时纠正我.
谢谢.
是的,这是一个很好的做法,那里有很多解决方案,但它们不是"自动的",大多数依靠只是在你超过限制时向你显示,而不是为你做出改变.
一个"自动"解决方案是内置的auto-fill-mode.
进一步的想法/讨论:
阅读Emacs Wiki上的这篇文章:EightyColumnRule
它提供了几种非自动方式来帮助您保持线条少于80个字符.
whitespace-mode 内置于emacs可以突出显示长度超过一定长度的所有行.
column-marker 可用于在特定列的缓冲区中绘制一条线.
column-enforce-mode(我是这个的作者)可以工作,whitespace-mode除了它只会突出显示一行超过80列的文本,而不是整行.
关于这个主题的讨论有很多,需要找到更多的解决方案:
http://emacsredux.com/blog/2013/05/31/highlight-lines-that-exceed-a-certain-length-limit/
这是我在init中的自定义解决方案,它设置当前缓冲区的边距,使缓冲区中的可编辑空间只有80列宽.也就是说,当你的文字进入下一行时,你已经超过限制.
(defun toggle-80-editting-columns-balanced (&optional columns)
"Set both window margins so the edittable space is only 80 columns."
(interactive "p")
(let ((margins (window-margins)))
(if (or (car margins) (cdr margins))
(set-window-margins nil 0 0)
(let* ((change (max (- (window-width) (or columns 80)) 0))
(left (/ change 2))
(right (- change left)))
(set-window-margins nil left right)))))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1519 次 |
| 最近记录: |