设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
注册
快捷导航
平台
Portal
论坛
BBS
文库
项目
群组
Group
我的博客
Space
搜索
搜索
热搜:
shell
linux
mysql
本版
用户
LinuxSir.cn,穿越时空的Linuxsir!
»
论坛
›
Linux 综合讨论区 —— LinuxSir.cn
›
shell进阶应用、shell编程
›
[教学][原创]使用 gedit 格式化文章
返回列表
查看:
900
|
回复:
2
[教学][原创]使用 gedit 格式化文章
[复制链接]
jsonic
jsonic
当前离线
积分
6
IP卡
狗仔卡
发表于 2008-5-9 12:02:53
|
显示全部楼层
|
阅读模式
在 windows 下,我们经常可以在各种文本编辑工具中将某些常用的命令保存起来,进行一系列的自动脚本,来帮助我们执行批处理命令,在linux 下,我们也可以使用某些工具来高效,轻松地来进行这些工作,本文以 gnome 下的自带图形文本编辑器 gedit来说明一个简单的例子。
OK,让我们开始:
1. 打开 gedit ,并找到菜单 “编辑” -> “首选项”,在 “插件” 选项,选择 “外部工具”(gedit默认没有加载此插件,我们需要手动加载它),这样,我们就可以在 gedit 中使用各种外部命令和 shell 脚本。
2.在“工具”菜单,我们可以看到“外部工具”,打开它,在此对话框我们可以进行各种脚本和工具的设定,当然 gedit已经为我们提供了几个诸如“构建”,“删除尾部空格”等小的脚本,我们也可通过 “新建”按钮自定义脚本,现在我们新建一个:点击“新建”,工具名和描述叫做 “格式化文本”,将鼠标键入“快捷键”框,并同时按下 “ALT+2”键,“输入” 选当前文档,“输出”选替换当前文档,“适用范围”选全部文档,因为我们需要的是将复制过来的文本进行一下格式的替换,例如段落间空行和每自然段前置两个全角空格之类的文章格式。
3. 现在我们开始编写处理命令,在“命令”中键入:
#!/bin/sh
sed 's/ //g;s/ //g;s/^ $//g;s/^/ /g';
我们来看一下这两行代码的含义和他们能完成的工作。
第一行:#!/bin/sh,这是一个脚本表示行,/bin/sh 向系统声明了这个脚步是一个shell脚本,当然 linux 系统中有很多类型的脚本,perl,c,php,python,但是我们现在只需要shell脚本。
第二行:sed 's///g;s/ //g;s/^ $//g;s/^/ /g';,这就看起来比较可怕了,不要怕,经过我的解释,你会对此一清二楚,首先 “sed”是一个shell命令,比方说ls,mkdir,copy等等都是,“sed” 的用途就是处理各种文本,拆分,拼合,查找,替换等待,具体可以google 一下 sed,我们现在用sed仅仅完成一个简单的任务:“替换”,sed的替换是这样的一种命令格式:
sed 's/替换前的内容/替换后的内容/g(g代表全文检索,不带g代表当前行检索)'
“;”分号代表了分割两个命令段,即“第一类替换;第二类替换;...”,够清楚了吗?好了,我们再回头看一下我们的代码,很简单,我们进行当前文档的全文替换,将“半角空格和全角空格”替换成“”,就是清除这两项,将文章头尾(“^”表示开头,“$”表示结尾)的全角空格全部去除,重新将每段落开头加上两个全角空格。
4. 我们完成了自己的“格式化文本”的脚本编写工作,现在来试试。随便复制一段文章到 gedit,按下“ALT+2”组合键,Oh!文章安装我们的既定格式重新排版了,看上去很整齐!
虽然这个小工具还很粗糙,还不能处理很多高级的替换命令,但这只是一个开头,聪明的你应该可以举一反三,自己定义更为强大的处理脚本了。
原文地址:
http://aolinux.simnovel.com/2008/05/gedit.html
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
显身卡
zhasm
zhasm
当前离线
积分
17
IP卡
狗仔卡
发表于 2008-5-9 13:19:47
|
显示全部楼层
不错. 有创意
回复
支持
反对
使用道具
举报
显身卡
tiansworld
tiansworld
当前离线
积分
308
IP卡
狗仔卡
发表于 2008-5-10 23:46:33
|
显示全部楼层
好东西,喜欢原创,喜欢类似如此的自己体会与总结
学到东西了
谢谢楼主
好东西
回复
支持
反对
使用道具
举报
显身卡
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
本版积分规则
发表回复
回帖后跳转到最后一页
浏览过的版块
Linux 程序设计专题讨论
硬件设备 Linux 驱动
Archlinux讨论区
Redhat/Fedora/CentOS Linux
Slackware Linux
BSD 讨论专题
Debian Linux
Java 程序设计开发讨论
LinuxSir 论坛管理
Copyright © 2002-2023
LinuxSir.cn
(http://www.linuxsir.cn/) 版权所有 All Rights Reserved.
Powered by
RedflagLinux!
技术支持:
中科红旗
|
京ICP备19024520号
快速回复
返回顶部
返回列表