关于文档编辑器几点总结

用过多种文档编辑器,总结几点感受,本来已经写了不少,结果浏览器崩溃,前面写的都丢了,再写就简单一点了。

1、不同编辑器异同取舍

a win和mac桌面环境用msoffice是最好的选择,wps感受也不错,功能齐全、高效稳定。

Linux桌面环境似乎只有wps好选,其他几种很难运行。

b ios手机用wps比较好,msoffice太慢太臃肿。真正在手机上完整保持格式查看并打印word等文档,一定要下这两个,其它预览一下还可以,编辑打印都难用。

c 云服务web环境编辑文档,据说google和ms的在线文档都不错,可惜一般人用不了,wps也有在线的,还有很多不知名的,大家都可以试试。

d 自己搭建局域网在线编辑器,强烈推荐onlyoffice,基本功能都有,文档协作非常好用。

以上除了msoffice桌面版外,全部都有免费版,而且足够你使用。

2、各种编辑器文件格式兼容,但不是同一个东西

在服务器上安装好用nextcloud集成的onlyoffice后,打开原来msoffice编辑的文档,竟然是只读查看模式,无法修改。怀疑是文档目录读写权限问题,排查后确认不是。再用另外一种在线编辑器打开,也是只读查看模式,但提示可导入该编辑器中。经过反复比较,认为是各种软件处理不是自己生成文档时的模式造成的不同打开效果。

a 各种软件是不同的,它们在编辑文档时的程序命令甚至生成的文档数据也是不同的,在自己的编辑环境中,看似生成的文档都是docx格式,实际是不完全相同的文件。

b 各种软件打开另外软件生成的文档时选择的方式是不一样的。msoffice和wps桌面版在打开文档时,常常直接将其转换成自己的格式并在自己的环境中编辑。还有一些编辑器则打开文档时直接是查看模式,然后提供转换选项,只有转换后才能编辑。

这个问题可以理解为各种软件在处理文档时与ms保持兼容的水平,有些可能是处理后的文件直接是高度兼容ms的,有的则是在文件输入输出时有很大的差异,但可以最终指明输出ms兼容文档,比如onlyoffice就是这样,它直接生成的文档是docx后缀,但是文件菜单里的选项是下载为×××格式,表明真正兼容ms的文档是要专门输出的。

总之,同一个文件用号称兼容的软件打开,呈现的结果可能是不同的,也就多了一个步骤。这也能说明,手机上打开一个文件,格式很可能和我们在桌面看到的不一样。

Docker输出镜像文件的一个错误

在执行 docker save -o ×××.tar 时出现写入空间不足的错误:

write .dockertemp048390495: no space left on device

在网上百度了一遍,发现出现空间不足的原因有很多,用系统命令查询后发现,不存在真实空间不足的问题,为了分析原因今天再进入系统测试了一遍,竟然没有再现错误,翻看前面执行过的命令,似乎是刚才的save命令是在根目录执行的,而以前是在当前用户目录下执行,切换到用户目录下执行save命令,问题重现。

通过实验得知,docker save命令是在当前目录下生成tar文件,如果当前目录有写入权限并没有空间限制,且确实磁盘有足够的空间,这个命令正确执行。我的问题是我的用户主目录空间没有定义好,以root身份cd到根目录后自然没有权限和空间限制。

由于docker是系统命令,实际可以先cd到想要存放文件的位置再执行命令,这样就不会出现各种不可预测的错误,还省去了命令后将文件移动到正确位置的操作。当然也可以直接在save命令中加上文件的绝对路径,如/aaa/bbb/ccc.tar,这样也会将生成的tar文件放入正确位置。

Vscodeserver如何配置Python环境

这几天用vscodeserver搭了一个远程编程环境,想用它来先写写Python,结果,因为配置不熟悉浪费了不少时间,更糟糕的是网上很多的文章都是误导。

首先,像大家认为的一样,vscode确实是简单有效,出厂做了很好的配置,安装过程很顺利。

其次,实际编程还是要简单设置一下,否则各种错误。

1、Code language not supported or defined

系统建好后,新建了一个文件,写了Python测试代码,点运行,结果显示Code language not supported or defined,网上各种解释都试了一遍无效。

后来没有办法,进入系统的帮助主页,里面有系统安装、如何开始的介绍视频,其实很简单,新建文件后修改文件名,一定要加上编程语言对应的后缀,其中python程序文件的后缀是.py,这样vscode就知道这是python,会自动调用系统可用的解释,我想其它语言应该一样处理。

2、ImportError: No module named XXX

系统可用后,运行程序显示没有相应的模块,真实的情况是存在两种可能,系统真的缺少模块或找不到模块路径。

进行系统后台,用pip install安装相应,运行后系统仍然显示上述错误,显然,系统不知道安装的模块在什么地方,需要配置环境路径,这个地方网络上很多方法不一定有效。我摸索出来的方法同样相当简单。

2.1 查询系统当前默认python解释器的情况

编写一个py程序,里面就一句,print(sys.path),然后运行,查看输出信息。或者直接在终端环境输入这条语句。

系统返回:

说明现在系统运行在Python2环境,而新版的vscode安装pip时实际将模块安装在Python3环境中。

2.2 修改配置文件

a 进入设置,选用户,然后找到扩展,选择Run Code Configuration

b 修改settins.json文件

点出打开settins.json文件,找到以下代码段:

"code-runner.executorMap": {

        "javascript": "node",
        "java": "cd $dir && javac $fileName && java $fileNameWithoutExt",
        "c": "cd $dir && gcc $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
        "cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
        "objective-c": "cd $dir && gcc -framework Cocoa $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
        "php": "php",
        "python": "python -u",
        "perl": "perl",
        "perl6": "perl6",
        "ruby": "ruby",

将其中的”python”: “python -u”,改成”python”: “python3 -u”,即可。关闭退出。重新运行程序,程序就可以Python3环境运行了。