Emacs: 设置窗口标题格式
Emacs默认的窗口标题常常比较简单,例如我的默认标题是"emacs@ubuntu"。如果想要在标题中显示更多的信息,我们可以对它进行一些设置。由于Emacs的可扩展性,这种修改实际上非常容易。
显示文件名
设置Emacs的标题只需要设置变量frame-title-format就可以了[1]。例如
(setq frame-title-format "%b - Emacs")
将标题设置为"文件名 - Emacs"的形式,其中%b表示文件名。更多格式说明可以参考mode-line-format的文档。
显示当前目录
我们比较贪,想要titlebar做更多的事[2]。一个比较常见的做法是显示当前文件所在的目录。为了便于扩展我们将上述标题整理为等价的格式:
(setq frame-title-format
'(:eval (concat
(buffer-name)
" - Emacs"))
)
表示标题的格式由计算一个表达式得到,而这个表达式是(buffer-name)和"- Emacs"连接得到的。这样,就容易加入当前目录的计算[3]:
(if buffer-file-name
(concat " (" (directory-file-name (abbreviate-file-name default-directory)) ")"))
其中default-directory表示当前的目录,abbreviate-file-name将其转化为缩略的形式(例如"/home/user/path/"变为"~/path/"),directory-file-name去掉最后的斜杠。if语句表示只针对文件buffer执行这项操作。现在标题格式类似于"init.el (~/.emacs.d) - Emacs"。
修改指示符
最后加入一个现代编辑器常见的功能,在已修改的文件前面加一个标志。如下所示:
(if (and buffer-file-name (buffer-modified-p)) "•")
最终成品如下,将该语句加入启动文件即可:
(setq frame-title-format
'(:eval (concat
(if (and buffer-file-name (buffer-modified-p)) "•")
(buffer-name)
(if buffer-file-name
(concat " (" (directory-file-name (abbreviate-file-name default-directory)) ")"))
" - Emacs"))
)

参考资料
- https://www.gnu.org/software/emacs/manual/html_node/efaq/Displaying-the-current-file-name-in-the-titlebar.html
- https://www.emacswiki.org/emacs/FrameTitle
- https://www.gnu.org/software/emacs/manual/html_node/elisp/Directory-Names.html
Emacs: 设置窗口标题格式的更多相关文章
- SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
java日期格式大全 format SimpleDateFormat(转) SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH ...
- log_format为Nginx设置日志格式
nginx服务器日志相关指令主要有两条,一条是log_format,用来设置日志格式, 另外一条是access_log,用来指定日志文件的存放路径.格式和缓存大小,一般在nginx的配置文件中日记配置 ...
- .Net如何在后台设置日期格式,并显示在前台页面上
其实方法比较老咯,有比这个简单的朋友请留言哈,我的思路是先将数据库中的日期格式读出来,在后台转化成DatetTime类型,然后在使用DateTime的内部方法设置日期格式,代码如下: DateTime ...
- (转)MyEclipse设置注释格式
原文:http://xinghaifeng2006.iteye.com/blog/1243565 MyEclipse设置注释格式(转载) 博客分类: Java基础知识 Windo ...
- Java json设置时间格式,Jackson设置时间格式,json设置单引号
Java json设置时间格式,Jackson设置时间格式,json设置单引号 >>>>>>>>>>>>>>> ...
- Powershell 设置数值格式 1
设置数值格式 1 6 6月, 2013 在 Powershell tagged 字符串 / 数字 / 文本 / 日期 / 格式化 by Mooser Lee 格式化操作符 -f 可以将数值插入到字符 ...
- 【SSRS】入门篇(五) -- 设置报表格式
原文:[SSRS]入门篇(五) -- 设置报表格式 在上一节 [SSRS]入门篇(四) -- 向报表添加数据 我们设置好了报表,并可以预览到数据,如下图: 当报表完成后,有个重要的工作就是美化报表格式 ...
- (后端)excel设置日期格式的步骤
在excel中设置日期格式,分直接设置和代码设置. 一.直接设置: 选取日期所在的单元格,单元格右键菜单中--设置单元格格式.在单元格格式窗口中选数字类型为“日期”在右边的列表框中选取相应的日期格式即 ...
- execl中设置的格式无法实现
在一次项目中,需要导出execl表,并且要给表中的表格设置格式,因为每列的格式都不一样,需要单独设置设置这些格式,在后期使用中因为导入的数据过多,是的后面的单元格中设置的格式无法实现. 每次打开exe ...
随机推荐
- 设计模式课程 设计模式精讲 8-8 单例设计模式-Enum枚举单例、原理源码解析以及反编译实战
1 课堂解析 2 代码演练 2.1 枚举类单例解决序列化破坏demo 2.2 枚举类单例解决序列化破坏原理 2.3 枚举类单例解决反射攻击demo 2.4 枚举类单例解决反射攻击原理 3 jad的使用 ...
- docker-构建建tomcat镜像并启动容器
1.下载一个tomcat8,解压好改名为tomcat并配置端口为80,删除webapps下的默认的应用,修改tomcat/bin目录下脚本的权限,chmod +x *.sh 2.路径一般放在/usr/ ...
- priority_queue优先级队列总结
http://www.cppblog.com/Darren/archive/2009/06/09/87224.html priority_queue用法 priority_queue 调用 STL里面 ...
- Docker介绍(一)
在TES GLOBAL,我们已经爱上Docker并从Docker的0.8版本开始就在生产环境中使用它.我们的很多开发者都参加了在DockerCon欧洲上的培训.下面是我们总结的一些tips,希望可以帮 ...
- 外网如何访问 Service?【转】
除了 Cluster 内部可以访问 Service,很多情况我们也希望应用的 Service 能够暴露给 Cluster 外部.Kubernetes 提供了多种类型的 Service,默认是 Clus ...
- HiBench成长笔记——(4) HiBench测试Spark SQL
很多内容之前的博客已经提过,这里不再赘述,详细内容参照本系列前面的博客:https://www.cnblogs.com/ratels/p/10970905.html 和 https://www.cnb ...
- Go语言 Note
1.简单的CURD之搭建基础框架 //路由层 func Router(rg *gin.RouterGroup){ rg.GET("/getsupplier", facility.G ...
- SQL state [72000]; error code [1461]; ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值 ; nested exception is java.sql.BatchUpdateException: ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值
本文转自 https://www.cnblogs.com/yingsong/p/5685790.html 原 因:某一个字段本为varchar2(1024),但是实际要插入的值超过varchar2允 ...
- 赶在EW2020之前,FreeRTOS发布V10.3.0,将推出首个LTS版本
点击下载:FreeRTOSv10.3.0.exe 说明: 1.新版更新: (1)对于IAR For RISC-V进行支持,并且加强了对RISC-V内核芯片支持,做了多处修正. (2)对阿里平头哥CH2 ...
- Java的equals方法的使用技巧
Java的equals方法的使用技巧 1.业务场景: 在某个社交软件中,要求每个用户的用户名(name)必须独一无二,那么在每次增加新用户的时候,都要对该用户的注册名进行判断,如果当前用户名已经被占用 ...