gpt4 book ai didi

emacs - 在 Emacs Paredit 中交换括号和方括号

转载 作者:行者123 更新时间:2023-12-01 07:14:48 25 4
gpt4 key购买 nike

如何在 paredit 模式下定义交换括号和方括号的命令?

最佳答案

所以任务是转这个,例如:

(blah
(a (b)
c))

进入这个:
(blah
[a (b)
c])

使用 paredit 模式,移动到表达式的开头 (a ..)进而:
C-M-SPC [ <right> M-s

没有 paredit,但仍希望在转换期间保持平衡的 parens,移至 a然后按 C-M-SPC多次直到出错,然后(假设 CUA 模式打开):
C-x <timeout> <right> <backspace> <backspace> [ ] <left> C-v

嗯,这很复杂,所以让我们坚持使用 paredit 模式版本,并尝试从中创建一个命令。键盘宏编辑器会告诉您正在使用的命令的名称,因此您至少可以想出以下代码:
(defun my-switch-to-square ()
"Change (..) to [..]."
(interactive)
(mark-sexp --)
(paredit-open-square --)
(right-char --)
(paredit-splice-sexp --))
--表示我们尚未决定的部分代码。阅读代码中每个函数的文档后,您将了解要传递哪些参数,并且无需调用 mark-sexp .重写文档字符串并添加对 left-char 的调用后,你最终得到的代码是:
(defun my-switch-to-square ()
"Change |(..) to |[..]. | is point position."
(interactive)
(paredit-open-square 1)
(right-char 1)
(paredit-splice-sexp)
(left-char 1))

关于emacs - 在 Emacs Paredit 中交换括号和方括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14213173/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com