gpt4 book ai didi

C# Emacs模式题——缩进和构建

转载 作者:太空狗 更新时间:2023-10-29 20:08:48 25 4
gpt4 key购买 nike

我安装了 emacs C# mode .

.emacs文件如下

(require 'csharp-mode)(setq auto-mode-alist      (append '(("\\.cs$" . csharp-mode)) auto-mode-alist))(defun my-csharp-mode-fn ()  "function that runs when csharp-mode is initialized for a buffer."  (setq default-tab-width 4))(add-hook  'csharp-mode-hook 'my-csharp-mode-fn t)

It works pretty fine, but I see the block ({..}) is aligned what I intended. I mean, in some cases I have this.

private static int StringCompare(string x, string y)
{
int result;
if (x == null)
{

}
}

当我期待这个

private static int StringCompare(string x, string y)
{
int result;
if (x == null)
{

}
}

除此之外,我的代码总是有 2 个缩进,但我希望它是 4 个。

我的问题是

  • 如何在 C# emacs 模式下控制缩进?
  • 如何控制“{”和“}”的缩进与之前的代码相同。
  • C#模式是否提供在编辑器中通过命令编译生成exe/dll文件?

我在 Mac OS X/mono 上使用 emacs C# 模式。

已添加

我发现 C# 模式也可以使用 C 模式,所以 M-x c-set-style 可以,而 awk 风格只适合我。问题是每当我使用 c 模式时,我都必须打开 awk 模式。有没有办法在 c 模式下自动运行“M-x c-set-style and awk”模式?

最佳答案

将这些行添加到您的my-csharp-mode-fn:

; Set indentation level to 4 spaces (instead of 2)
(setq c-basic-offset 4)
; Set the extra indentation before a substatement (e.g. the opening brace in
; the consequent block of an if statement) to 0 (instead of '+)
(c-set-offset 'substatement-open 0)

或者,您可以将它们添加到您的通用 C 模式 Hook 中,该 Hook 适用于所有与 C 模式相关的模式:C、C++、Objective-C、Java、C# 等:

(defun my-c-mode-common-hook ()
(setq c-basic-offset 4)
(c-set-offset 'substatement-open 0))
(add-hook 'c-mode-common-hook 'my-c-mode-common-hook)

参见 CC mode documentation有关自定义缩进的具体细节。

关于C# Emacs模式题——缩进和构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3954607/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com