Files

99 lines
3.3 KiB
Markdown
Raw Permalink Normal View History

2017-07-01 11:37:15 +02:00
# config-general-mode - Emacs major editing mode for Config::General config files.
2017-06-22 20:09:01 +02:00
2017-07-16 10:06:40 +02:00
[![MELPA](http://melpa.org/packages/config-general-mode-badge.svg)](http://melpa.org/#/config-general-mode)
2017-07-01 11:37:15 +02:00
## Screenshot
2017-06-22 20:09:01 +02:00
![demo](https://raw.githubusercontent.com/TLINDEN/config-general-mode/master/config-general-screenshot.png)
2017-07-01 11:37:15 +02:00
## Introduction
[Config::General](http://search.cpan.org/dist/Config-General/) is a
Perl module for parsing config files with some enhanced
features. `config-general-mode` makes it easier to edit such config
files with Emacs.
2017-06-22 20:09:01 +02:00
It is based on `conf-mode` with the following features:
- good syntax highlighting for config files
2017-07-01 11:37:15 +02:00
- completion support with <kbd>TAB</kbd> (using `dabbrev`)
- imenu support for <blocks>
2017-06-22 20:09:01 +02:00
- electric paring mode (for quotes, parens, etc) enabled
- automatic indenting
2017-07-01 11:37:15 +02:00
- jump to include file with <kbd>C-return</kbd>
2017-06-22 20:09:01 +02:00
2017-07-01 11:37:15 +02:00
## Installation
2017-06-22 20:09:01 +02:00
To use, save config-general-mode.el to a directory in your load-path.
Add something like this to your config:
2017-07-01 11:37:15 +02:00
(require 'config-general-mode)
(add-to-list 'auto-mode-alist '("\\.conf$" . config-general-mode))
2017-06-22 20:09:01 +02:00
or load it manually, when needed:
M-x config-general-mode
2017-07-01 11:37:15 +02:00
2017-06-22 20:09:01 +02:00
You can also enable it with a buffer-local variable by adding this as
the first line of a config file:
# -*-config-general-*-
2017-06-22 20:19:00 +02:00
2017-07-01 11:37:15 +02:00
## Usage
2017-06-22 20:19:00 +02:00
2017-07-01 11:37:15 +02:00
Edit your config file as usual. Use <kbd>TAB</kbd> for completion of
values and variables. Use <kbd>C-c C-t</kbd> to toggle flags (like true to
false). Use <kbd>C-c C-=</kbd> on a region to automatically align on the `=`
character. Use <kbd>C-c C-/</kbd> to breakup a region with long lines into
shorter ones using backslash notation. Use <kbd>C-return</kbd> to visit
an included file or (when not on a link) insert a new line below
the current one, indent and move point there. Use <kbd>C-k</kbd> to delete
lines, including continuation lines or whole blocks. Use <kbd>C-c C-j</kbd>
to jump to a block definition (same as using `imenu` with the
mouse).
2017-06-22 20:19:00 +02:00
2017-07-01 11:37:15 +02:00
## Customize
2017-06-22 20:09:01 +02:00
You can customize the mode with:
M-x customize-group RET config-general-mode RET
You can also use hooks to config-general mode as a way to modify or enhance
its behavior. The following hooks are available:
config-general-mode-hook
2017-07-01 11:37:15 +02:00
2017-06-22 20:09:01 +02:00
For example:
2017-07-01 11:37:15 +02:00
(add-hook 'config-general-mode-hook 'electric-indent-mode)
2017-06-22 20:09:01 +02:00
2017-07-01 11:37:15 +02:00
## Meta
2017-06-22 20:09:01 +02:00
2017-07-01 11:37:15 +02:00
Copyright (C) 2017, T.v.Dein <tlinden AT cpan DOT org>
2017-06-22 20:09:01 +02:00
This file is NOT part of Emacs.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
USA
- Version: 0.01
2017-07-01 11:37:15 +02:00
- Author: T.v.Dein <tlinden AT cpan DOT org>
2017-06-22 20:09:01 +02:00
- Keywords: config file editing
- URL: https://github.com/tlinden/config-general-mode
- License: GNU General Public License >= 2