ido-vertical-mode.el:垂直显示ido-mode的Emacs扩展

需积分: 9 0 下载量 161 浏览量 更新于2024-11-08 收藏 48KB ZIP 举报
资源摘要信息:"ido-vertical-mode.el 是一个旨在改进 Emacs 编辑器中 IDO(Improved Directory Orbiter)模式用户体验的扩展插件。IDO 模式最初是作为 Emacs 的内置功能出现,旨在提升文件名和缓冲区的搜索效率。然而,其默认的水平列表显示方式有时会因为警告信息的出现而导致使用上的不便。IDO-vertical-mode.el 扩展正是为了解决这个问题而设计,它通过垂直显示 IDO 的列表,使用户可以更容易地在警告信息和搜索结果之间进行区分和选择。" 在 Emacs 中使用 ido-vertical-mode.el 扩展可以带来以下几方面的改进和知识点: 1. **垂直显示模式**: IDO-vertical-mode 扩展使得 IDO 的显示方式从传统的水平列表转换为垂直列表,这样可以在较窄的屏幕或窗口中提供更佳的可见性,尤其在处理大量搜索结果时。 2. **初始化和配置**: 为了在 Emacs 中启用 ido-vertical-mode,用户需要在 init 文件中添加特定的配置代码。首先,通过 MELPA 或其他 Emacs 包管理系统安装 ido-vertical-mode.el 包。然后,需要加载该包,并启用 ido 模式和 ido-vertical 模式,同时可以设置快捷键映射,如例子中所示的 'C-n-and-C-p-only' 以使用 C-n 和 C-p 来导航。 3. **动态切换**: 用户可以通过 Mx ido-vertical-mode 命令来动态开启或关闭垂直模式。这为用户提供了在水平和垂直显示模式之间灵活切换的能力,以适应不同的使用场景。 4. **Emacs Lisp 环境**: ido-vertical-mode 是使用 Emacs Lisp 编写的一个扩展,这意味着了解 Emacs Lisp 基础知识对于用户来说是有益的,尤其是在定制和修改插件行为时。 5. **MELPA 与 MELPA Stable**: 介绍中提到了 MELPA 和 MELPA Stable,这是 Emacs 中两个主要的包源。用户应了解如何从这些源安装扩展,同时注意到某些版本可能不保证功能的稳定性。 6. **警告信息处理**: 垂直显示模式在处理警告信息时,由于提供了一个更清晰的垂直布局,有助于用户在浏览搜索结果时更容易区分警告信息和实际的搜索选项。 7. **键位设置**: 除了基本的垂直模式激活与关闭之外,ido-vertical-mode 允许用户自定义键位绑定,以便更符合个人的使用习惯。 8. **版本升级注意事项**: 扩展的版本更新可能会带来变化,特别是在 MELPA Stable 之外的版本,用户应留意可能的不兼容问题,并在升级时进行相应的调整。 9. **源代码文件名称**: 扩展的源代码文件名为 ido-vertical-mode.el-master,这表明用户在下载或查找源代码时应寻找以 ido-vertical-mode.el 结尾的文件,并可能包含版本信息或分支标识。 10. **Emacs 扩展开发**: 最后,开发一个像 ido-vertical-mode 这样的 Emacs 扩展可以为用户提供宝贵的实践机会,帮助他们理解 Emacs 扩展开发的过程,从初始化安装到功能实现,再到用户体验优化的各个层面。

Unexpected error occurred in scheduled task. java.lang.NullPointerException: temporal at java.util.Objects.requireNonNull(Objects.java:228) at java.time.format.DateTimeFormatter.formatTo(DateTimeFormatter.java:1741) at java.time.format.DateTimeFormatter.format(DateTimeFormatter.java:1720) at com.ido85.icip.spoperation.special_operation.service.impl.SpecialOperationServiceImpl.SpecialOperationStatus(SpecialOperationServiceImpl.java:140) at com.ido85.icip.spoperation.special_operation.service.impl.SpecialOperationServiceImpl$$FastClassBySpringCGLIB$$ff8b66a6.invoke(<generated>) at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:684) at com.ido85.icip.spoperation.special_operation.service.impl.SpecialOperationServiceImpl$$EnhancerBySpringCGLIB$$38e4f081.SpecialOperationStatus(<generated>) at sun.reflect.GeneratedMethodAccessor153.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84) at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54) at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:93) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748)

2023-06-10 上传