2012-09-28 88 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) 
      ))