2012-09-28 61 views
7

是否有任何Emacs lisp附加组件允许我轻松地在yaml文件中编辑或输入数据。Emacs Yaml编辑

例如:

 
--- sample yaml file --- 
Name : 
Addr : 
City : 
State: 
Zip : 

Phone: 
Email 
--- End ---- 

当文件被在Emacs打开时,光标将被自动放置在第一YAML键。在这种情况下,“Name:”,当我在“Name:”后输入一个名字并点击返回时,它将自动移到下一个键。在这种情况下“Addr:”

向前/向后标签可用于在键之间来回移动。

这里有什么吗?

谢谢!

回答

1

您可以定义一个自定义的宏来做你想做的事。

它可能是这样的:

;; define named macro 
(fset 'jump-next-colon 
    [?\C-f ?\C-s ?: ?\C- ? ]) 
;; assign shortcut ctrl+alt+j 
(global-set-key (kbd "C-M-j") 'jump-next-colon) 

如果这不是你在寻找什么,你可以编写自己的宏。请参阅http://emacswiki.org/emacs/KeyboardMacros

+0

我拼凑所有这些在一起: –

0

jump-char可以提供帮助。它可以让你快速跳到下一个/上一个角色的位置。

3

我收集位和网片,得到这个:

(defun yaml-next-field() 
    "Jump to next yaml field" 
    (interactive) 
    (search-forward-regexp ": *")) 
(defun yaml-prev-field() 
    "Jump to next yaml field" 
    (interactive) 
    (search-backward-regexp ": *")) 
(add-hook 'yaml-mode-hook 
      '(lambda() 
      (define-key yaml-mode-map "\C-m" 'newline-and-indent) 
      (define-key yaml-mode-map "\M-\r" 'insert-ts) 
      (define-key yaml-mode-map (kbd "C-<tab>") 'yaml-next-field) 
      (define-key yaml-mode-map (kbd "C-S-<tab>") 'yaml-prev-field) 
      ))