ChatGPT让我的Emacs学习更加高效快捷
Table of Contents
缘起
学习资料少,小众,没有人解释,没有例子
达到的目的
解决各种操作问题
以前需要操作的问题,要么是在网上搜解决方案,终级手段是到emacs-china上发帖求助,大大提升了效率,节约了时间。
写elisp功能
原来有些如果想实现的功能,只能兴叹。自己也曾经试图学习过elisp,但是网上的资源相对于其它编程语言实在有限。适合我的根据实际案例来学习的教程基本没有。
有了gpt后,可以直接提出想要实现的功能,就能得到代码,并可以要求解释。这在之前是不能想像的。实现了一些我一直想要的功能。
阅读他人的配置
看到很多emacs的过来人都会介绍说,直接使用他人的配置。的确这是一个好方法,但是在实际操作中,像我这们的零基础如果直接使用他人的配置,如果出现问题根本不知道如何处理。
emacs的可配置性太强,不同的人有不同的需求,可能大量的配置是我并不需要的。在不同的操作系统下,可能也有所不同。如果是抄了几份配置,其中的冲突也是可能存在的。一旦出错,对于我这种来讲基本是无从下手的。因此我之前的配置是一条一条自己拼出来的,而且基本都需要了解大概是什么含义后才会用。了解的过程基本是看配置的注释和别人视频的介绍说明。
而现在可以每配置一条一条地输给GPT,他会不厌其烦地为你解释。
ChatGPT帮我达成的功能
emacs中,如果点击一个内部链接后,快速地回来
是的,您可以使用 org-mark-ring-goto 命令来返回到之前的位置。这个命令会将您之前访问的位置添加到一个标记环中,您可以使用 C-c C-SPC 快捷键来跳转回去。
具体步骤如下:
在您想要返回的位置,按下 C-c & 快捷键,将当前位置添加到标记环中。
在您点击链接跳转到其他位置后,按下 C-c C-SPC 快捷键,将光标移动回到之前的位置。
注意,C-c & 命令会将当前位置添加到标记环中,而不是将其替换为之前的位置。因此,您可以多次使用 C-c & 命令来添加多个标记,然后使用 C-c C-SPC 命令在它们之间切换。
另外,您也可以使用 C-u C-SPC 命令来跳转到之前的位置,这个命令会显示一个标记环列表,您可以选择要跳转的位置。
如何使*号加粗不空格
这是一个*加粗*的示例,这种情况是不会加粗的,必须在*前后都加一个空格,这在中文中就比较奇怪了
(with-eval-after-load 'org (setcar (nthcdr 0 org-emphasis-regexp-components) " \t('\"{[:alpha:]") (setcar (nthcdr 1 org-emphasis-regexp-components) "- \t.,:!?;'\")}\\[[:alpha:]") (org-set-emph-re 'org-emphasis-regexp-components org-emphasis-regexp-components))
这个问题GPT3.5没有解决,new bing解决了
在当前标题快速插入hugo导出所需要的属性
(defun ian/hugo-insert-export-file-name-and-id () "在当前标题下插入:EXPORT_FILE_NAME:属性,属性值为用户输入的文件名。 并生成id,要求输入文件名,输入文件名中如有空格 自动将空格替换为 "-"" (interactive) (org-id-get-create) ; 自动为标题创建id (let ((file-name (read-string "Enter file name: "))) (save-excursion (org-set-property "EXPORT_FILE_NAME" (replace-regexp-in-string " " "-" file-name)) ; 插入属性 (message "id和导出文件名添加完成。"))))
但也不是万能的
有的问题也未必能解答,
如何使 org-agenda 的buffer在右侧打开
给出的答案就都是胡扯的,有时甚至会编出并不存在的变量。
如何使//中显示斜体
在Emacs中不显示斜体,但在导出后是斜体。
new bing给出的答复是字体问题,说思源字体没这个问题,但我实际使用下来思源也无法显示斜体。根据emacs-china上的信息,可能是windows的问题。
如何在工具栏中添加一个按钮
写的elisp并不是每一个都能直接使用
即使是一些功能比较简单的,可能也需要调整一下,才能使用,更不要说指望GPT写个elisp插件了。
在elisp上,我现在使用的方法是,先将完整的需求讲出,然后得到结果如果不能运行,大概理解框架。然后将框架中的功能简化,验证确认得到正确的框架后,将框架中的内容分开再寻求答案,然后将整个程序拼出来。