首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

程序员面向 Linux 的设置 优化机器来满足需要-2

程序员面向 Linux 的设置 优化机器来满足需要-2

Enlightenment 和 Eterm定制我最常用的窗口管理器是 Enlightenment。我喜欢它所以使用它。您可能不喜欢 Enlightenment(以下称为"E"),但不管怎样,您的窗口管理器也可能支持 E中我所喜欢的大多数特性。要复制 Eterm 的功能比较困难,尽管 aterm程序在目的和效果上与之类似。
E 和 Eterm都使用主题。主题是给人看的,在实际当中不派什么用场。我发现它们对于Eterm 很有用,但对于 E,我不会将主题用于编程支持。
我对 E 进行的最重要的一项修改就是更改了与 e16keyedit程序的缺省键绑定。我将 Alt-F1 到 Alt-F12 映射成桌面 1 到12,这样可以快速地在不同任务之间切换。我给某些桌面取了别名,添加了按键-- 例如,Alt-Shift-M 可以带我到邮件桌面。
另外,我还让 Ctrl-Alt-M 启动一个邮件窗口(实际上是 "emacs -namegnus -f gnus",因为我使用 Gnus 来阅读邮件)。以类似的方式,我让Alt-Shift-Letter 转到特定桌面,而 Ctrl-Alt-Letter启动该桌面上的一个程序。
E可以记住程序的位置和命令行调用。这意味着如果程序具有独特的名称,E可以在下次您登录的时候重新启动它,或者在下次您启动它的时候记住它的位置。名称是窗口的X 名,通常用 -name 参数指定给程序。
Eterm 使用主题来指定定制行为。可以尝试 Eterm所带的所有缺省主题(例如,"Eterm -t mutt" 用于面向 mutt的终端,或者 "Eterm -t trans",用于透明 Eterm)。 我发现透明Eterm,设置成粘在所有其它窗口下一层中,对于日常工作来说非常有用。因为它是粘着的,所以总是可用的,它从来不会遮蔽其它窗口,并可以提供良好的视觉效果,让您从黑白中解脱出来。
可以编写自己的 Eterm 主题。有关进一步信息,请查看 Eterm文档。
Emacs 定制Emacs 不仅仅是编辑器 -- 它还是完整的编辑环境、文件管理器、Lisp编译器和虚拟机等等。我喜欢 Emacs 是因为它所提供的编程支持。
清单 6 和 7 相当复杂。它们使用许多 Lisp代码,因此应该在尝试修改它们来使它们来适合您自己的需要之前对 Lisp有相当的了解。(有关 Lisp 的帮助,请参阅 。)      

有关 emacs.gnu.custom 文件中所有设置的帮助,请使用 Emacs帮助设施。在 Emacs 内部,按 C-hv,然后是希望检查的变量的名称。您甚至可以进一步从出现的窗口中定制变量的值。
.emacs 文件调用定制文件。.emacs 文件相当大而且复杂,它使用 Emacs中不包括的许多 Lisp 模块(可以在  中找到)。我已在“参考资料”中包括了绝大多数模块,但您必须在Web 上冲浪来获得较大的包,例如 eshell。      

我已尝试对 .emacs文件从头至尾加以注释。尝试理解每一行都是做什么的;如果需要帮助,请使用Emacs 帮助设施。C-h a 调用 apropos命令,它将基于关键字查找帮助。另外,有关使用 Emacs的详细信息和帮助,请参阅 。      
最重要的是,只选您需要的那些部分。如果不使用注脚或折叠方式,没有问题。可能您比较喜欢循环缓冲区和对齐,或者对emacs.gnu.custom 文件中的某些事物比较感兴趣。 部分将为您提供更进一步的指导。      
其它:各种设置文件我使用 vim,一种功能非常强大的 vi 克隆。这就是我的 vimrc 文件(有关vim 和 vimrc 文件的详细信息,请参阅 ):      

下面是用来启动新 Emacs窗口的脚本。它可能适合于其它用途,但我只需要它来向 Emacs 发送 USR1信号,或者如果新 Emacs 还未运行的话,启动一个新的 Emacs。您需要CPAN Proc:rocessTable 模块来使用该脚本。以 "./getem.pl emacs"调用它。
清单 9:getem.pl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/usr/bin/perl -w
use Proc:rocessTable;
use strict;
# get the process name
my $name = shift @ARGV or die "You must provide a process name";
# get the PID to process
my $pid = get_pid ($name);
# if we got a PID...
if (defined $pid)
{
kill 'USR1', $pid or die "$pid - $!\n";
}
else # start a new process
{
system("$name &");
}
# find the PID from a process table, based on a name
sub get_pid
{
my $name = shift @_;
my $table = new Proc:rocessTable;
foreach my $p (@{$table->table})
{
  # this filters out getem.pl itself
  return $p->pid if (defined $p->cmndline &&
                     $p->cmndline !~ /perl/ &&
             $p->cmndline =~ /^$name/);
}
return undef;
}




我的 XFree 配置使用带有两个视频卡的 xinerama。Xinerama 是用于XFree服务器的模块,提供多个监视器能力。这意味着对于计算机来说两个监视器可以是一个显示器。Enlightenment支持 xinerama --例如,最大化窗口将它最大化成一个监视器,而不是整个显示器,显示器可以是多个监视器。不幸的是,XFree配置文件不是可移植的,所以我的文件对于别人可能没有用处。必须阅读XFree 文档并为您自己的机器创建配置文件。
返回列表