Emacs Yaml 编辑

8
有没有 Emacs Lisp 插件可以让我轻松地编辑或输入 YAML 文件的数据呢?
例如:
--- 示例 YAML 文件 --- Name: Addr: City: State: Zip:
Phone: Email --- 结束 ----
当在 Emacs 中打开文件时,光标会自动放置在第一个 YAML 键上。在这种情况下是 "Name:",当我输入完姓名后,按回车键,它会自动移到下一个键,"Addr:"。
前/后制表键可用于在键之间前后移动。
有没有类似的功能呢?
谢谢!
5个回答


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

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

jump-char 可以帮助你。它可以让你快速跳转到下一个/上一个字符出现的位置。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接