你的 .emacs 里有什么?
我最近更换了几次计算机,并且在途中的某个地方我丢失了 .emacs。 我正在尝试再次构建它,但是当我这样做时,我想我会选择其他人使用的其他好的配置。
那么,如果您使用 Emacs,您的 .emacs 中有什么?
我的现在非常贫瘠,只包含:
- 全局字体锁定模式!
(global-font-lock-mode 1)
- 我个人对缩进、制表符和空格的偏好。
- 使用 cperl 模式而不是 perl 模式。
- 编译的快捷方式。
你觉得什么有用?
I've switched computers a few times recently, and somewhere along the way I lost my .emacs. I'm trying to build it up again, but while I'm at it, I thought I'd pick up other good configurations that other people use.
So, if you use Emacs, what's in your .emacs?
Mine is pretty barren right now, containing only:
- Global font-lock-mode!
(global-font-lock-mode 1)
- My personal preferences with respect to indentation, tabs, and spaces.
- Use cperl-mode instead of perl-mode.
- A shortcut for compilation.
What do you think is useful?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(29)
您可以在 我的网站< 上找到我的配置(在 html 和 tar 压缩包中) /a>. 它包含许多不同模式的设置
You can find my configuration (both in html & in tar'ed archive) on my site. It contains lot of settings for different modes
这个块对我来说是最重要的:
不过,我一直不清楚它们之间的区别。 货物崇拜,我猜...
This block is the most important for me:
I've never been clear on the difference between those, though. Cargo cult, I guess...
我尝试让 .emacs 保持井井有条。 配置始终是一项正在进行的工作,但我开始对整体结构感到满意。
所有内容都位于
~/.elisp
下,这是一个受版本控制的目录(我使用 git,如果感兴趣的话)。~/.emacs
只是指向~/.elisp/dotemacs
,它本身只是加载~/.elisp/cfg/init
。 该文件又通过require
导入各种配置文件。 这意味着配置文件需要表现得像模式:它们导入它们依赖的东西,并在文件末尾提供
自己,例如(provide 'my-ibuffer-cfg)< /代码>。 我在配置中定义的所有标识符都添加了
my-
前缀。我根据模式/主题/任务来组织配置,而不是根据它们的技术含义,例如,我没有有一个单独的配置文件,其中所有键绑定或面都是定义的。
我的
init.el
定义了以下钩子,以确保 Emacs 在保存时重新编译配置文件(编译后的 Elisp 加载速度要快得多,但我不想手动执行此步骤):这是目录结构对于
~/.elisp
:~/.elisp/todo.org
:组织模式文件,我在其中跟踪仍需要完成的事情(+愿望清单项目)。~/.elisp/dotemacs
:~/.emacs
的符号链接目标,加载~/.elisp/cfg/init
。~/.elisp/cfg
:我自己的配置文件。~/.elisp/modes
:仅包含单个文件的模式。~/.elisp/packages
:带有 lisp、文档和可能的资源文件的复杂模式。我使用 GNU Emacs,该版本并不真正支持软件包。 因此我手动组织它们,通常是这样的:
~/.elisp/packages/foobar-0.1.3
是包的根目录。 子目录lisp
包含所有 lisp 文件,info
是文档所在的位置。~/.elisp/packages/foobar
是一个符号链接,指向当前使用的包版本,这样我在更新某些内容时就不需要更改配置文件。 对于某些软件包,我保留一个~/.elisp/packages/foobar.installation
文件,在其中记录有关安装过程的记录。 出于性能原因,我编译新安装的软件包中的所有 elisp 文件,默认情况下应该不是这种情况。I try to keep my .emacs organized. The configuration will always be a work in progress, but I'm starting to be satisfied with the overall structure.
All stuff is under
~/.elisp
, a directory that is under version control (I use git, if that's of interest).~/.emacs
simply points to~/.elisp/dotemacs
which itself just loads~/.elisp/cfg/init
. That file in turn imports various configuration files viarequire
. This means that the configuration files need to behave like modes: they import stuff they depend on and theyprovide
themselves at the end of the file, e.g.(provide 'my-ibuffer-cfg)
. I prefix all identifiers that are defined in my configuration withmy-
.I organize the configuration in respect to modes/subjects/tasks, not by their technical implications, e.g. I don't have a separate config file in which all keybindings or faces are defined.
My
init.el
defines the following hook to make sure that Emacs recompiles configuration files whenever saved (compiled Elisp loads a lot faster but I don't want to do this step manually):This is the directory structure for
~/.elisp
:~/.elisp/todo.org
: Org-mode file in which I keep track of stuff that still needs to be done (+ wish list items).~/.elisp/dotemacs
: Symlink target for~/.emacs
, loads~/.elisp/cfg/init
.~/.elisp/cfg
: My own configuration files.~/.elisp/modes
: Modes that consist only of a single file.~/.elisp/packages
: Sophisticated modes with lisp, documentation and probably resource files.I use GNU Emacs, that version does not have real support for packages. Therefore I organize them manually, usually like this:
~/.elisp/packages/foobar-0.1.3
is the root directory for the package. Subdirectorylisp
holds all the lisp files andinfo
is where the documentation goes.~/.elisp/packages/foobar
is a symlink that points to the currently used version of the package so that I don't need to change my configuration files when I update something. For some packages I keep an~/.elisp/packages/foobar.installation
file around in which I keep notes about the installation process. For performance reasons I compile all elisp files in newly installed packages, should this not be the case by default.这是我自己的一些东西:
以 ISO 8601 格式插入日期:
对于 C++ 程序员,创建一个类骨架(类的名称将与文件名相同,不带扩展名):
自动创建右括号:
Here's a couple of my own stuff:
Inserts date in ISO 8601 format:
For C++ programmers, creates a class skeleton (class's name will be the same as the file name without extension):
Automatically create closing parentheses:
我使用 paredit 来实现简单的 (e)lisp 处理和 ido 模式迷你缓冲区完成。
i use paredit for easy (e)lisp handling and ido-mode minibuffer completions.
这个问题很难回答,因为每个人使用 Emacs 的目的都非常不同。
此外,更好的做法可能是 KISS 你的 dotemacs。 由于简易定制界面得到了广泛支持在 Emacs 模式中,您应该将所有自定义存储在
custom-file
中(这可能是 dotemacs 中的单独位置),并且对于 dotemacs,只放入加载路径设置、包要求、挂钩和键绑定。 一旦你开始使用Emacs Starter Kit,一个完整有用的工具包许多设置也可能会从您的 dotemacs 中删除。It's hard to answer this question, because everyone uses Emacs for very different purposes.
Further more, a better practice may be to KISS your dotemacs. Since the Easy Customization Interface is widely supported amongst Emacs' modes, you should store all your customization in your
custom-file
(which may be a separate place in your dotemacs), and for the dotemacs, put in it only load path settings, package requires, hooks, and key bindings. Once you start using Emacs Starter Kit, a whole useful bunch of settings may removed from your dotemacs, too.请参阅 EmacsWiki 的 DotEmacs 类别。 它提供了许多解决此问题的页面链接。
See EmacsWiki's DotEmacs category. It provides lots of links to pages addressing this question.
我使用 webjump 设置了一些方便的网页和搜索快捷方式
博客文章介绍其工作原理
http://justinsboringpage.blogspot.com/2009/02/search-reddit-flickr-and-google-from.html
另外我推荐这些:
我也摆脱一些多余的 GUI 东西
I set up some handy shortcuts to web pages and searches using webjump
Blog post about how this works here
http://justinsboringpage.blogspot.com/2009/02/search-reddit-flickr-and-google-from.html
Also I recommend these:
Also I get rid of some of the superfluous gui stuff
一行修改加载路径
一行加载我的初始化库
一行加载我的 emacs 初始化文件
当然,“emacs 初始化文件”相当多,每个特定的东西一个,以确定的顺序加载。
One line to amend the load path
One line to load my init library
One line to load my emacs init files
Of course, the "emacs init files" are quite numerous, one per specific thing, loaded in a deterministic order.
emacs-starter-kit 作为基础,然后我添加了.. vimpulse.el 、whitespace.el 、yasnippet 、textmate.el 和 newsticker.el 。
在我的 ~/.emacs.d/$USERNAME.el (dbr.el) 文件中:
emacs-starter-kit as a base, then I've added..
vimpulse.el
,whitespace.el
,yasnippet
,textmate.el
andnewsticker.el
.In my ~/.emacs.d/$USERNAME.el (dbr.el) file:
我是 emacs 新手,在我的 .emacs 文件中有
I'm new to emacs, in my .emacs file there are
FWIW,我的 .emacs 在这里:
http://svn.red-bean。 com/repos/kfogel/trunk/.emacs
FWIW, my .emacs is here:
http://svn.red-bean.com/repos/kfogel/trunk/.emacs
很多东西: https://github.com/tavisrudd/emacs.d
el-get 使管理它和依赖项变得更加容易:https://github.com/tavisrudd/emacs.d/blob/master/dss-init-el -get.el
lots of stuff: https://github.com/tavisrudd/emacs.d
el-get has made managing it and dependencies a lot easier: https://github.com/tavisrudd/emacs.d/blob/master/dss-init-el-get.el
对于 Scala 程序员
For Scala coders
多年来,我的 emacs 配置已经变得相当大,并且那里有很多对我有用的东西,但如果我有两个函数,那可能就是这些函数。
定义 Cx UP 和 Cx DOWN 移动当前行或向下移动,将光标保持在正确的位置:
My emacs configuration has grown up pretty big over the years and I have lot of useful stuff for me there but if I have two functions it probably would have been those ones.
Define C-x UP and C-x DOWN to move the current line or down keeping the cursor at the right place :
https://b7j0c.org/stuff/dotemacs.html
https://b7j0c.org/stuff/dotemacs.html
始终将我的配置保存在 svn http://my-trac.assembla 中。 com/ez-conf/browser/emacs.d
Always save my config in svn http://my-trac.assembla.com/ez-conf/browser/emacs.d
读完本文后,我认为最好有一个简单的站点来进行最佳的 .emacs 修改。 请随意在这里发帖并投票:
http://dotemacs.slinkset.com/
After reading this, I figured it would be good to have a simple site just for the best .emacs modifications. Feel free to post and vote on them here:
http://dotemacs.slinkset.com/
使用终极点文件网站。 在这里添加您的“.emacs”。 阅读其他人的“.emacs”。
Use the ultimate dotfiles site. Add your '.emacs' here. Read the '.emacs' of others.
我最喜欢的片段。 Emacs 的终极视觉效果:
所以你在编辑 lisp/scheme 时会看到以下内容:
My favorite snippet. The ultimate in Emacs eye candy:
So you see i.e. the following when editing lisp/scheme:
我有这个将
yes
或no
提示更改为y
或n
提示:我有这些来启动 Emacs,无需我从 这个问题中得到了这么多“大张旗鼓”< /a>.
Steve Yegge 的功能可重命名您正在编辑的文件及其相应的缓冲区:
I have this to change
yes
orno
prompt toy
orn
prompts:I have these to start Emacs without so much "fanfare" which I got from this question.
And Steve Yegge's function to rename a file that you're editing along with its corresponding buffer:
事实证明非常有用的一件事是:在它变得太大之前,尝试将其拆分为多个文件来执行各种任务:我的 .emacs 只是设置我的加载路径并加载一堆文件 - 我已经获得了所有模式 -
mode-configs.el
中的特定设置、keys.el
中的键绑定等One thing that can prove very useful: Before it gets too big, try to split it into multiple files for various tasks: My .emacs just sets my load-path and the loads a bunch of files - I've got all my mode-specific settings in
mode-configs.el
, keybindings inkeys.el
, et cetera我的 .emacs 只有 127 行,这里是最有用的小片段:
这使得我发现目录混乱的 *~ 文件进入一个特殊目录,在本例中是 .~
这设置了 uniquify ,它改变了那些丑陋的文件< 2> 当多个文件具有相同的名称时,您会得到缓冲区名称,并尽可能多地使用文件的整个路径,将其转换为更整洁、明确的名称。
就这样……剩下的都是相当标准的东西,我相信每个人都知道。
My .emacs is only 127 lines, here are the most useful little snippets:
This makes the *~ files which I find clutter up the directory go into a special directory, in this case .~
This sets up uniquify which changes those ugly file<2> etc. buffer names you get when multiple files have the same name into a much neater unambiguous name using as much of the whole path of the file as it has to.
That's about it... the rest is pretty standard stuff that I'm sure everyone knows about.
这不是整个工具包和 kaboodle,但它是我收集的一些更有用的片段:
This is not the whole kit and kaboodle, but it is some of the more useful snippets I've gathered:
我已经提到了很多其他内容,但我认为这些是绝对必要的:
I have a lot of others that have already been mentioned, but these are absolutely necessary in my opinion:
您可以在这里查看: http://www.dotemacs.de/
我的 .emacs 很长也把它放在这里,这样会使答案不太可读。 不管怎样,如果你愿意的话我可以寄给你。
另外,我建议您阅读以下内容:http://steve.yegge.googlepages .com/my-dot-emacs-file
You can look here: http://www.dotemacs.de/
And my .emacs is pretty long to put it here as well, so it will make the answer not too readable. Anyway, if you wish I can sent it to you.
Also I would recomend you to read this: http://steve.yegge.googlepages.com/my-dot-emacs-file
以下是我所依赖的一些关键映射:
一些其他杂项,主要用于 C++ 开发:
Here are some key mappings that I've become dependent upon:
Some other miscellaneous stuff, mostly for C++ development:
刷新您在 Emacs 中编辑的网页
与 http://hyperstruct.net/projects/mozlab< 结合使用/a>
To refresh the webpage you're editing from within Emacs
Used in combination with http://hyperstruct.net/projects/mozlab