深度编辑器会在打字间隙的时候自动保存文件
Tofloor
poster avatar
wangyong
deepin
2018-01-23 18:51
Author
我十多年前玩Emacs的时候,有次遇到写了一天的插件,突然断电的尴尬。随后给Emacs开发了自动保存文件插件(auto-save.el:https://www.jianshu.com/p/998ceaf522d1
在用户打字的时候不保存,但是只要用户的手指一停顿就会立即自动保存文件,这样既做到在最完美的保存时间把控,又不会频繁的的因为保存文件打扰用户。

今天写了个补丁,把Emacs auto-save.el的功能移植到深度编辑器中:https://github.com/manateelazyca ... 3b518839e6ef829b189

以后所有的深度用户再也不用手动保存文件了,再也不会有因为写了一天的文档而突然断电的那种想骂娘的感觉。

有的用户会问,如果遇到编辑系统文件没有权限怎么办?
那是我接下来会开发的功能,遇到有写权限限制的文件不会手动保存,而是用户手动按保存快捷键的时候提示用户输入管理员密码,然后进入自动保存的逻辑。

这么贴心的编辑器即将面世,就问你们怕不怕?哈哈哈

Reply Favorite View the author
All Replies
2 / 3
To page
avatar
h3l
deepin
2018-01-23 22:37
#21
坐等系统升级,~~~~(>_<)~~~~
Reply View the author
avatar
wangyong
deepin
2018-01-23 23:06
#22

这个需要Git版的dtkwidget才能编译通过
Reply View the author
avatar
wtz
deepin
2018-01-23 23:18
#23
固态硬盘表示心疼,
Reply View the author
avatar
cuixiaofei
deepin
2018-01-24 00:17
#24
https://bbs.deepin.org/post/152249
我曾经以为他们都是我的老乡,尽管现在也是(滑稽——

下面那句话最骚了,看来我也要跟随大家了,跟随论坛风格
Reply View the author
avatar
duanyao
deepin
2018-01-24 00:31
#25
1. 如果是自动覆盖原文件的自动保存,我是不敢用的,因为有时候我想彻底丢弃所有的修改,或者用另外的文件名保存。这只在文件处于版本管理系统中的情况下有些用处。
2. 似乎没有考虑新建的未命名文件的自动保存?
3. 建议自动保存与手动保存严格分开,前者总是保存到一个临时文件里,只有手动保存时才复制一次;自动保存不改变文件的“已修改”状态。这样上述2问题以及权限问题都可以完美解决。
Reply View the author
avatar
wangyong
deepin
2018-01-24 01:53
#26
https://bbs.deepin.org/post/152249
1. 如果是自动覆盖原文件的自动保存,我是不敢用的,因为有时候我想彻底丢弃所有的修改,或者用另外的文件 ...

1、这个选项可以关闭
2、未命名的文件必须保存到一个特定路径后才会进行自动保存
3、这种方式不会做,Emacs默认的保存插件就是这样的,神烦,一旦断电和系统崩溃了,要用户去找这些临时文件,而且临时文件还有版本的问题。

深度编辑器会直接自动覆盖文件的,如果不喜欢到时候会提供禁用的选项
Reply View the author
avatar
duanyao
deepin
2018-01-24 02:12
#27
本帖最后由 duanyao 于 2018-1-23 18:13 编辑
https://bbs.deepin.org/post/152249
1、这个选项可以关闭
2、未命名的文件必须保存到一个特定路径后才会进行自动保存
3、这种方式不会做,Ema ...

1. 嗯,必须的。
2. 可以自动给每个未命名的文件一个自动ID,用来和自动保存文件关联。
3. 那是 emacs 默认的保存插件没做好。必须把自动保存文件和实际文件一一关联起来,比如通过路径,这样崩溃之后可以自动还原。最简单的方式是只保留一个自动保存版本,且对用户不可见。
Reply View the author
avatar
zwq133
deepin
2018-01-24 02:34
#28
我是来玩签名的~~
Reply View the author
avatar
wangyong
deepin
2018-01-24 03:04
#29
https://bbs.deepin.org/post/152249
1. 嗯,必须的。
2. 可以自动给每个未命名的文件一个自动ID,用来和自动保存文件关联。
3. 那是 emacs 默 ...

未命名的文件名是由唯一的id,只是没有做自动保存

其实Emacs是由自动关联和恢复的,但是从交互上来说自动保存要比自动恢复的体验好很多,除非有些有洁癖的开发者不喜欢,比如你,哈哈哈
Reply View the author
avatar
rekols
deepin
2018-01-24 04:12
#30
deepin emacs feature...
Reply View the author
avatar
duanyao
deepin
2018-01-24 06:38
#31
https://bbs.deepin.org/post/152249
未命名的文件名是由唯一的id,只是没有做自动保存

其实Emacs是由自动关联和恢复的,但是从交互上来说自 ...

自动覆盖保存的主要问题是没有后悔药。比如我只是想读一下某个文件,但不小心碰到按键,就会被保存了。你可以说还有撤销啊,但如果没注意到这个修改呢?而且即使撤销了,修改时间也回不去。

从交互上来说,自动覆盖保存与没有自动保存的编辑器操作习惯有很大的不同,用户至少需要重新适应;自动恢复则没有不同,不需要适应。
Reply View the author
Comments
chaojun56
2018-02-05 07:40
有深度。
avatar
Ligocut光剪视频剪辑软件
deepin
Backbone of ecological co-construction group
2018-01-24 06:52
#32
会开发的人总是很顺手的就开发完一系列功能
Reply View the author
avatar
Ligocut光剪视频剪辑软件
deepin
Backbone of ecological co-construction group
2018-01-24 06:53
#33
不得不佩服王总
Reply View the author
avatar
wangyong
deepin
2018-01-24 07:31
#34
https://bbs.deepin.org/post/152249
自动覆盖保存的主要问题是没有后悔药。比如我只是想读一下某个文件,但不小心碰到按键,就会被保存了。你 ...

自动保存对普通用户更友好,因为普通用户就是编辑一下自己的txt文件。
自动保存确实对一部分开发者不喜欢,自己可以关掉。

但是我不会因为一部分开发者不喜欢这个功能,就抛弃了普通用户,普通用户总是喜欢自动保存的。
Reply View the author
avatar
wangyong
deepin
2018-01-24 07:33
#35
https://bbs.deepin.org/post/152249
自动覆盖保存的主要问题是没有后悔药。比如我只是想读一下某个文件,但不小心碰到按键,就会被保存了。你 ...

其实自动保存+永久版本记录是一个好搭档。

而且很多东西做出来让用户反馈吧,不用在开发期就枪毙了,用户的反馈统计是最好的参照物。
Reply View the author
avatar
duanyao
deepin
2018-01-24 07:41
#36
https://bbs.deepin.org/post/152249
自动保存对普通用户更友好,因为普通用户就是编辑一下自己的txt文件。
自动保存确实对一部分开发者不喜欢 ...

我说的跟开发者没关系吧。如果是源码反而没关系,反正都有版本管理,不怕失误,自动覆盖保存也行,Android Studio/IDEA 默认就是这样的。

自动恢复在手机软件上已经是惯例了。
Reply View the author
avatar
wangyong
deepin
2018-01-24 07:45
#37
https://bbs.deepin.org/post/152249
我说的跟开发者没关系吧。如果是源码反而没关系,反正都有版本管理,不怕失误,自动覆盖保存也行,Androi ...

其实有开发背景的人都会怕错改了(因为开发背景的人接触的都是各种精巧的配置文件)。
但是普罗大众面对的都是文档性质的文档,其实稍微碰了一下,都没有关系。

你先想一想哈,其实二十年前微软的首席设计师就想设计一个

自动保存+永久撤销树的编辑器(及时文件重新打开也可以一直撤销和反撤销)

微软的那位设计师还专门写了一本交互设计的书来阐述“当初让用户手动保存是多么不好的设计理念”。

你先想一想,如果我们俩始终争执不下,就等发布以后用的反馈吧,反正就是一个选项,不是默认打开就是默认关闭,我倒不是很担心的。 
Reply View the author
avatar
yxiao
deepin
2018-01-24 07:53
#38
https://bbs.deepin.org/post/152249
自动覆盖保存的主要问题是没有后悔药。比如我只是想读一下某个文件,但不小心碰到按键,就会被保存了。你 ...

有点道理.所以建议默认关闭这个功能...
Reply View the author
avatar
dzuiuabi
deepin
2018-01-24 07:56
#39
https://bbs.deepin.org/post/152249
下面那句话最骚了,看来我也要跟随大家了,跟随论坛风格

你不能随波逐流,你应该变变样子。
Reply View the author
avatar
duanyao
deepin
2018-01-24 08:02
#40
本帖最后由 duanyao 于 2018-1-24 00:23 编辑
https://bbs.deepin.org/post/152249
其实有开发背景的人都会怕错改了(因为开发背景的人接触的都是各种精巧的配置文件)。
但是普罗大众面对 ...

经常改配置文件又不用版本管理的的是运维吧,不过人家有另外的“版本管理”方法:定时备份、虚拟机快照等。当然同样重要的是改完了检查3遍。

版本管理对普通文件来说代价太大了,因为随着修改次数的增加存储空间也在线性增加。
而且如果没有一个在线存储服务器,版本管理的优势也是有限的。
所以折中一下,只自动保留最近一个版本+手动保存还是比较合适的。

至于撤销栈原则上是可以序列化到磁盘上的,有些软件也是这么做的,不过目的一般是节省内存,而不是让撤销栈在下次启动后还可用。

对了,还有个问题:在多系统环境下,如果自动覆盖保存,即使有撤销、恢复,也不见得能恢复到原始状态,因为 BOM、字符编码、行尾符号可能在保存时发生变化。
Reply View the author
2 / 3
To page