Questions tagged «indentation»

缩进用于通过指示块,闭包,条件和其他构造来组织代码。它使代码更易于阅读,并且在某些语言中用于处理控制流。

2
如何禁用自动缩进新行?
我最近将emacs升级到了24.4.1版,新行的缩进有所改变。当我命中时,enter我希望在出现光标的点处只有“裸露”的换行符,特别是如果我在该行的中间,则应将该行拆分,并且不删除任何字符,包括空格。不幸的是,这种情况并非如此。 这是示例: a b 当我将光标放在后面a并点击时,enter我得到: a b 虽然应该 a b 我在Google上搜索了一下,可能是由于自动缩进导致的,如何禁用此功能?我说的是文字或基本模式。

5
不同项目的压痕样式不同
我从事许多具有独特缩进样式的C项目。如何使Emacs进行每个项目的缩进设置而不污染.dir-locals.el文件的上游项目树?我想使用磁盘上的路径来匹配项目。

5
如何格式化代码(自动插入换行符,缩进等)?
我正在使用,spacemacs但大概这里需要emacs知识。 我有一个带有长行的JSON文件,让我们说这个来自json.org/example的JSON: {"menu": {"id": "file", "value": "File", "popup": {"menuitem": [{"value": "New", "onclick": "CreateNewDoc()"}, {"value": "Open", "onclick": "OpenDoc()"}, {"value": "Close", "onclick": "CloseDoc()"}]}}} 我希望emacs重新缩进,这对我来说意味着不要将行的最左字符更改为适当的缩进级别,而是将行分成几行。 如果使用spacemacs/indent-region-or-buffer(SPC j =),则文本完全不会更改。 我怎么能要求emacs打破这条漫长的路线并重新缩进以获得这样的东西: {"menu": { "id": "file", "value": "File", "popup": { "menuitem": [ {"value": "New", "onclick": "CreateNewDoc()"}, {"value": "Open", "onclick": "OpenDoc()"}, {"value": "Close", "onclick": "CloseDoc()"} ] } …

2
是否有任何清晰的SMIE文档?
我花了很多小时来尝试使任何形式的SMIE缩进规则/语法/事物都起作用。 是否有基于SMIE的小型,玩具或骨架模式的示例,其中包含有关其实际工作方式的文档,或者有关如何使用它的任何讨论?就是说,将表达式定义为以分号结尾的令牌字符串,而将块定义为括号之间的某些表达式,仅此而已。真的,真的很简单吗? 具体问题:在使用smie-config-show-indent时,有90%的时间得到响应':list-intro“”-> nil'。基于列表的表达式或表达式列表的定义是什么?为什么说nil并仍然缩进以下几行?我该如何更改? 其次:我的语法和我的smie规则之间是否有任何关系?我想是因为它们都传递到了smie-setup中,但是我找不到任何方式说“例如,当您看到一个'block'时,缩进内容”,例如,基于识别一个block的语法。 第三,SMIE似乎有很多“扎根”的规则。只需将其启动即可对括号,大括号和括号等进行一般处理。有什么办法可以看到这些规则或对其进行修改?还是语法表正在执行所有这些操作,而SMIE实际上根本没有执行任何操作(我开始怀疑)。 最后,当尝试调试SMIE时,我尝试做一个“编辑,评估模式缓冲区,转到其他缓冲区中的示例代码,MX <我的模式>,测试”循环,但是似乎每次行程都无法清除规则前一个周期。我如何确定定义派生模式是从干净的表开始的?我在那里(kill-all-local-variables)在其中,但这似乎还不够,我最终不得不关闭emacs。 我没有发布任何示例,因为除了突出显示(使用font-lock-defaults之外,我什至无法隐约地工作),我猜它甚至都不是SMIE。我需要一些实际的步骤。
18 indentation  smie 


2
完全禁用所有自动缩进
如何完全禁用Emacs中的所有自动缩进?我需要至少在基本模式下将其禁用,但是我可以在当前会话中全局禁用它。 在声明重复项之前,请阅读此问题的其余部分。 我发现的所有其他答案都是针对性更强的禁用缩进。我真的想完全禁用整个会话的所有自动缩进。 设置electric-layout-mode为nil无效。 细节 有时,我喜欢用Windows ASCII文本编辑器编写大型的Git提交消息。这些消息经常包含项目符号列表,代码块或其他在我的源文档中的准确格式有意义的内容。我的代码库是在Linux上的,并且我使用纯文本SSH客户端连接到该框。当Git进入Emacs来编辑提交消息时,我希望能够将源提交消息复制到Windows剪贴板,然后使用Windows粘贴命令将其粘贴。从Emacs的角度来看,我键入的是Windows文本文件中找到的内容。不幸的是,当Emacs看到缩进线时,它会添加自己的自动缩进,因此我沿着缓冲区的左边缘得到了这个巨大的空白三角形。 我正在使用GNU Emacs 24.3.1。 解决方法 我当前的解决方法是将Windows文本文件传输到由Linux主机安装的文件系统,将文件加载到Emacs,然后使用kill和yank传输内容。这有点笨拙。 例 这是一个示例文本块: a - b c d 通过MSWin粘贴将其粘贴到Emacs-under-ssh时,它的显示方式如下: a - b c d 如果我C-h l在粘贴后按,这就是我所看到的。请注意,换行是使用C-j而不是输入的RET。 a C-j C-j SPC SPC - SPC b C-j SPC SPC SPC SPC c C-j SPC SPC SPC SPC d C-j C-h l

1
如何在LaTeX / AUCTeX分项环境中缩进项目?
问:如何在LaTeX itemize环境中获得“正确的”缩进auctex? 在这里,我想和item一个itemize环境在一起: \item 相对于环境的开始,行缩进了两个空格 项目中的延续线相对于该\item行缩进了两个空格 这是我希望/期望看到的: \begin{itemize} \item Here's a really long item in a LaTeX itemize environment; note how the *initial* item line is indented two spaces, and the continuation lines are indented another two spaces. \end{itemize} 可以使用LaTeX-item-indent变量调整项目的初始缩进,该变量默认为-2。有了这个默认情况下,我得到的不良行为\item不被缩进,但我做得到延续行通过额外的两个空格被抵消的所需行为: \begin{itemize} \item Here's a really long item in a LaTeX …

3
通过缩进导航
我想基于缩进在文件的各行之间导航。该文件由缩进构成:比前一行缩进更多的行是前一行的子级,与前一行缩进相同的行是其同级。我主要在寻找三个命令: 移至下一个同级,即下一个具有相同缩进的行,跳过缩进较多的行,但不跳过缩进较少的行。 移至上一个同级,即在另一个方向上移至同一事物。 移至父级,即缩进较少的前一行。 该点的列位置不应更改。 这些是压痕结构化的数据,以类似物forward-sexp,backward-sexp和backward-up-list用于SEXP结构化数据。缩进对应于Haskell和Python等语言的程序结构;这些功能在这种情况下特别有用,但我并没有寻找任何特定于模式的内容(我的主要用例是另一种文件格式内的按意图构造的数据)。 着色缩进级别可以帮助使用Up/ 手动导航,Down但是我想要自动的东西。 这个超级用户问题与之类似,但要求较弱,并且目前没有满足我要求的答案。

1
换行的正确缩进
我有以下换行文字,尤其是当您使用很多Windows时: 我想知道是否可以像在Vim中那样更改包装文本的缩进: ) 确定时,似乎是AutoFillMode对此负责。我希望在Emacs 25中可以改善这一点。升级到Emacs 25的已编译二进制文件后,我会看到相同的行为。 所以我想知道是否可以通过其他方式解决此问题?

1
查看缩进不同于保存到磁盘的代码
我从事某些具有缩进样式的项目,这些项目我觉得很烦人。我想以某种缩进样式查看代码,但始终以规定的缩进样式保存到磁盘。 具体来说,我喜欢emacs多行函数参数缩进的默认样式... void foo(int a, int b, string c) 但是该项目是仅制表符的,所有内容均采用单缩进... void foo(int a, int b, string c) 我可以看到第一种情况,但可以分享第二种情况吗?

2
汇编源代码中更好的缩进和导航
当我编写C或Java代码时,它非常有规律,但是对于汇编(asm-mode),它是如此混乱。 我正在使用auto-complete和yasnippet。我创建了代码片段并正在使用它们,但是代码的组织和缩进是杂乱无章的。 哪些软件包可以帮助我: 轻松正确地缩进代码和注释,以便我可以看到每段代码在做什么; 浏览大量代码,因此我可以轻松地在代码段之间跳转?

4
如何自定义组织模式缩进?
之所以会出现这个问题,是因为我喜欢使用非等宽字体(Sabon,Minion,Garamond等)。这在使用org-indent-mode时会引起问题,因为标题下的文本现在与标题不对齐。例: 字体是格鲁吉亚。现在,如果我改用consolas: 我认为问题在于,在非等宽字体中,“空格”和*不会占用相同的空格。虽然我不知道该如何解决。我已经搜索了互联网,却找不到适合自己调整缩进的教程。我已经尝试阅读org-indent.el,但这对我来说是一个漫长的过程。非常感谢您的帮助!

1
使用AUCTeX自动缩进\ if语句
涉及if -like语句的AUCTeX原始tex代码的当前行为是在与周围条件相同的级别上缩进条件语句。即代码如 \if@sometoggle% \dosomething% \else% \doanotherthing% \fi% 显示为一大段文字。我想使AUCTeX代码段缩进如下: \if@sometoggle% \dosomething% \else% \doanotherthing% \fi% 这可能吗?

1
python自动缩进问题
我正在使用Emacs 24.4。在编写Python代码时,Emacs在缩进方面表现得很奇怪。 例如: for i in range(10): print(i) for i in range(10) 当我输入时:,Emacs在第三行的开头添加了一个不必要的缩进。这很奇怪,这是一个错误吗?

1
着色压痕等级
考虑以下两个快照:下面的第一个快照来自Python模式下的Emacs(使用Jedi和Elpy) 下面的第二个来自手动照相购物,前一个则是为了更容易区分这么多的压痕级别。 是否有任何软件包可以帮助实现后一种效果?在上面的示例中,我使用了两种颜色(足以将压痕级别与其相邻的颜色区分开),但是使用更多颜色的其他配色方案可以使导航更加容易。 请注意,在Emacs中,缩进字符由以下命令决定: # Insert multiple spaces for indentation: (setq indent-tabs-mode nil) # Insert TAB for indentation: (setq indent-tabs-mode nil)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.