Emacs: Difference between revisions

Layer-09 (talk | contribs)
Revamped the page
remove empty links, redundent links, and improper formatting
Line 4: Line 4:
  | paradigm                = Functional, meta, reflective
  | paradigm                = Functional, meta, reflective
  | family                  = Lisp
  | family                  = Lisp
  | designed_by            = [[Richard Stallman]], [[Guy L. Steele, Jr.]]
  | designed_by            = Richard Stallman, Guy L. Steele, Jr.
  | developer              = [[GNU Project]]
  | developer              = [https://www.gnu.org/ GNU Project]
  | first_appeared          = 1985; 40 years ago
  | first_appeared          = 1985; 40 years ago
  | stable_release          = 29.4 / 22 June 2024; 11 months ago
  | stable_release          = 30.1 / 23 February 2025
  | os                      = Cross-platform
  | os                      = Cross-platform
  | license                = [[GNU General Public License]]
  | license                = [https://www.gnu.org/licenses/gpl.html GNU General Public License]
  | filename_extensions    = .el, .elc, .eln
  | filename_extensions    = .el, .elc, .eln
  | website                = [https://www.gnu.org/software/emacs gnu.org/emacs]
  | website                = [https://www.gnu.org/software/emacs gnu.org/emacs]
}}[https://www.gnu.org/software/emacs/ Emacs] is a free and open-source text editor known for its exceptional extensibility and adaptability. It can be customized into anything from a simple editor to a full development environment or productivity tool. Emacs features built-in self-documentation, syntax-aware editing, and a vast ecosystem of community-developed packages.<ref>https://www.gnu.org/software/emacs/</ref>
}}<strong>Emacs</strong> is a free and open-source text editor known for its exceptional extensibility and adaptability. It can be customized into anything from a simple editor to a full development environment or productivity tool. Emacs features built-in self-documentation, syntax-aware editing, and a vast ecosystem of community-developed packages.<ref>https://www.gnu.org/software/emacs/</ref>


For an easier introduction, [https://doomemacs.org Doom Emacs] offers a pre-configured Emacs framework with modern defaults and features like IDE tools, note-taking, and task management.<ref>https://doomemacs.org</ref>
For an easier introduction, [https://doomemacs.org Doom Emacs] offers a pre-configured Emacs framework with modern defaults and features like IDE tools, note-taking, and task management.


There is an official Matrix room for Nix/Emacs: [https://matrix.to/#/#emacs:nixos.org #emacs:nixos.org].
There is an official Matrix room for Nix/Emacs: [https://matrix.to/#/#emacs:nixos.org #emacs:nixos.org].
Line 23: Line 23:


To temporarily use Emacs in a shell environment without modifying your system configuration, you can run:
To temporarily use Emacs in a shell environment without modifying your system configuration, you can run:
<syntaxhighlight lang="bash">
<syntaxhighlight lang="console">
nix-shell -p emacs
$ nix-shell -p emacs
</syntaxhighlight>
</syntaxhighlight>
This makes the Emacs editor available in your current shell. You can then launch Emacs by typing `emacs`.
This makes the Emacs editor available in your current shell. You can then launch Emacs by typing <code>emacs</code>.


==== System setup ====
==== System setup ====


To install Emacs system-wide, making it available to all users, add the following to your <code>/etc/nixos/configuration.nix</code>:
To install Emacs system-wide, making it available to all users, add the following to your configuration:
<syntaxhighlight lang="nix">
<syntaxhighlight lang="nix">
# Example for /etc/nixos/configuration.nix
# Example for /etc/nixos/configuration.nix
Line 283: Line 283:


======  Without flakes ======
======  Without flakes ======
For installing one of the unstable branches of Emacs, add the following lines to {{ic|/etc/nixos/configuration.nix}}:
For installing one of the unstable branches of Emacs, add the following lines to your configuration file:
{{file|configuration.nix|nix|<nowiki>
{{file|configuration.nix|nix|<nowiki>
{
{
Line 330: Line 330:


==== Plasma taskbar grouping ====
==== Plasma taskbar grouping ====
To fix/workaround [[Plasma]] grouping Emacs incorrectly (confusing emacs.desktop with emacsclient.desktop), perform the following:
To fix/workaround [[KDE|Plasma]] grouping Emacs incorrectly (confusing emacs.desktop with emacsclient.desktop), perform the following:


* Open Emacs
* Open Emacs
Line 361: Line 361:
* [https://search.nixos.org/options?channel=unstable&query=services.emacs NixOS options for Emacs services] – System-level Emacs configuration.
* [https://search.nixos.org/options?channel=unstable&query=services.emacs NixOS options for Emacs services] – System-level Emacs configuration.
* [https://discourse.nixos.org/search?q=emacs Emacs discussions on NixOS Discourse] – Community tips, troubleshooting, and use cases.
* [https://discourse.nixos.org/search?q=emacs Emacs discussions on NixOS Discourse] – Community tips, troubleshooting, and use cases.
* [[Doom Emacs]] – A popular Emacs configuration framework.
* [https://doomemacs.org Doom Emacs] – A popular Emacs configuration framework.
* [https://github.com/nix-community/emacs-overlay Emacs Overlay on Nixpkgs] – For nightly builds and additional Emacs packages.
* [https://github.com/nix-community/emacs-overlay Emacs Overlay on Nixpkgs] – For nightly builds and additional Emacs packages.
* [[Text Editor]] – Comparison with other text editors available in NixOS.


== References ==
== References ==