gedit增加个外部工具,转换文本为windows格式。
大家应该知道,换行符在每个操作系统中是不一样的,比如windows是0x0d,0x0a,linux是0x0a,mac是0x0d。
这样就导致各操作系统间的文本交流出现了一点不大不小的问题,虽然windows和linux下的大部分编辑器都会知道识别这个差异,并进行相应的转换,但是像windows中的记事本这类老古董就不会了。。。。而且据说windows中用记事本的不在少数。。。所以,在linux下创建的文本文件,到了windows中用记事本一打开,就会发现所有的换行符都变成了黑方块
不过既然知道了原理,解决起来当然是相当地方便:gedit(我的版本是 2.18.1)已经可以支持自定义的外部工具了,还可以给每个外部工具定义一个快捷键,可谓相当方便。于是就在工具-外部工具里面新建一条:名字自己取,命令如下:
代码: |
#!/bin/sh tr “\n” “\r” | sed ‘s/\r/\r\n/g’ |
输入选择当前文档,输出选择替换当前文档。
不过我这个版本的gedit似乎有个小bug,就是选择了输出之后不会自动保存,想了个另外的办法:在~/.gnome2/gedit/tools目录下新建一个文件(文件名随便,不过记得加可执行权限 chmod +x 文件名)内容如下:
引用: |
#!/bin/sh# [Gedit Tool] # Comment=转换为windows格式 # Name=转换为windows格式 # Shortcut=F10 # Applicability=all # Output=replace-document # Input=document tr “\n” “\r” | sed ‘s/\r/\r\n/g’ |
这个和上面说的方法其实是一样的,只不过可以避免gedit的bug。完成了以后gedit的工具菜单里面就会多出一项。然后linux下编辑好文本以后再执行一下,再保存,windows的朋友就可以轻松打开你的文件了。
本例其实很简单,主要是研究下gedit的自定义外部工具功能。