`

Ubuntu中emacs23 的字体设置和emacs初始窗口位置的小经验

阅读更多
Debian users, if your emacs startup fonts looks ugly, that’s might because you’ve installed gsfonts-x11 package which give X the capability to display Ghostscript fonts, and they are poorly rendered on screen. To fix this, read the document come with gsfonts-x11, or Debian Reference, Section 9.4.13 “TrueType? fonts in X”. (http://www.debian.org/doc/manuals/reference/ch-tune.en.html#s-xfs-tt)

how to install Emacs Snapshot on your Ubuntu.
   1. First add the following lines to your /etc/sources.list file
      deb http://debs.peadrop.com feisty backports
      deb-src http://debs.peadrop.com feisty backports

   2. Then add the GPG key to the key database.
      wget --quiet http://debs.peadrop.com/DD385D79.gpg -O - | sudo apt-key add -

   3. Then update and install the following packages. These are only for the 32bit version of Ubuntu.
      sudo aptitude update
      sudo aptitude install emacs-snapshot-gtk emacs-snapshot-el

   4. Then you have to specify which font you want to use in the Xresources file.
      echo "Emacs.font: Monospace-14" >> ~/.Xresources
      xrdb -merge ~/.Xresources
(http://www.fslog.com/2007/06/21/install-emacs-snapshot-on-ubuntu-feisty/)

for color theme
http://www.nongnu.org/color-theme/#sec1


emacs23 的字体设置和emacs初始窗口位置的小经验--之所以起这个题目,是因为我在折腾emacs字体的过程中发现,如果你成功的更改了emacs的字体后,会有个很奇怪的问题--emacs每次启动后,程序的窗口都有一部分会在屏幕可显示区域之外,每次都要手动改变窗口大小才能正常使用,麻烦.

我上网搜了一下,不少人也有这个问题,仔细看看终于找到了解决方案。

介绍如下:

原因:

* emacs的字体设置

由于 emacs 是个支持多语言的程序,它支持很多种字符集,而一种字体一般只覆

盖一个或几个字符集,因此只用一种字体是无法显示 emacs 支持的所有文字的。

因此在emacs中需要设置 fontset,也就是多种字体的集合,或者叫做字体集。

如果我们不指定 fontset, 那么 emacs 会使用默认的 fontset-default 来显示

字体。如果你觉得这种字体不好看,就需要自己定义 fontset。定义 fontset 有

两种方式,一种是在 ~/.emacs 中使用 create-fontset-from-fontset-spec 函

数,令一种是在 ~/.Xdefaults 中定义资源。我们分别介绍这两种方法。

上述两种方法都可以实现同样的效果。但是有一点细微的差别,采用第一种方法时,fontset 的定义是写在 ~/.emacs 中的,而 emacs 启动过程中,是先建立了第一个窗口,然后才读取 ~/.emacs 的,建立第一个窗口时,因为还没有读到我们定义的 fontset, 因此它会采用 fontset-default 创建第一个窗口,当读到我们定义的 fontset 时,再进行调整,如果我们定义的 fontset 与默认的fontset-default 字体差别比较大,就会看到emacs进行了一个调整窗口大小的动作,这个动作延缓了 emacs 的启动过程。(耶林按:这就是造成启动程序时窗口都有一部分会在屏幕可显示区域之外的原因,也就是说在emacs加载时,~/.Xdefaults文件是比~/.emacs预先被emacs读取的)而采用第二种方法则不会出现这个问题,因此推荐使用第二种方法。


另一篇相关文章:

改变emacs启动窗口大小的两种方法 by aofanliguo(作者)

很多时候,emacs并不是按照你的想像去启动的.你会发现它可能启动后占据了两个或更多窗口.或者,你喜欢全屏工作方式,但每次启动后最大化总是一件很麻烦的事情.在日常应用中,我总结了以下两种方法,

第一种方法:

在你的 ~/.Xdefaults 中增加下面这行

Emacs.geometry: 80x30

然后运行 xrdb ~/.Xdefaults

这样emacs的启动窗口就被设为80列x30行的大小

你可以按照自己的要求设置

Emacs.geometry: WIDTHxHEIGHT+XOFF+YOFF

其中WIDTH, HEIGHT分别表示窗口的宽度和高度,可选的XOFF和YOFF表示启动窗口的左上角座标。

例如:

Emacs.geometry: 80x30+20+10

表示令窗口大小为80x30,启动后左上角处于(20,10)处,很简单,不是么

第二种方法:

在配置文件中配置,配置文件通常在你的用户目录,为.emacsrc.(耶林按:我的是.emacs 文件)

加入下面一行:

(setq default-frame-alist

'((height . 35) (width . 100) (top . 20) (left . 20) (menu-bar-lines . 20) (tool-bar-lines . 0)))

由于后一种是写在配置文件中的,所以相对来说比较方便.更多的详细设置网上搜一下default-frame-alist
(Window-Frame-Parameters)

耶林的分析和结论:

根据我上面的参考和分析,在emacs加载时,~/.Xdefaults文件是比~/.emacs预先被emacs读取的,但是在 ~/.Xdefaults里面设置字体的方式比在~/.emacs里面的要麻烦,本着能省就省,能躺下绝不坐着的懒人原则--字体要在~/.emacs里设置比较简单,而对启动窗口的设置,则需要在~/.Xdefaults里面设置才会有预期效果。

原因?且看我慢慢摆来:

如果在~/.emacs里面设置启动窗口,你会发现尽管窗口会显示成你所设置的大小,但位置仍然不对,哪怕是你设置了屏幕0,0的坐标emacs启动后也不会在屏幕的边上角,盖是因为emacs在此之前已经通过读取默认设置,确定了窗口的初始屏幕位置,然后再读你的.emacs文件里的窗口位置和大小,此时,大小参数起作用了,而位置的参数仍然是在默认基础之上起作用而已。比如,如果默认的emacs是10,10的窗口坐标,你如果在.emacs里面设置了窗口坐标是15,15,那么真正的窗口坐标则会是:10+15=25------> 25,25,而非你想要的15,15。

于是,那么,so,这样,窗口仍然会出桌面边界。再唠叨一遍我的分析:emacs在加载时,~/.Xdefaults文件是比~/.emacs预先被emacs读取的,但emacs会根据~/.Xdefaults文件中的参数调整窗口位置并取代其默认的启动位置(而非像在.emacs里设置位置那样的是坐标相加),所以我们要想定义 emacs的窗口启动位置,在~/.Xdefaults里面设置才是比较好的解决方法--emacs最基础的那个默认设置在哪里,我目前还不知道,慢慢学习吧。

综上所述,对于emacs 23(我只试过23 snapshot版本)来说,调整字体最便捷的方法莫如在~/.emacs里,调整程序窗口启动时在屏幕上的位置,则要在~/.Xdefaults里。

我的emacs装好后,home目录里没有这两个文件,是我手动创建的,依网上的资料,设置如仪,效果不错,xft字体系统,功德无量。

--linux,大有进步哦。

我自己的这两个文件的内容如下:

.Xdefaults文件

Emacs.geometry: 100x35+0+0

.emacs文件

(set-default-font "Bitstream Vera Sans Mono-10")

;; 设置中文字体

     (set-fontset-font "fontset-default"

      'gb18030 '("WenQuanYi Bitmap Song" . "unicode-bmp"))


简单吧。
分享到:
评论

相关推荐

    Ubuntu平台上Emacs 23 的安装配置

    总结起来,安装和配置Ubuntu上的Emacs 23不仅包括基本的安装步骤,还涉及语言环境设置、插件安装、个性化配置等多个方面。通过这些定制,用户可以根据自己的需求打造一个高效且舒适的开发环境。不过,Emacs的学习...

    Emacs教程初步 pdf

    - **颜色主题与字体**:可以通过配置文件设置Emacs的颜色主题和字体。 - **快捷键**:可以根据个人习惯调整Emacs的快捷键。 - **模式配置**:例如,可以配置Emacs Wiki模式的设置。 - **加载路径**:通过设置`load-...

    ubuntu中文语言参考书册

    - **X窗口系统**:解释了X11窗口系统的基础知识及其在Ubuntu中的应用。 - **进一步学习资源**:推荐了一些学习资源,帮助用户继续深化对Ubuntu的理解。 #### 五、Ubuntu系统高级功能 - **发行版升级**:详细说明了...

    Ubuntu中文参考手册

    - **常规 Linux 安装提示**:提供了在安装Ubuntu过程中可能遇到的问题及解决方案,如分区设置、文件系统选择等。 - **Bash 设置**:介绍了如何自定义Bash shell的环境变量、别名命令等。 - **鼠标设置**:指导...

    Ubuntu菜鸟使用手册

    第4章是关于Ubuntu的使用指南,开始部分强调了如何开始使用Ubuntu,随后介绍了一些类Unix环境下的操作,比如使用Midnight Commander(MC)进行文件管理,如何处理类Unix文本和文件系统,以及X窗口系统的基本使用和...

    ubuntu 命令参考手册含Shell命令编程

    - **基本设置**:介绍了Ubuntu系统的初始设置过程,包括环境配置、用户权限管理等内容,确保系统能够满足用户的个性化需求。 - **Ubuntu发行版基本概念**:解释了Ubuntu的不同版本及其发布周期,帮助读者了解何时...

    reload-emacs.d:这个库不再使用,新的方式见https

    要求 带有子模块支持的 git 1.5 一步一步安装 ... 我的系统是 Ubuntu / Emacs23,字体 Yahei Consolas Hybrid。 您可能需要更改 ~/.emacs.d/my-custom.el 以适合您的系统。 更新 cd ~/.emacs.d 拉git子模块更新

    emacs:Emacs配置

    这段代码将设置编辑器窗口的高度和宽度,选择Source Code Pro字体,并应用Solarized Light主题。 Emacs的强大之处在于它的扩展性。你可以通过MELPA(Marmalade和ELPA的组合)包管理器来安装和管理插件。首先,添加...

    ubuntu-dotfiles:ubuntu点文件

    1. **.bashrc**:这是Bash shell的初始化脚本,包含了命令行提示符的设置、环境变量、别名和函数。用户可以通过修改此文件来改变终端的行为。 2. **.vimrc**:Vim编辑器的配置文件,可以设置颜色方案、映射快捷键、...

    java实战开发1200例源码-my-emacs:个人版emacs-Managedtroughorgfile

    厌倦了到处复制和重新初始化我的 emacs 环境。 因此我认为引导我的 emacs(-configuration) 以便它管理自己所有相关的包和依赖项可能是一个有趣的练习。 为此,我使用 org-mode 格式来存储和组织我的配置代码,并使用...

    linux_init:Linuxubuntu 系统初始化环境配置

    总的来说,`linux_init`针对的是Ubuntu系统的初始化设置,包括安装必要的软件如Git和Emacs,并根据需求配置软件环境,特别是对于开发者来说,可能涉及到Emacs Lisp的使用。这样的配置有助于提高工作效率,保证开发...

    dotfiles:主要为新的mac和ubuntu linux设置通用的初始环境。 特别是对于CF开发人员

    标题提到的"dotfiles"主要是为了为新的Mac和Ubuntu Linux系统提供一个通用的初始环境,特别针对Cloud Foundry(CF)开发者。在这个场景下,点文件通常包括了Shell的配置、编程环境的设置以及各种工具的定制,以提升...

    teTEX 中文环境的架设

    在 Emacs 的初始化文件中添加以下设置: ```elisp ;; 加载 AUCTeX (require 'auctex) ;; 设置默认使用的 LaTeX 引擎 (setq TeX-PDF-mode t) ;; 设置默认文档类 (setq TeX-default-template "\\documentclass{...

    vagrant-ubuntu-django-base:构建一个基于 Ubuntu 的 base-box,非常适合 Django 项目

    要使用这个基本框,请参考michaelbrooks/ubuntu-django或使用以下命令进行初始化: $ vagrant init michaelbrooks/ubuntu-django 包括什么 Ubuntu Precise x64 基础机 Git、Emacs、其他一些系统包 MySQL 5.5 带有...

    gdb调试技术

    【gdb调试技术】在Linux环境下,调试PostgreSQL数据库服务器是一项关键任务,特别是对于开发者和系统管理员来说。本文将详细讲解如何使用gdb这一强大的调试工具来调试PostgreSQL,同时介绍如何搭建调试环境。 首先...

    pop_layers:我的Pop!_OS配置脚本

    5. **窗口管理**:Emacs支持多窗口编辑,用户可能定义了窗口切换、分割和排列的规则。 6. **配置框架**:像“use-package”这样的框架可以帮助用户更有序地管理他们的Emacs配置,确保加载顺序和依赖关系正确。 7. ...

    fzf.el:fzf的前端

    这些配置通常在Emacs的初始化文件(`.emacs`或`init.el`)中完成。 此外,fzf.el是用Emacs Lisp(Elisp)编写的,这意味着它完全可扩展。如果你有Elisp编程经验,可以根据需要修改或增强fzf.el的功能。例如,你可以...

    Linux软件开发课件

    这份“Linux软件开发课件”旨在为初学者和有经验的开发者提供深入理解Linux环境下的软件开发流程、工具和实践的知识。 1. **Linux的安装与配置** Linux的安装过程与Windows或Mac OS等其他操作系统有所不同。安装...

Global site tag (gtag.js) - Google Analytics