

GitHub - NixOS/nix-mode: An Emacs major mode for editing Nix expressions.
source link: https://github.com/NixOS/nix-mode
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

nix-mode
An Emacs major mode for editing Nix expressions. There is also a manual available at nix-mode.org.
Submodes
A quick list of what is provided.
nix-mode.el
This is the main usage of nix-mode. This provides basic handling of .nix files. Syntax highlighting and indentation support using SMIE are provided. nix-mode can be used with the following snippet:
(require 'nix-mode)
(add-to-list 'auto-mode-alist '("\\.nix\\'" . nix-mode))
or with use-package:
(use-package nix-mode
:mode "\\.nix\\'")
nix.el
nix.el contains some miscellaneous tools for Nix developers. Interactive functions include:
-
nix-unpack - unpack source of a Nix attribute.
To use this just type:
M-x nix-unpack
Followed by your Nix path & attribute path.
-
nix-build - build a Nix derivation.
This is meant to work similarly to M-x compile. It will use your current directory & build it if there is a default.nix there.
nix.el also provides some basic functions for interfacing with Nix. Some variables are provided to point to the Nix binaries that can be used in Lisp code:
- nix-executable
- nix-build-executable
- nix-instantiate-executable
- nix-store-executable
- nix-shell-executable
Other useful functions for Lisp scripts are provided:
- nix-system - Get the current system, detected by Nix
nix-flake.el
nix-flake.el provides support for flake commands. These commands are experimental as of Nix 2.4.
It uses transient.el to provide a magit-like interface. To run a command on the current flake, type:
M-x nix-flake
You can also initialize a flake from a template:
M-x nix-flake-init
nix-repl.el
nix-repl.el has two purposes.
First, it provides an interface for completion, used by nix-company.el.
Second, it provides an interactive function to open a repl. You can open this with:
M-x nix-repl
nix-store.el
This file provides a command M-x nix-store-show-path
. The command displays an
overview of a store path. The information it shows is the realisation status,
the hash and the size of the store path. Also it shows lists of derivers,
references, referrers and requisites of the respective path.
You can change the order in which that information is show. See the
documentation of the function nix-store-show-path
for more information.
nix-prettify-mode.el
When nix-prettify-mode is enabled, hash-parts of the Nix store file names are
prettified, i.e. displayed as nix-prettify-char
character (…
by default.).
This is based on a similar mode for Guix: Prettify Mode (Emacs-Guix Reference Manual).
Origins
This repository is based off of the nix-mode.el file originally located in the Nix repository at misc/emacs/nix-mode.el. Please see the CHANGELOG file for a list of changes.
Other Emacs packages
@shlevy has an excellent package for integrating nix-shell into emacs. It is available at shlevy/nix-buffer.
@travisbhartwell also has some package dealing with Nix. They are available at travisbhartwell/nix-emacs.
Recommend
-
179
About Improved JavaScript editing mode for GNU Emacs (description here). For some of the latest changes, see
-
203
web-mode.el web-mode.el is an emacs major mode for editing web templates aka HTML files embedding parts (CSS/JavaScript) and blocks (pre rendered by client/server side engines). web-mode.el is compatible with many...
-
36
html template editing for emacs web-mode.el About web-mode.el is an autonomous emacs major-mode for editing web templates. HTML documents can embed parts (CSS...
-
15
Files Permalink Latest commit message Commit time
-
18
yard-mode Rudimentary support for fontifying YARD tags and directives in ruby comments. Installation Use MELPA: M-x package-install yard-mode. Ad...
-
18
Files Permalink Latest commit message Commit time
-
8
pip-requirements.el This is a major mode for editing pip requirements files, with the following features: Syntax highlighting Togglable comments Auto completion of package names from PyPI A...
-
13
Emacs major-mode to work with Beancount ledger files This package provides beancount-mode an Emacs major-mode implementing syntax...
-
15
-
12
Emacs: Vile Mode (VIm Like Editing)
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK