如何在 Emacs Org-Mode 中锁定表字段(使它们只读,常量)?

Posted

技术标签:

【中文标题】如何在 Emacs Org-Mode 中锁定表字段(使它们只读,常量)?【英文标题】:How to lock table fields in Emacs Org-Mode (make them read only, constant)? 【发布时间】:2013-02-20 08:57:58 【问题描述】:

我正在制作一个兵棋推演游戏的电子表格。有些领域有 定义单个模型的点值的常量值,我想 使这些字段只读/常量(不修改它们 偶然)。这是 Org-Mode 中的演示列表,有两个 骷髅单位(16 和 24 个模型)和两个骨龙(1 和 2 模型),两者都有升级(总结的附加值):

#+CONSTANTS: SKELETON=6 SKELETON_BOW=2 SKELETON_SWORD=1
#+CONSTANTS: BONE_DRAGON=60 BONE_DRAGON_POISON=20
|---+-------------+------+------+-----+----+-----|
|   | _UNIT_      | P[1] | N[2] |   + |  N |   + |
|---+-------------+------+------+-----+----+-----|
| # | SKELETON    |    6 |   16 |  96 | 24 | 144 |
| # | Bow         |    2 |    0 |   0 | 12 |  24 |
| # | Sword       |    1 |   16 |  16 | 12 |  12 |
| # | *SUMS*      |      |      | 112 |    | 180 |
| # | *TOTAL*     |  292 |      |     |    |     |
|---+-------------+------+------+-----+----+-----|
| # | BONE_DRAGON |   80 |    1 |  80 |  2 | 160 |
| # | Poison      |   20 |    1 |  20 |  0 |   0 |
| # | *SUMS*      |      |      | 100 |    | 160 |
| # | *TOTAL*     |  260 |      |     |    |     |
|---+-------------+------+------+-----+----+-----|
| # | *TOTAL*     |  552 |      |     |    |     |
|---+-------------+------+------+-----+----+-----|
#+TBLFM: @2$3=$SKELETON::@2$5=(@2$3*@2$4)::@2$7=(@2$3*@2$6)::@3$3=$SKELETON_BOW::@3$5=(@3$3*@3$4)::@3$7=(@3$3*@3$6)::@4$3=$SKELETON_SWORD::@4$5=(@4$3*@4$4)::@4$7=(@4$3*@4$6)::@5$5=vsum(@2$5..@4$5)::@5$7=vsum(@2$7..@4$7)::@6$3=(@5$5+@5$7)::@7$3=$BONE_DRAGON::@7$5=(@7$3*@7$4)::@7$7=(@7$3*@7$6)::@8$3=$BONE_DRAGON_POISON::@8$5=(@8$3*@8$4)::@8$7=(@8$3*@8$6)::@9$5=vsum(@7$5..@8$5)::@9$7=vsum(@7$7..@8$7)::@10$3=(@9$5+@9$7)::@11$3=(@6$3+@10$3)

[1] Points per model
[2] Number of models

如您所见,我已经找到了一个带有常量的解决方案(constant.el 卡斯滕·多米尼克 (Carsten Dominik) 的包装 http://staff.science.uva.nl/~dominik/Tools/)。

已取得的成就:

恢复 PPM 的意外修改 常量只定义一次

是否有标准的 Org-Mode 方法可以使字段真正只读? 我 在组织模式手册中没有找到答案。

【问题讨论】:

【参考方案1】:

不确定 org-mode 方式,但"Emacs: make portion of buffer readonly" 可能会有所帮助。它的作用是使用 put-text-property 在缓冲区中设置只读属性。

【讨论】:

感谢您的链接,'make-region-read-only' 方法非常方便:)。不幸的是,它不适用于 Org Mode 表格,因此无法对其进行编辑。

以上是关于如何在 Emacs Org-Mode 中锁定表字段(使它们只读,常量)?的主要内容,如果未能解决你的问题,请参考以下文章

使用emacs org-mode,如何在项目中发布未更改的文件?

如何在 emacs org-mode 中配置depend.el?

在 emacs 中混合 org-mode 和 c-mode

emacs 控制台模式 Org-mode 删除线未按预期显示

如何定义键绑定以在 emacs 中的次要模式之间切换?

用Org-mode管理emacs配置