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怎么个缩进法



Global site tag (gtag.js) - Google Analytics