Emacs那坑爹的缩进
oaklet
2012-12-30
写python脚本用sublime比较合适,毕竟sublime也依靠了python,原生支持的不错
|
|
jamcode
2013-02-26
aran 写道 jamcode 写道 可能你没明白我说的问题。问题是Emacs的缩进总是按对应mode的语法来,不能自由缩进,当比如javascript-mode的语法缩进有问题的时候,你就只有自我腌割了。有些缩进的处理,Emacs的一些mode都处理不好。 比如PHP中的Here Doc String的写法: $s=<<<DOC asfsa asdfsa adfasdfsda adfasdf asdfsaf asfsadf sdafsafsa DOC; 你输入上面的字符串试试,注意其中的空白都是Tab 你说A问题,然后A有了回复,你说你在说B问题。现在你说的B问题,我这也正常。TAB键是个多功能键,你连什么是缩进什么跳格都没搞清楚,上来就是XX太操蛋了,你说是你的问题还是XX的问题?关键你要解决什么问题,你难道要写一句代码同时包含JS,python,php等语言? “问题是Emacs的缩进总是按对应mode的语法来” >>>只有在相关mode里做了设置,才会按对应的设置去显示,不然是按全局配置显示。 abceeeeeeeeeeeee = [ a : 1, b : 2, ]; 你所说的这代码,我输入的时候没有用到YASnippet模板,就是正常的输入,并且支持C-M-\格式化,真没"腌割"EMACS。 “有些缩进的处理,Emacs的一些mode都处理不好。” >>>哪些mode在你眼是处理的好的? 最后,我很好奇,LZ是做啥开发的?在配置EMACS上花了多少时间?能把你的EMACS配置帖出来吗? 问题很简单。不对Emacs做任何配置时 emacs -q启动 Text模式(随便打开一个txt文件 ) 输入几行文字 引用 sadf asdfs asdfs 然后选中这三行文字。敲TAB。这里Emacs执行的是indent region。 然后再选中这三行文字(这时这三行文字前面都有一级缩进了),再敲一次TAB。 结果就菊花残成楼梯了 这说的是Text Mode下的行为,这个不成问题,毕竟一般不用这MODE。 TextMode下,不选中,直接敲TAB,是输入TAB字符。 但换到PHP-Mode,Python-Mode等MODE时,就出现问题了。 TAB键被占用。你想输入TAB字符。就得C-q tab。 在注释及string中的时候,尤其是DOC String。敲TAB根本就没有作用了。要不断C-q tab。 说到这里明白了没有啊。 这里问题就一个: 引用 各种MODE都用绑定TAB键调用缩进命令。当这些MODE的缩进方式有问题或与项目代码规范不符合时,这时要自己进行手工缩进了就,因为代码要用TAB字符缩进时,输入TAB字符很麻烦。而且有些mode很不智能,不能识别我在comment,string,doc string中敲Tab,理所当然是要输入TAB字符。怎么会去缩进呢?string怎么个缩进法 |