转自:http://www.cublog.cn/u2/66842/showart_2200936.html
使用gEdit搭配terminal来写程序也有一段时间了,但一直当它是windows下的notepad,没有好好熟悉下它,今天无意中发现原来gEdit也可以打造一个不错的编程环境。这里对相关的资料收集总结了一下,与大家共享。
gEdit是GNOME桌面环境中默认的文本编辑器,它简单易用,对中文支持良好,支持多种字符编码,同时具有开放的插件支持特性。通过安装插件,作一些简单的设置,gEdit就可以做为一个简洁的编程环境。在我的ubuntu 8.04下,默认情况只安装了gedit包,还有以下几个插件:
代码:
Change case: Changes the case of selected text.
Document Statistics: Analyses the current document and reports the number of words, lines, characters and non-space characters in it.
External tools: Execute external commands and shell scripts. (More)
File Browser: A file browser plugin allowing to easily access your filesystem (includes remote mounts, creating new files/dirs, monitor dirs for changes, etc) (More)
Indent: Indents or un-indents selected lines.
Modelines: Emacs, Kate and Vim-style modelines support for gedit.
Python console: Interactive python console standing in the bottom panel.
Snippets: Insert often used pieces of text in a fast way. (More)
Sort: Sorts a document or selected text.
Spell: Checks the spelling of the current document.
Tag list: Provides a method to easily insert into a document commonly used tags/strings without having to type them.
Insert Date/Time: Inserts current date and time at the cursor position.
Document Statistics: Analyses the current document and reports the number of words, lines, characters and non-space characters in it.
External tools: Execute external commands and shell scripts. (More)
File Browser: A file browser plugin allowing to easily access your filesystem (includes remote mounts, creating new files/dirs, monitor dirs for changes, etc) (More)
Indent: Indents or un-indents selected lines.
Modelines: Emacs, Kate and Vim-style modelines support for gedit.
Python console: Interactive python console standing in the bottom panel.
Snippets: Insert often used pieces of text in a fast way. (More)
Sort: Sorts a document or selected text.
Spell: Checks the spelling of the current document.
Tag list: Provides a method to easily insert into a document commonly used tags/strings without having to type them.
Insert Date/Time: Inserts current date and time at the cursor position.
就编程而言,我觉得比较有用的有External tools(外部工具),通过它在菜单上集成shell命令来编译运行程序(由于不是交互性的shell,所以不便用于debug);File Browser(文件浏览器),提供一个多文件(工程)的视图,还有可以编辑远程文件,虽然后者我很少用到;Snippets(片断),提供一种代码模板以快速输入,如我在snippets->C++下定义了如下for循环:
代码:
for( $1 ; $2 ; ${3:++ix} )
{
$4
}
$0
{
$4
}
$0
并且其Tab触发器设置为forlp+tab(表示输入forlp,然后按下tab键)。之后在代码中每当我要输入for循环,在C++的源文件中,只需输入forlp,然后按下tab键,forlp+tab就会自动扩展成上面的for循环,光标会处于$1处,此时可以直接输入for的初始条件,然后按一下tab,光标会跳到$2处,再按tab,跳到$3处,如此类推。$3处设置了默认值++ix,如果直接按tab跳过,就为默认值++ix,如果输入ix++之后再按tab跳到$4,默认值就会被ix++覆盖。$0为此模块最后跳转到的位置。
此外Tag list对编写网页等多tag源文件比较有用,Indent方便我们对代码进行缩进与取消缩进。默认安装好系统后,gedit能通过后缀正确识别到不同语言的源代码,其语法高亮也做得比较好。但是要作为一个编程环境还有很多不方便的地方,此时就要安装另外一些插件来完善其功能了,首先我们安装软件源中gedit的plugin集,terminal下输入:
代码:
sudo apt-get install gedit-plugins
安装gedit-plugins。其中包括
代码:
* Smart Spaces: Forget you're not using tabulations. <=== 智能空格
* Embedded Terminal: Embed a terminal in the bottom pane. <=== 内嵌的terminal,应该是最有用的一个插件了,有了它,我们就可以不用上面External tools来编译调试程序啦,而且也不用心烦在gedit与terminal之间来回切换了,不足之处是貌似只能有一个terminal,有时不够方便。
* Show/Hide Tabbar: Add a menu entry to show/hide the tabbar. <=== 显示/隐藏标签栏
* Join/Split Lines: Join several lines or split long ones <=== 合并/分割行
* Color Picker: Pick a color from a dialog and insert its hexadecimal representation. <=== 拾色器
* Draw Spaces: Draw Spaces and Tabs <=== 特别显示空格与制表符
* Session Saver: Save and restore your working sessions <=== 会话保存 不过貌似不怎么管用哦,>3<
* Code comment: Comment out or uncomment a selected block of code. <=== 注释代码,这下要注释大片代码就方便了
* Bracket Completion: Automatically adds closing brackets. <=== 自动的括号补全
* Character Map: Insert special characters just by clicking on them. <=== 对特殊字符集映射,暂时对我而言没什么用
* Embedded Terminal: Embed a terminal in the bottom pane. <=== 内嵌的terminal,应该是最有用的一个插件了,有了它,我们就可以不用上面External tools来编译调试程序啦,而且也不用心烦在gedit与terminal之间来回切换了,不足之处是貌似只能有一个terminal,有时不够方便。
* Show/Hide Tabbar: Add a menu entry to show/hide the tabbar. <=== 显示/隐藏标签栏
* Join/Split Lines: Join several lines or split long ones <=== 合并/分割行
* Color Picker: Pick a color from a dialog and insert its hexadecimal representation. <=== 拾色器
* Draw Spaces: Draw Spaces and Tabs <=== 特别显示空格与制表符
* Session Saver: Save and restore your working sessions <=== 会话保存 不过貌似不怎么管用哦,>3<
* Code comment: Comment out or uncomment a selected block of code. <=== 注释代码,这下要注释大片代码就方便了
* Bracket Completion: Automatically adds closing brackets. <=== 自动的括号补全
* Character Map: Insert special characters just by clicking on them. <=== 对特殊字符集映射,暂时对我而言没什么用
安装好后将觉得有用的插件启用,不用的插件禁用掉。比起notepad已经好用了很多,但是还不够,要让gEdit变得更方便,登录gEdit的插件网站http://live.gnome.org/Gedit/Plugins ,选择你需要的插件啦。这里写下个人觉得写代码比较有用的几个插件,仅供参考:
1.Class Browser:显示代码中类,函数,宏等的大纲,类似于VC或eclipse的类视图,支持多种语言,但这个插件相对简单,另一个Symbol Browser貌似更强大,不过暂时我找不到下载。
2.单词自动补全,有多个word completion的小插件,功能大同小异,都支持自动补全前文或所有打开的文件标签中已经出现过的单词,类似于visual assist或eclipse的自动补全功能,不足在于暂时不支持根据不同语言提供不同的关键字自动补全
3.Full screen: 在打开文件的情况下将gEdit全屏,偶尔会用下。
4.Open terminal here: 在当前文件夹下打开新terminal,有了Embedded Terminal这个插件比较鸡肋了
5.session autosave: 记录上次退出gEdit时打开的文件,下次打开时重新打开这些文件,由于止面的Session Saver好像不能用,所以装了这个。打开多个相关文件时比较有用,退出后下次就不用一个个文件手动打开啦
6.Code Formatter:自动格式化
7.snap open: 输入文件名(支持正则表达式)查找并打开文件
8.vigedit: 支持vi快捷键
9.Tabs Extend: 扩展的标签功能支持
gEdit的插件多用python来写,我们可以根据自己的偏好来修改编写,gEdit的插件网站上也有很多的插件,可以根据自己的需要酌情安装。这些插件都放在~/.gnome2/gedit/plugins/目录下,如果没有此目录则创建一个,下载的插件可以直接放到此目录下。
很多人可能习惯去改变编辑器的配色(代码高亮,像定制vim或Emacs时常常做的那样),使经常面对着电脑写代码的眼睛没那么累,在gEdit的菜单 [编辑]->[首选项]->[字体和颜色] 中,只有4种配色可选,此外通过GUI并不能具体定制配色。要DIY配色的话,我们可以从网上下载载配置文件,添加配色,或自己重新写一个。下面提供两个配色文件下载网站:
1. http://github.com/mig/gedit-themes/tree/master
2. http://live.gnome.org/GtkSourceView/StyleSchemes
gEdit使用的是gtksourceview,我们将后缀为.xml的文件下载并放入
1. /usr/share/gtksourceview-2.0/styles <==== 所有用户均可用
or 2. ~/.gnome2/gedit/styles <==== 只有你自己可用
重启一次gedit,就可以在[编辑]->[首选项]->[字体和颜色]选择喜欢的配色,也可以修改配色文件来DIY自己的Style.再定义一种好看的字体,对行号,备份时间等简单设置一下,整个编辑环境就相当个性,舒服啦。
虽然比不上vim,emacs的灵活,也比不上IDE的强大,但Gedit也是不错的一种工具。即使搭配了众多的插件,gEdit还是相当轻量的编辑器,如你像我一样,用不习惯vim或Emacs,又不喜欢那些慢悠悠的IDE,那就试下系统默认安装的Gedit吧。附我的gEdit截图:
附件: