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上,我现在使用的方法是,先将完整的需求讲出,然后得到结果如果不能运行,大概理解框架。然后将框架中的功能简化,验证确认得到正确的框架后,将框架中的内容分开再寻求答案,然后将整个程序拼出来。

海上一民工

Related