修改的compile命令,为emacs实现快捷键绑定的编译功能:
F9编译,没有存的文件会提示存盘
C-F9是无提示的直接存盘+编译。
编译是编译的当前buffer文件,即在任何buffer窗口中按下'F9'或者'C-F9',都会直接编译该buffer对应的代码文件。
默认参数是使用g++ -g并加入了一些常用的库文件和头文件,路径做成list列表可能会更方便,这个以后闲了再改造。
特性:
1.编译当前buffer,生成的执行文件名是默认以当前buffer为名生成+".exe"后缀,在编译完之后会被立刻调用,如果你是linux下用记得在compile-command里面改改后缀以及注意在执行文件前加'./'。
2.缩小的compile窗口(只占emacs窗体1/4),避免其和代码窗口平分屏幕,尤其是代码窗口和compile窗口是上下分布的情况,这点更为重要。
3.编译和执行过程中焦点会始终保持在所编译的代码buffer的窗口,不会切到compile窗口或者其他窗口。
好处:
特别适合编译那些小demo,算法演示一类的代码,避开维护笨重的make
下面是code(需要把这些code加入到文件_emacs或者.emacs):
;;下面代码保证emacs在新打开compile窗口的时候只会水平分割窗口
(setq split-height-threshold 0)
(setq split-width-threshold nil)
;;编译
;; F9 调用 compile 并设置编译命令
;; C-F9 则保存所有文件并编译(无提示)
(defun defineCompileCmd()
(interactive)
(setq boost_path
"E:/workspace/C++/lib/boost/boost1.46")
(setq ace_src_path
"E:/workspace/C++/lib/ace/ace6.0.4/ACE_wrappers")
(setq ace_include_path
"E:/workspace/C++/lib/ace/ace6.0.4/ace/include")
(setq ace_mingw_lib_d
"E:/workspace/C++/lib/ace/ace6.0.4/ace/lib_gcc/lib_d")
(setq ace_mingw_lib
"E:/workspace/C++/lib/ace/ace6.0.4/ace/lib_gcc/lib")
(setq compile_file_name (substring (buffer-name (current-buffer)) 0 (string-match "[.]" (buffer-name (current-buffer)))))
(setq compile_file_name (concat compile_file_name ".exe"))
(setq compile-command
(concat "g++ -g -I"
boost_path
" -I"
ace_src_path
" -I"
ace_include_path
" -L"
ace_mingw_lib
" -lACE "
(buffer-name (current-buffer))
" -o "
compile_file_name
" && "
compile_file_name
))
)
(defun shrink-compile-window()
"shrink compile window, avoid compile window occupy 1/2 hight of whole window"
(interactive)
;;(select-window (get-buffer-window "*compilation*"))
(setq compiled_buffer_name (buffer-name (current-buffer)))
(switch-to-buffer-other-window "*compilation*")
(if (< (/ (frame-height) 3) (window-height))
(shrink-window (/ (window-height) 2)))
(switch-to-buffer-other-window compiled_buffer_name)
)
;;C-F9保存当前所有未保存的buffer并编译当前buffer
(global-set-key [C-f9] '(lambda()
"Save buffers and start compile"
(interactive)
(save-some-buffers t)
(defineCompileCmd)
(compile compile-command)
(shrink-compile-window)
)
)
;;F9调用compile编译当前buffer
(global-set-key [f9] '(lambda ()
(interactive)
(defineCompileCmd)
(compile compile-command)
(shrink-compile-window)
)
)
在emacs的代码窗口,按下F9或者C-F9,编译并运行文件,效果如下:
- 大小: 86.2 KB
分享到:
相关推荐
### Emacs编辑命令速查手册详解 #### 文件处理命令(Chapter1) Emacs作为一个功能强大的文本编辑器,提供了丰富的文件操作命令。以下是一些常见的文件处理命令及其用途。 1. **打开文件** - `C-x C-f`: 使用`...
### Emacs基本命令详解 #### 一、概述 Emacs是一款高度可配置且功能强大的文本编辑器,被广泛用于各种编程语言的开发环境之中。本文档旨在介绍Emacs中的一些基本命令,帮助用户快速掌握Emacs的基本操作方法。这些...
Emacs是一款功能强大的文本编辑器,它提供了一整套的快捷键组合来执行各种命令和操作。在介绍emacs常用命令之前,需要了解的是,Emacs命令的输入方式通常结合使用Ctrl(控制键)、Meta(可选的元键,通常为Alt或ESC...
文档“Emacs命令大全Emacs_command_tables.pdf”是一份关于Emacs所有命令的详细列表,帮助程序员深入了解并使用Emacs的各种功能。 文件中提到的Emacs主要模式(Major modes)是针对特定类型的文件或任务定制的编辑...
### Emacs常用命令详解 #### 一、进入与退出Emacs - **命令**: `C-z` - **功能**: 挂起Emacs。 - **命令**: `C-x C-c` - **功能**: 永久离开Emacs。 #### 二、基本操作 - **命令**: `C-p` - **功能**: 移至上...
Emacs提供了多种用于文件管理的命令,方便用户进行文件的查找、打开、保存和关闭等操作。 - **C-x C-f**:查找并打开文件。此命令会在新的缓冲区中打开文件,适合于同时编辑多个文件。 - **C-x C-v**:替换文件。将...
6. **编译与调试**:通过`M-x` `compile`可以运行make命令,集成GDB进行源码级调试。 7. **代码折叠**:使用`M-x` `hide-subtree`和`M-x` `show-subtree`可以折叠和展开代码块,方便查看和管理大型代码文件。 8. *...
### Emacs快捷键与命令详解 #### 引言 Emacs是一款功能强大且高度可定制的文本编辑器,深受程序员和技术人员的喜爱。对于初学者来说,掌握Emacs的基本操作及快捷键能够极大地提高工作效率。本文将详细介绍Emacs的...
### Emacs 快速记忆命令详解 #### 一、引言 Emacs是一款极其强大的文本编辑器,被广大程序员和文字工作者誉为“编辑器之神”。然而,由于其功能繁多,很多用户在初次接触时可能会觉得难以掌握,尤其是如何快速记住...
### EMACS 的 VIPOR 模式命令卡片解析 #### 一、引言 在文本编辑领域,Emacs 和 Vim(源自 Vi)都是极为强大的编辑器。对于习惯了 Vim 的快捷键而又想利用 Emacs 强大功能的用户来说,VIPOR 模式提供了一个很好的...
这是使用freemind 绘制的emacs常用命令学习思维导图,它包含了emacs若干入门级命令。学会这些,基本上就可以使用emacs了。
### vi和emacs命令手册知识点详解 #### 一、vi编辑器概述 - **vi编辑器简介**:vi(visual editor)是一种广泛使用的文本编辑器,它最初是在UNIX系统上开发的,现在几乎所有的类Unix系统(包括Linux)都内置了vi...
【EMACS 命令速查表】 EMACS是一款强大的文本编辑器,尤其对UNIX/Linux程序员来说,它的功能强大且自定义性极强。这份简明的EMACS命令手册涵盖了基本的操作,帮助用户快速上手。 ### 文件和编辑缓冲区操作 1. **C...
《GNU Emacs Pocket Reference》则是一本实用的手册,提供快速参考信息,帮助用户查找常用命令和功能。这本书通常以紧凑的形式列出Emacs的关键操作,包括文本操作、搜索和替换、缓冲区和窗口管理,以及各种模式的...
emacs基本编辑命令,适合初学者上手,高手不必理会
本手册将Emacs的操作命令分成多个类别,包括基本操作、编辑、查找和替换、窗口操作、格式化等,每个类别下面又分成多个子命令,以便于用户更好地理解和掌握Emacs的使用。 基本操作 Emacs的基本操作包括启动Emacs、...
- 将`emacs'spath\bin`添加到系统环境变量`PATH`中,在命令提示符下进入解压目录,使用`emacs-batch-q-fbatch-byte-compile *.el`命令进行编译。 #### 四、配置Emacs 为了正常使用Gnus,还需对Emacs进行以下配置...
- **启动与退出Emacs**:Emacs可以通过命令行启动,通过特定的命令或快捷键退出。 - **屏幕布局**:Emacs允许用户自定义屏幕布局,包括缓冲区与窗口的管理。 - **在线帮助**:Emacs内置了详尽的帮助文档,用户可以...
在本文中,我们将深入探讨Emacs的基本使用、常用命令以及如何查阅使用手册。 1. **Emacs基本概念** - **窗口与缓冲区**:在Emacs中,一个窗口可以显示多个缓冲区,缓冲区是存储文本的地方,而窗口则是显示缓冲区...