2012-09-28 15 views
7

c'è qualche componente aggiuntivo di Emacs Lisp che mi consente di modificare o inserire facilmente i dati nel file yaml.Emacs Yaml Editing

Ad esempio:

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

Phone: 
Email 
--- End ---- 

Quando il file viene aperto in Emacs, il cursore sarà posizionato automaticamente al primo tasto Yaml. In questo caso "Nome:", quando termino di inserire un nome dopo "Nome:" e premi Invio, si passerà automaticamente alla chiave successiva. in questo caso "Addr:"

la scheda avanti/indietro può essere utilizzata per spostarsi avanti e indietro tra i tasti.

C'è qualcosa là fuori per questo?

Grazie!

risposta

1

È possibile definire una macro personalizzata che faccia ciò che si desidera.

Potrebbe qualcosa di simile:

;; 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) 

Se questo non è esattamente quello che stai cercando si può scrivere il proprio macro. Vedere http://emacswiki.org/emacs/KeyboardMacros

+0

ho pieced tutti questi insieme: –

0

jump-char potrebbe aiutare. Ti consente di passare rapidamente alla ricorrenza successiva/precedente di un personaggio.

3

raccolgo i pezzi dalla rete e ha ottenuto questo:

(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) 
      ))