如何在 java 模式下配置 emacs,使其不会自动对齐方法参数

发布于 2024-08-04 04:00:17 字数 239 浏览 6 评论 0原文

在 emacs 中,当我输入:

public void foo(String one,
    String two) {

它会像这样制表:

public void foo(String one,
                String two) {

我宁愿它没有,而只是像其他行延续一样对齐参数。我该如何配置它不这样做?

In emacs, when I type:

public void foo(String one,
    String two) {

It tabifies like this:

public void foo(String one,
                String two) {

I'd rather it didn't, and just aligned parameters like other line continuations. How can I configure it not to do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

孤檠 2024-08-11 04:00:17

这来自 Emacs CC 模式的信息手册,在 Windows 上使用 GNU Emacs 23.1:

  1. 开始构建未正确缩进的 Java 类。就您而言,正是您在上面输入的内容。
  2. 将光标移至未正确缩进的行的开头。在你的情况下,“字符串二){”。
  3. 点击 Cc Cs (c-show-syntropic-information) 询问 Emacs 它认为您正在查看的语法元素。在你的情况下,它会说类似 ((arglist-cont-nonempty nm)) 的内容。
  4. 使用 Cc Co (c-set-offset) 告诉它您要更改此语法元素的缩进级别。
  5. 它默认为它认为的语法元素,例如arglist-cont-nonempty。如果默认值正确,只需按 RET 键即可。
  6. 现在它想知道使用什么表达式来计算偏移量。在您的情况下,默认值是 elisp 表达式。删除它,然后使用一个加号 + 代替。
  7. 测试它以确保它正常工作:在不同的行上按 TAB 键,或者 Mx indent-region 或类似的。
  8. 要使其永久存在,请将其添加到您的 .emacs 文件中:

(setq c-offsets-alist '((arglist-cont-nonempty . +)))

This comes from the Info manual for Emacs CC Mode, using GNU Emacs 23.1 on Windows:

  1. Start building your Java class that's not indenting properly. In your case, exactly what you've typed above.
  2. Move your cursor to the start of the line that's not indenting properly. In your case, "String two) {".
  3. Hit C-c C-s (c-show-syntactic-information) to ask Emacs what syntax element it thinks you're looking at. In your case, it'll say something like ((arglist-cont-nonempty n m)).
  4. Use C-c C-o (c-set-offset) to tell it you want to change the indentation level for this syntactic element.
  5. It defaults to what it thinks that syntactic element is, e.g., arglist-cont-nonempty. Just hit RET if that default is correct.
  6. Now it wants to know what expression to use to calculate the offset. In your case, the default is an elisp expression. Delete that, and just use a single plus sign + instead.
  7. Test it out to make sure it's working correctly: Hit TAB a bunch on different lines, or M-x indent-region or similar.
  8. To make it permanent, add this to your .emacs file:

(setq c-offsets-alist '((arglist-cont-nonempty . +)))

余生共白头 2024-08-11 04:00:17

我喜欢在每个源文件的第一行指定模式样式。尝试:

// -*- 模式:java; c-file-style: "stroustrup" -*-

这将为您提供合理的制表符。您也可以尝试“k&r”。

I like to specify the mode style in each source file's first line. Try:

// -*- mode: java; c-file-style: "stroustrup" -*-

This will give you rational tabification. You might also try "k&r".

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文