ChatGPT让我的Emacs学习更加高效快捷
缘起
学习资料少,小众,没有人解释,没有例子
达到的目的
解决各种操作问题
以前需要操作的问题,要么是在网上搜解决方案,终级手段是到emacs-china上发帖求助,大大提升了效率,节约了时间。
写elisp功能
原来有些如果想实现的功能,只能兴叹。自己也曾经试图学习过elisp,但是网上的资源相对于其它编程语言实在有限。适合我的根据实际案例来学习的教程基本没有。
有了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上,我现在使用的方法是,先将完整的需求讲出,然后得到结果如果不能运行,大概理解框架。然后将框架中的功能简化,验证确认得到正确的框架后,将框架中的内容分开再寻求答案,然后将整个程序拼出来。