vim - Clojure 中的 Slurpage 和 Barfage

标签 vim clojure s-expression paredit

我正在使用vim-sexpvim-sexp-mappings-for-regular-people用于编辑 Clojure 文件的插件。我不太明白 slurpbarf 命令到底是做什么的。

我尝试使用它们,似乎它们在相邻表单的开头/结尾处插入/删除表单。那是对的吗?如果不是,slurpbarf 的正确定义是什么?

最佳答案

slurping 和 barfing 是使用现代结构代码编辑器之一的基本操作/概念。习惯了它们之后,如果没有它们,我完全无法编辑代码。在和我一起整天写 clojure 的大约 20 个人中,他们都一直在使用这些。所以说它们“对 lisp 程序员有帮助”是一种非常委婉和礼貌的轻描淡写。

slurp:(动词)

“将点周围的表达式一侧的项目包含到表达式中”

呕吐:(动词)

“从表达式中排除点周围表达式中最左边或最右边的项”

以及一些示例。

1 2 (3 4) 5 6

向右吸:

1 2 (3 4 5) 6

右呕吐:

1 2 (3 4) 5 6

向左发出声音:

1 (2 3 4) 5 6

呕吐左侧:

1 2 (3 4) 5 6

我们又回到了起点。

当我进行介绍 paredit 的演讲/演示时,我通常只留给学生/与会者这两个概念,因为我觉得它们足以开始获得结构编辑的好处,而不会感到不知所措。一旦您对这些感到满意,然后通过学习通过表达而不是字符向前/向后和向上/向下移动来继续结构导航

尽管它列出了 emacs 键绑定(bind),我仍然强烈推荐 Peter Rincker 在他的答案中提到的 paredit 动画指南。

关于vim - Clojure 中的 Slurpage 和 Barfage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30177987/

相关文章:

linux - 无法在 Ubuntu trusty64 上加载 Vim 插件

vim - 如何在vim中只编写一种模式以两种方式交换两个字符串

Vim 折叠 : how to hide all the single lines not containing a search pattern (or fold zero line)?

clojure - clojure中断言为真时如何返回对应的数字

concurrency - 如何从 clojure future 中的错误中获取堆栈跟踪?

performance - 使用 Clojure 宏内联函数

c++ - 使用 boost::proto 构建 s-expression

parsing - 语法和 s 表达式有什么区别

vim - 如何查看 vim 中特定键的映射?

recursion - 读取深度嵌套的树会导致堆栈溢出