Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/bbatsov/guru-mode

Learn to use Emacs the way it was meant to be used (the Emacs guru way)
https://github.com/bbatsov/guru-mode

Last synced: about 2 months ago
JSON representation

Learn to use Emacs the way it was meant to be used (the Emacs guru way)

Awesome Lists containing this project

README

        

# guru-mode

[![License GPL 3][badge-license]](http://www.gnu.org/licenses/gpl-3.0.txt)
[![MELPA](http://melpa.org/packages/guru-mode-badge.svg)](http://melpa.org/#/guru-mode)
[![MELPA Stable](http://stable.melpa.org/packages/guru-mode-badge.svg)](http://stable.melpa.org/#/guru-mode)

[badge-license]: https://img.shields.io/badge/license-GPL_3-green.svg

## Synopsis

Guru mode disables (or warns on) some generic keybindings and suggests the use of the
established and more efficient Emacs alternatives instead. Here are a few examples:

* It will teach you to avoid the arrow keys and use keybindings like `C-f`, `C-b`, etc.
* It will teach you to avoid keybindings using Home, End, etc.
* It will teach you to avoid Delete/Backspace.

-------------

[![ko-fi](https://www.ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/bbatsov)
[![Patreon](https://img.shields.io/badge/patreon-donate-orange.svg)](https://www.patreon.com/bbatsov)

You can support my work on `guru-mode` and my other Emacs packages via
[PayPal](https://www.paypal.me/bbatsov),
[ko-fi](https://ko-fi.com/bbatsov),
[Patreon](https://www.patreon.com/bbatsov) and
[GitHub Sponsors](https://github.com/sponsors/bbatsov).

## Installation

### Manual

Just drop `guru-mode.el` somewhere in your `load-path`. I favour the
folder `~/.emacs.d/vendor`:

```emacs-lisp
(add-to-list 'load-path "~/emacs.d/vendor")
(require 'guru-mode)
```

### MELPA

If you're an Emacs 24 user or you have a recent version of package.el
you can install guru-mode from the [MELPA](https://melpa.org/) repository.

### Emacs Prelude

`guru-mode` is naturally part of the
[Emacs Prelude](https://github.com/bbatsov/prelude). If you're a Prelude
user - `guru-mode` is already properly configured and ready for
action.

## Usage

You can enable `guru-mode` globally like this:

```emacs-lisp
(guru-global-mode +1)
```

Most likely you'd like to enable `guru-mode` only in specific modes
(like `prog-mode` in Emacs 24):

```emacs-lisp
(add-hook 'prog-mode-hook 'guru-mode)
```

If you only want to get warnings when you the arrow keys use the following config:

```emacs-lisp
(setq guru-warn-only t)
```

You can extend the list of keybindings covered by `guru-mode` like this:

``` emacs-lisp
(add-to-list 'guru-affected-bindings-list '("" "M-b" left-word))
```

The list you're adding is of the format (discouraged keybinding, recommended keybinding, command).

**Note:** `guru-mode` operates only on global keybindings and it will never interfere with
some mode-specific keybindings.

## Known issues

Check out the project's
[issue list](https://github.com/bbatsov/guru-mode/issues?sort=created&direction=desc&state=open)
a list of unresolved issues. By the way - feel free to fix any of them
and send me a pull request. :-)

## Contributors

Here's a [list](https://github.com/bbatsov/guru-mode/contributors) of
all the people who have contributed to the development of guru-mode.

## Bugs & Improvements

Bug reports and suggestions for improvements are always
welcome. GitHub pull requests are even better! :-)

Cheers,

[Bozhidar](http://twitter.com/bbatsov)