jq-mode
is an emacs major mode for editing jq-scripts.
- Download jq-mode.el and put it in a directory somewhere.
- Add the following to your .emacs file
(add-to-list 'load-path "/path/to/jq-mode-dir")
(autoload 'jq-mode "jq-mode.el"
"Major mode for editing jq files" t)
(add-to-list 'auto-mode-alist '("\\.jq$" . jq-mode))
Now jq-mode will load whenever you visit a file whose name ends
with .jq. Alternatively, run M-x jq-mode
in an existing
buffer containing jq commands.
jq-mode
can also be used interactively in a JSON buffer. If you
add the following to your .emacs file
(with-eval-after-load "json-mode"
(define-key json-mode-map (kbd "C-c C-j") #'jq-interactively))
or you can call M-x jq-interactivly
. jq-interactively
runs the
expression that is written in the minibuffer iteratively over the
JSON buffer. Press C-g
to abort, C-j
for newline, RET
commits
any changes.
It is possible to use yq to process yaml with the interactive mode instead:
(setq jq-interactive-command "yq"
jq-interactive-font-lock-mode #'yaml-mode
jq-interactive-default-options "--yaml-roundtrip")
jq-mode
provides ob-jq
for working with literate programming in
Org mode.
Add jq
under org-babel-load-languages
in your .emacs file
(org-babel-do-load-languages 'org-babel-load-languages
'((jq . t)))
ob-jq
provides some additional header arguments:
:compact
- Add
-c
tojq
arguments list suppressing pretty printing
If you have a problem or would like to see it get better in a specific way, feel free to drop an issue in the issue tracker. Enjoy!