使用Emacs:生存篇

简介: vim和Emacs都是很强大的编辑器。所以,入门有一定难度。这里不谈vim,谈Emacs下的生存--第一次使用Emacs时的使用。 1.emacs的安装: 在Fedora下: sudo yum install emacs 2.打开emacs: 终端中输入emacs 3.emacs的界面: 当你打开emac后应该是这样子: 看不懂英文?"快速指南"一行对应中文手册可以查看。

vim和Emacs都是很强大的编辑器。所以,入门有一定难度。这里不谈vim,谈Emacs下的生存--第一次使用Emacs时的使用。

1.emacs的安装:

在Fedora下:

sudo yum install emacs

2.打开emacs:

终端中输入emacs

3.emacs的界面:

当你打开emac后应该是这样子:

看不懂英文?"快速指南"一行对应中文手册可以查看。最基本的按键:

C-x C-f 打开或创建文件

C-x s保存

C-x b ‘buffername'切换缓冲区

C-x C-c 退出

M-x shell切换到shell模式

C-s查找字符串

C-x 1只保留当前窗格

C-x 2把当前窗口分为等宽半高的两个窗格

C-x 3把当前窗口分为等高半宽的两个窗格

C-x o跳到other窗格

C-n next line

C-p previous line

C-v 向下翻页

M-v向上翻页

C-k删除一行

其中,C表示Ctrl键,M表示Meta,一般表示Alt键。Emacs中的按键不计其数,也可以自行设定,因为按键表示相应的lisp函数的快捷方式

4.emacs配置文件

在~/.emacs中可以对emacs进行设定,它使用elisp语法。如果不存在.emacs文件,你可以创建一个。
几个有用的配置:
(1)打开emacs时不显示“帮助和文档”等信息:

(setq inhibit-startup-message t)

(2)用鼠标+ctrl键可以放大和缩小字体:

(global-set-key (kbd "<C-mouse-4>") 'text-scale-increase)
(global-set-key (kbd "<C-mouse-5>") 'text-scale-decrease)

(3)主题设定:
下载主题:http://download.savannah.gnu.org/releases/color-theme/color-theme-6.6.0.tar.gz

新建emacs插件路径:

cd ~/.emacs.d; mkdir lisp;

解压主题文件:

tar zxvf color-theme-6.6.0.tar.gz

复制主题文件到插件路径:

cp -r theme color-theme.el ~/.emacs.d/lisp/

在.emacs文件中加载:

(add-to-list 'load-path "~/.emacs.d/lisp")
(require 'color-theme)
(color-theme-initialize)
(color-theme-calm-forest);;这个是你选择的主题,后面的calm forest是它的名字

(4)字体设定:
中英文字体最好分别设定,我使用微软雅黑和Monaco字体,具体设定为:

required-at-runtime 
(eval-when-compile (require 'cl)) 
(when window-system 
  (defun set-font (english chinese english-size chinese-size) 
    (set-face-attribute 'default nil :font 
            (format "%s:pixelsize=%d" english english-size)) 
    (dolist (charset '(kana han symbol cjk-misc bopomofo)) 
      (set-fontset-font t charset 
            (font-spec :family chinese)))) 

  (ecase system-type 
    (gnu/linux 
     (set-face-bold-p 'bold nil) 
     (set-face-underline-p 'bold nil) 
     (set-font "Monaco" "微软雅黑" 20 20)) 
    ))  

以上配置代码,最终为:

;;请把这段代码放到.emacs中

;;打开emacs时不显示“帮助和文档”等信息
(setq inhibit-startup-message t)

;;用鼠标可以放大和缩小字体
(global-set-key (kbd "<C-mouse-4>") 'text-scale-increase)
(global-set-key (kbd "<C-mouse-5>") 'text-scale-decrease)

;;将~/.emacs.d/lisp(插件路径)添加到加载路径
(add-to-list 'load-path "~/.emacs.d/lisp")
(require 'color-theme)
(color-theme-initialize)
(color-theme-calm-forest)

;;字体设定
required-at-runtime 
(eval-when-compile (require 'cl)) 
(when window-system 
  (defun set-font (english chinese english-size chinese-size) 
    (set-face-attribute 'default nil :font 
            (format "%s:pixelsize=%d" english english-size)) 
    (dolist (charset '(kana han symbol cjk-misc bopomofo)) 
      (set-fontset-font t charset 
            (font-spec :family chinese)))) 

  (ecase system-type 
    (gnu/linux 
     (set-face-bold-p 'bold nil) 
     (set-face-underline-p 'bold nil) 
     (set-font "Monaco" "微软雅黑" 20 20)) 
    )) 

4.写代码的cc-mode
cc-mode可以用来写C/C++/Java/Obj-C。
使用cc-mode:

M-x c-set-style

然后选择cc-mode

代码缩进:

用C-x h选中全部代码,用C-M-\规范化选中的代码
tab键此时用来规范化当前行代码。换行后代码的缩进:使用C-j替代<RETURN>

目录
相关文章
|
分布式计算 DataWorks 大数据
MaxCompute产品使用合集之odps.sql.mapper.split.size和odps.stage.mapper.split.size这两个参数的区别是什么
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
监控 安全 应用服务中间件
微服务架构下的API网关设计策略与实践####
本文深入探讨了在微服务架构下,API网关作为系统统一入口点的设计策略、实现细节及其在实际应用中的最佳实践。不同于传统的摘要概述,本部分将直接以一段精简的代码示例作为引子,展示一个基于NGINX的简单API网关配置片段,随后引出文章的核心内容,旨在通过具体实例激发读者兴趣,快速理解API网关在微服务架构中的关键作用及实现方式。 ```nginx server { listen 80; server_name api.example.com; location / { proxy_pass http://backend_service:5000;
|
自然语言处理 供应链 数据可视化
大数据在市场营销中的应用案例:精准洞察,驱动增长
【8月更文挑战第25天】大数据在市场营销中的应用案例不胜枚举,它们共同展示了大数据技术在精准营销、市场预测、用户行为分析等方面的巨大潜力。通过深度挖掘和分析数据,企业能够更加精准地洞察市场需求,优化营销策略,提升市场竞争力。未来,随着大数据技术的不断发展和普及,其在市场营销领域的应用将更加广泛和深入。
3234 3
|
对象存储 数据库
2025年 | 12月云大使推广奖励规则
云大使推广返利活动,企业新用户下单返佣加码5%,推广最高返佣45%,新老用户都可参与返利活动。
101049 52
|
JavaScript Java Serverless
理解Serverless技术—FaaS和BaaS
Serverless技术—FaaS和BaaS
3413 1
|
负载均衡 算法 Java
Spring Cloud Netflix 之 Ribbon
Spring Cloud Netflix Ribbon是客户端负载均衡器,用于在微服务架构中分发请求。它与RestTemplate结合,自动在服务发现(如Eureka)注册的服务之间进行调用。配置包括在pom.xml中添加依赖,设置application.yml以连接Eureka服务器,并在配置类中创建@LoadBalanced的RestTemplate。通过这种方式,当调用如`/user/userInfoList`的接口时,Ribbon会自动处理到多个可用服务实例的负载均衡。
|
运维 监控 测试技术
自动化运维:提升效率与降低风险的现代策略
【7月更文挑战第30天】本文将深入探讨自动化运维的重要性、实施步骤以及面临的挑战,并提供应对策略。通过实例分析,揭示自动化运维如何优化工作流程,减少人为错误,增强安全性和合规性,最终实现成本效益的提升。
122 2
|
SQL 关系型数据库 MySQL
RDS for MySQL的DDL、DML和DQL
这篇文章介绍了MySQL中处理数据的几种主要操作:DDL(Data Definition Language),DML(Data Manipulation Language)和DQL(Data Query Language)。首先讲解了如何使用CREATE DATABASE, ALTER DATABASE和DROP DATABASE语句来创建、修改和删除数据库。
246 1
|
前端开发 JavaScript API
React的Context API:全局状态管理的利器
【4月更文挑战第25天】React的Context API解决了深层组件间状态共享的难题,提供全局状态管理方案。通过`Provider`和`Consumer`组件,或结合`useContext` Hook,实现状态在组件树中的传递。最佳实践包括避免过度使用,分离逻辑,以及在必要时与Redux或MobX结合。Context API简化了数据传递,但需谨慎使用以保持代码清晰。
|
编解码
音视频录制播放原理
音视频录制播放原理
310 1

热门文章

最新文章