`
s103y
  • 浏览: 116760 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

ubuntu(dapper)的emacs( 我刚刚在网上找到的)

阅读更多

以 前在linux下一直都用vim,但是对vim的这样的模态编辑器一直不太适应,总觉得esc键摁起来一点也不方便,不小心摁成F1了就更麻烦了。所以决 定试试emacs,但是ubuntu的emacs对中文支持的很不好,需要自己作大量的配置工作,而我对linux的态度一向是能用就好,尽量不自找麻 烦,所以就这样拖了很长时间。可惜等到现在ubuntu的emacs也没什么改进,只好抽时间按照网上的资料配了一下emacs,基本达到我的要求了。把 配置过程写一下,免得以后忘了。

1. 安装emacs及其插件
sudo apt-get install emacs //ubuntu 缺省的安装的是xemacs21
sudo apt-get install speedbar
sudo apt-get install eieio
sudo apt-get install semantic
sudo apt-get install ecb // 这个据说要在上面三个装完才可以装,我没试过打乱顺序装可以不可以。
sudo apt-get install emacs_wiki
下载color-theme ,解压缩,sudo cp color-theme.el /usr/share/emacs/site-lisp
下载mule-gbk , 解压缩,进入目录,
./configure
make
sudo make install
在.emacs.el中加上(require 'mule-gbk)即可。按照网上文章的说法,似乎还要做指定gbk字库之类的工作,但是我不知道哪个字库是gbk字库,所以什么也没改,只在.emacs.el中加了一句话。

现在大致就装了这么些东西,其中前几个是编程需要用到的,mule-gbk是用来支持中文的,我曾将尝试自己配中文环境,但是总有无法使用X的scim输入法,最后还是找到了这个mule-gbk。


2. 配置emacs
上网找了一个.emacs.el文件,在http://www.emacs.cn/ 有些资源,我随便挑了一个ljs 的配置文件,他的配置文件是用在windows下的,所以需要修改一下。主要修改的地方包括: site-list的path,字库的配置,去掉备份的配置,增加了color-theme,增加了对鼠标滚轮的支持,增加了对mule-gbk的支持。
关于字库的配置,可以在console下用xlsfonts查看,选一个合适的添加到.emacs.el中

3. 缺点
1. 启动太慢
2. 还是不能拷贝中文

;;; Load mule-gbk
(require 'mule-gbk)

(require 'un-define)
(set-language-environment 'utf-8)
(set-language-environment 'Chinese-GB)
(set-keyboard-coding-system 'euc-cn)
(set-clipboard-coding-system 'euc-cn)
(set-terminal-coding-system 'euc-cn)
(set-buffer-file-coding-system 'euc-cn)
(set-selection-coding-system 'euc-cn)
(modify-coding-system-alist 'process "*" 'euc-cn)
(setq default-process-coding-system
'(euc-cn . euc-cn))
(setq-default pathname-coding-system 'euc-cn)



;; Setup GBK environment
;(set-terminal-coding-system 'chinese-gbk)
;(set-keyboard-coding-system 'chinese-gbk)
;(set-language-environment 'chinese-gbk)
;(setq locale-coding-system 'chinese-gbk)
;(setq current-language-environment "Chinese-GBK")

;; 设置字体

;(create-fontset-from-fontset-spec
; "-misc-fixed-medium-r-*-*-20-*-*-*-c-*-fontset-global,
; chinese-gb2312:-song-*-medium-r-normal-*-20-*-*-*-*-*-gb2312.1980-*")

;(setq default-frame-alist
; (append '((font . "fontset-global")) default-frame-alist))
;(set-default-font "-adobe-courier-medium-r-normal--18-180-75-75-m-110-iso10646-1")

;;;;;;;;;; global setting
;(set-scroll-bar-mode nil) ;; 去掉滚动条
(tool-bar-mode -1) ;; 去掉工具栏
(setq require-final-newline t) ;; 以空行结束
(add-to-list 'load-path (expand-file-name "/usr/share/emacs/site-lisp/")) ;; set load-path
(setq visible-bell t) ;; 关闭出错时的提示声
(setq inhibit-startup-message t) ;;关闭开启画面
(setq column-number-mode t) ;; 显示列号
(setq mouse-yank-at-point t) ;; 用光标定位文本插入位置
(setq kill-ring-max 200) ;; 设置粘贴缓冲条目数量
(setq enable-recursive-minibuffers t) ;; 设置递归使用minibuffer
;;(setq scroll-margin 3
;; scroll-conservatively 10000) ;;防止页面滚动时跳动
(setq default-major-mode 'text-mode) ;;设置默认模式是text mode
(show-paren-mode t)
(setq show-paren-style 'parentheses) ;; 设置显示括号匹配,但不跳转
(mouse-avoidance-mode 'animate) ;;让鼠标不要挡住光标
(setq user-full-name "locky")
(setq user-mail-address "lockister@gmail.com")
(setq frame-title-format '("" buffer-file-name "@" user-login-name ":" system-name)) ;;设置缓冲标题
(global-font-lock-mode t) ;; 进行语法加亮
(setq next-line-add-newlines nil
resize-mini-windows t
track-eol t
kill-whole-line t
Man-notify-method 'pushy
woman-cache-level 2
woman-cache-filename nil
uniquify-buffer-name-style 'forward
vc-follow-symlinks t
line-move-ignore-invisible t
ring-bell-function 'ignore
tooltip-gud-tips-p t)

;; 设置备份版本控制 start
;(setq version-control t
; kept-old-versions 2
; kept-new-versions 5
; delete-old-versions t
; backup-directory-alist
; '(("." . "D:/tmp")
; (cons tramp-file-name-regexp nil))
; backup-by-copying t
; backup-by-copying-when-linked t
; backup-by-copying-when-mismatch t)
;(setq dired-kept-versions 1)
;; 设置备份版本控制 end

;(setq dired-recursive-copies 'top) ;;让dired可以递归地拷贝和删除目录
;(setq dired-recursive-deletes 'top) ;;

;; 设置显示时间
(display-time-mode 1)
(setq display-time-24hr-format t)
(setq display-time-day-and-date t)

;;;;;;;;; 设置界面 start
(require 'color-theme)
;(color-theme-subtle-hacker)
(color-theme-deep-blue)
(setq my-color-themes (list 'color-theme-billw 'color-theme-jsc-dark
'color-theme-sitaramv-solaris 'color-theme-resolve
'color-theme-classic 'color-theme-jonadabian-slate
'color-theme-kingsajz 'color-theme-shaman
'color-theme-subtle-blue 'color-theme-snowish
'color-theme-sitaramv-nt 'color-theme-wheat))


(set-cursor-color "Wheat")
(set-mouse-color "Wheat")
;(set-foreground-color "Wheat")
;(set-background-color "DarkSlateGray")
;(if window-system
; (setq default-frame-alist
; (append
; '( (top . 80)
; (left . 100)
; (width . 110)
; (height . 35))
; default-frame-alist))
;)
;;;;;;;;; 设置界面 end


;;;;; Esay Edit for C++/C programming
;; TAB and RET auto align and indent
(add-hook 'c++-mode-hook
(lambda ()
(c-set-style "bsd")
(hs-minor-mode)
(local-set-key "\C-c\t" 'complete-symbol)
(local-set-key "\C-m" 'newline-and-indent)
(setq mslk-c++-key (make-keymap))
(local-set-key "\C-j" mslk-c++-key)
(define-key mslk-c++-key "\C-j" 'complete-symbol)
(define-key mslk-c++-key "\C-o" 'hs-hide-all)
(define-key mslk-c++-key "\C-p" 'hs-show-all)
(define-key mslk-c++-key "\C-h" 'hs-hide-block)
(define-key mslk-c++-key "\C-u" 'hs-show-block)
(define-key mslk-c++-key "\C-l" 'hs-hide-level)
(define-key mslk-c++-key "\C-m" 'hs-toggle-hiding)
))
(add-hook 'c-mode-hook 'c++-mode)
(defun my-indent-or-complete ()
(interactive)
(if (looking-at "\\>")
(hippie-expand nil)
(indent-for-tab-command)))
(add-hook 'c-mode-common-hook
(function (lambda ()
(define-key c-mode-base-map [(tab)] 'my-indent-or-complete)
(define-key c-mode-base-map [(control m)] 'align-newline-and-indent)
(c-toggle-auto-state))))


;;;;;;;;;;;;;;;; 调用Lisp扩展包
;;;;;;;; load ido.el
(require 'ido)
(ido-mode t)

(autoload 'table-insert "table" "WYGIWYS table editor") ;;所见即所得做表格

(require 'recentf) ;; 保存最近打开的文件
(recentf-mode 1)
(defun recentf-open-files-compl ()
(interactive)
(let* ((all-files recentf-list)
(tocpl (mapcar (function
(lambda (x) (cons (file-name-nondirectory x) x))) all-files))
(prompt (append '("File name: ") tocpl))
(fname (completing-read (car prompt) (cdr prompt) nil nil)))
(find-file (cdr (assoc-ignore-representation fname tocpl)))))
(global-set-key [(control x)(control r)] 'recentf-open-files-compl)

;;;;;;;;;;; global key setting
(global-set-key [home] 'beginning-of-buffer)
(global-set-key [end] 'end-of-buffer)
;; wheel mouse
(global-set-key [mouse-4] 'scroll-down)
(global-set-key [mouse-5] 'scroll-up)
(custom-set-variables
;; custom-set-variables was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(blink-cursor-mode nil nil (frame))
'(column-number-mode t)
'(cua-mode nil)
;'(global-font-lock-mode t nil (font-core))
'(show-paren-mode t nil (paren)))
(custom-set-faces
;; custom-set-faces was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
)

分享到:
评论

相关推荐

    Dapper访问多数据库

    在处理数据库操作时,Dapper提供了一种更接近原生SQL的方式来操作数据库,同时保持了与.NET Framework的紧密集成。本文将深入探讨如何使用Dapper访问多种类型的数据库,包括Oracle、MySql和Sql Server,并且会提及...

    Dapper.SimpleCRUD

    Dapper本身是一个轻量级、高效的.NET ORM(对象关系映射)工具,而**Dapper.SimpleCRUD** 的出现是为了进一步降低开发者在使用Dapper时编写SQL语句的复杂度。 **Dapper.SimpleCRUD** 的主要优点在于它的易用性和...

    .net4.5环境下dapper.dll

    在.NET 4.5版本中,虽然Dapper并未作为官方标准库提供,但因其简洁的API和出色的性能,仍受到开发者们的广泛欢迎。 1. Dapper的核心概念: - 映射:Dapper允许将数据库查询结果自动映射到强类型对象,反之亦然。这...

    .NetFrameWork4.0版本的Dapper

    在提供的压缩包文件中,`Dapper.dll`和`Dapper.Contrib.dll`是Dapper库的二进制文件。将这两个文件添加到项目引用中,就可以在.NET Framework 4.0的项目中使用Dapper进行数据库操作了。 总之,Dapper是.NET ...

    Dapper UnitOfWork

    【Dapper UnitOfWork】是基于轻量级数据库访问库Dapper的一个实现,它结合了UnitOfWork的设计模式,使得在处理复杂的数据库事务时更加便捷。在领域驱动设计(DDD)中,UnitOfWork模式扮演着至关重要的角色,它负责...

    Dapper_dapper_google_

    标题"Dapper_dapper_google_"和描述"分布式系统中api调用关系追踪及性能采样分析"涉及的关键知识点是Google的Dapper系统,它是一个用于大规模分布式系统中的跟踪基础设施,主要目的是帮助开发者理解复杂的分布式系统...

    【Dapper封装类】

    Dapper封装类,对dapper的增删查改和存储过程进行封装

    ef core 与 dapper 组合使用demo

    在.NET开发领域,Entity Framework (EF) Core 和 Dapper 是两种常见的ORM(对象关系映射)工具。EF Core 提供了一种高级的、全面的ORM框架,而Dapper则是一个轻量级、高效的数据库访问库。这篇教程将探讨如何将这...

    基于Dapper操作数据库Demo

    在本Demo中,我们将深入探讨Dapper如何工作,以及如何利用它来处理各种数据库引擎的操作,同时避免手动编写SQL语句。 ### 1. Dapper简介 Dapper的核心优势在于它的简单性和性能。它不是一套完整的ORM解决方案,...

    dapper paper from goodle

    - **与其他追踪系统的关系**:虽然Dapper与其他追踪系统如Magpie和X-Trace在概念上有相似之处,但其独特的设计选择使其在谷歌环境中获得了成功。 #### 发展历程 Dapper最初是一款独立的追踪工具,随着时间的发展...

    .Net封装Dapper dbContext类

    封装Dapper dbContext类,对Dapper 的增删查改进行封装

    Dapper的代码Demo

    Dapper在性能上表现优秀,尤其适合与SQL语句高度定制化的场景。 在“Dapper的代码Demo(ADO,EF)”中,我们可以看到Dapper是如何与传统的ADO.NET以及Entity Framework(EF)结合使用的。ADO.NET是.NET框架内建的...

    Linq2Dapper程序集

    Linq2Dapper辅助类使得开发者可以直接在项目中引用DLL文件,无需额外安装其他依赖,简化了项目的构建流程。 **Linq**(Language Integrated Query,语言集成查询)是.NET框架中的一个强大特性,它允许开发者使用...

    Dapper 源码

    5. **自定义类型映射**:如果需要对特定类型进行特殊处理,Dapper允许用户自定义类型转换器,以便在读取或写入数据库时进行定制。 6. **动态查询**:Dapper支持动态对象,这意味着你可以构建动态SQL,这在某些场景...

    高性能数据访问操作示例+Z.Dapper.Plus+免费

    Z.Dapper.Plus在其基础上进行了扩展,提供了更丰富的功能,如批量插入、更新、删除以及查询,这些操作无需编写繁琐的SQL语句,大大提高了开发效率。 在C#中使用Z.Dapper.Plus,你需要首先安装Z.Dapper.Plus的NuGet...

    .net5 dapper封装操作数据库

    本文将深入探讨如何在.NET 5环境中使用Dapper进行数据库操作的封装。首先,我们来看`DapperHelper.cs`,这是实现Dapper操作的核心类。这个类通常会包含执行SQL查询和命令的方法,如`ExecuteNonQuery`用于执行非查询...

    2018-11 Dapper框架搭建三层

    在“2018-11 Dapper框架搭建三层”的主题中,我们将探讨如何利用Dapper构建一个具有业务逻辑层、数据访问层和表示层的三层架构应用。 首先,让我们了解三层架构的基本概念。三层架构是一种软件设计模式,它将应用...

    Dapper从入门到精通

    在这个“Dapper从入门到精通”的教程中,我们将深入探讨Dapper的核心特性和用法,帮助你掌握如何在.NET项目中有效地使用它。 1. **安装与引入** 要开始使用Dapper,首先你需要通过NuGet包管理器安装`Dapper`库。在...

    c#使用dapper连接SQL数据库

    本文将深入探讨如何在C#中使用Dapper来连接和操作SQL数据库,以及如何通过外部配置文件灵活地管理数据库连接。 首先,我们需要了解Dapper的基本用法。Dapper是一个高性能、低侵入性的数据访问层,它不提供实体模型...

Global site tag (gtag.js) - Google Analytics