Emacs的Tab

 

Emacs的Tab

hanlray@gmail.com
Reversion:0.5 Date:2006/08/10

当在buffer里按下Tab键时是什么情况?插入一个tab字符?indent?如果是indent又是如何indent的呢?想要更改indent的宽度该怎么办呢?下面以XHTML这个Major Mode为例,看看emacs是怎样处理的。

  • 用C-h c查看Tab键绑定到了indent-for-tab-command命令上
  • 用C-h f查看indent-for-tab-command函数的描述,发现其依赖一个变量tab-always-indent来动作
  • 用C-h v查看tab-always-indent变量的描述:如果其值为t,indent当前行;如果其值为nil,当光标在left margin(当前行的indentation里)时,indent当前行,否则插入一个tab字符。当前值为t。
  • 怎样indent当前行?由变量indent-line-function决定,其值是实现indent的函数,用C-h v查看其值为sgml-indent-line
  • 不想去看sgml-indent-line是怎么indent的,因为有些indent的算法是比较复杂的,只要知道那些变量可以控制indent的效果就可以了
  • 用C-h m查看当前Mode的描述:XHTML Mode基于SGML mode,用C-h v html-SPC和C-h v sgml-SPC来查看可用变量
  • 发现sgml-basic-offset控制着indent的宽度,不过当前值为2,正合我意,否则之间就可以在该变量描述的那个buffer里用customize对该值进行修改
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值