Emacs Go Lang结构对齐文本

时间:2018-11-01 15:19:35

标签: emacs

在运行中,我们有这样的结构:

type person struct {  
   firstname string  
   lastname string  
   age int  
   address string  

}  

我希望它像这样对齐

type person struct {
   firstname string
   lastname  string
   age       int
   address   string

}  

之类的东西

const (  
    constant1 int = 1  
    c2 int = 2  
    const3 int = 3  
)    

const (    
    constant1   int = 1  
    c2          int = 2  
    const3      int = 3  
)  

我知道align-regexp应该可以在这里提供帮助,但我无法弄清楚。

3 个答案:

答案 0 :(得分:0)

您尝试过\b([B-Z])\1A|([B-Z])A\2|A([B-Z])\3\b 吗?它将使用go-modefmt来格式化您的代码。

答案 1 :(得分:0)

是的,我正在使用go-mode和go-fmt都没有对齐

答案 2 :(得分:0)

go-mode应该运行gofmtgoimports(如果将其放入保存挂钩中)。

(use-package go-mode
  :config
  (when (executable-find "goimports")
    (setq gofmt-command "goimports"))
  (defun jpk/go-mode-hook ()
    (add-hook 'before-save-hook #'gofmt-before-save nil 'local))
  (add-hook 'go-mode-hook #'jpk/go-mode-hook)
  )