• Stars
    star
    212
  • Rank 186,122 (Top 4 %)
  • Language
    Emacs Lisp
  • Created over 11 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

makes ido-mode display vertically

ido-vertical-mode.el

Build Status Makes ido-mode display vertically.

screenshot.gif

This mode takes care of some caveats that are otherwise ugly to store in your init file.

You may also be interested in ido-ubiquitous and smex.

Additionally, if you are interested in ido-mode displaying a grid of options instead of a vertical or horizontal list you can check ido-grid-mode.

Install via MELPA Stable or marmalade

M-x package-install ido-vertical-mode

If you use MELPA instead of MELPA Stable, there's no guarantee that you'll get something that works; I've accidentally broken master before and will unfortunately probably do it again :(

Turn it on

(require 'ido-vertical-mode)
(ido-mode 1)
(ido-vertical-mode 1)
(setq ido-vertical-define-keys 'C-n-and-C-p-only)

Or you can use M-x ido-vertical-mode to toggle it.

N.B. as of version 1.0.0, we do not bind to C-n and C-p for you! You must include that last setq line in your config somewhere. This is out of a desire not to change the default emacs keybindings, as C-p is already bound by default in ido-mode. See the keybindings section for more information.

Customize

Count

Show the count of candidates:

(setq ido-vertical-show-count t)

Colors

Make it look like @abo-abo's blog post:

(setq ido-use-faces t)
(set-face-attribute 'ido-vertical-first-match-face nil
                    :background "#e5b7c0")
(set-face-attribute 'ido-vertical-only-match-face nil
                    :background "#e52b50"
                    :foreground "white")
(set-face-attribute 'ido-vertical-match-face nil
                    :foreground "#b00000")
(ido-vertical-mode 1)

Make it look like the screenshot above:

(setq ido-use-faces t)
(set-face-attribute 'ido-vertical-first-match-face nil
                    :background nil
                    :foreground "orange")
(set-face-attribute 'ido-vertical-only-match-face nil
                    :background nil
                    :foreground nil)
(set-face-attribute 'ido-vertical-match-face nil
                    :foreground nil)
(ido-vertical-mode 1)

Reset the faces to their defaults:

(set-face-attribute 'ido-vertical-first-match-face nil
                    :background nil
                    :foreground nil)
(set-face-attribute 'ido-vertical-only-match-face nil
                    :background nil
                    :foreground nil)
(set-face-attribute 'ido-vertical-match-face nil
                    :background nil
                    :foreground nil)
(ido-vertical-mode 1)

;; optionally
(setq ido-use-faces nil)

Alternative Key Bindings

Since the prospects are listed vertically, it might make sense to use C-n and C-p to navigate through the options, instead of the standard C-s and C-r. To accomplish this, set ido-vertical-define-keys like this:

(setq ido-vertical-define-keys 'C-n-and-C-p-only)

The standard binding for C-p - ido-toggle-prefix - will now be available on C-c C-t, which was previously unbound in ido-mode's key map. Of course, you can also put ido-toggle-prefix somewhere else on your own:

;; manually mimic the 0.1.5 behavior of ido-vertical-mode
(define-key ido-completion-map (kbd "M-p") 'ido-toggle-prefix)

You also have the option to rebind some or all of the arrow keys with like this:

(setq ido-vertical-define-keys 'C-n-C-p-up-and-down)

to use up and down to navigate the options, or:

(setq ido-vertical-define-keys 'C-n-C-p-up-down-left-right)

to use left and right to move through the history/directories.

More Repositories

1

haskellrustdemo

Example Integration for Embedding Rust in Haskell
Makefile
35
star
2

hsqmlstocqt

Stock Market Visualization in Haskell and Qt Quick
Haskell
21
star
3

bencode

Haskell Parser and printer for bencoded data.
Haskell
15
star
4

wai-middleware-throttle

WAI Request Throttling Middleware
Haskell
15
star
5

dockerfile

A Haskell DSL for Generating Dockerfiles
Haskell
10
star
6

stack-tag

Create etag/ctags for stack projects
Haskell
10
star
7

hstorchat

A TorChat implementation in Haskell and QML.
Haskell
10
star
8

persistent-postgresql-json

Postgresql JSON/JSONB Types and Query Operators for Persistent
Haskell
9
star
9

hsebaysdk

Haskell eBay API
Haskell
8
star
10

disque.hs

Disque Message Queue Haskell Client
Haskell
7
star
11

phonion

Experimental VOIP and Messaging via Tor Hidden Services.
C++
7
star
12

keter-pkg

A package builder for the Keter web server
Haskell
6
star
13

wai-middleware-hmac

WAI HMAC Authentication Middleware and Client
Haskell
6
star
14

hsqml-listmodel

Paper on Modeling LIsts in HsQML
Haskell
6
star
15

http-client-auth

HTTP Basic and Digest Authentication for http-client and http-conduit
Haskell
5
star
16

magit-gh-issues

Github issues extension for Magit
Emacs Lisp
5
star
17

flycheck-haskell-stack

A Haskell Flycheck checker using the Stack build tool
Emacs Lisp
5
star
18

wpevernote

Generate Wordpress posts from public Evernote notebooks.
PHP
4
star
19

hsgui

Haskell GUI Project Template
Haskell
4
star
20

yesod-auth-basic

Yesod HTTP Basic Authentication
Haskell
4
star
21

dotfiles

my computing environment
Emacs Lisp
4
star
22

webpack-dev-server.el

An Emacs mode for controlling webpack-dev-server
Emacs Lisp
4
star
23

clisp

This is GNU CLISP, an ANSI Common Lisp implementation.
Common Lisp
3
star
24

yesod-angular

Yesod Angular JS Integration
Haskell
3
star
25

nominatim

Nominatim API Client and Corresponding Haskell Library
Haskell
2
star
26

hhug

Slides and Excercises for Houston Haskell Users Group
Haskell
2
star
27

haskell-jwt

MIRROR: JSON Web Token (JWT) decoding and encoding
Haskell
2
star
28

smlsql

Standard ML Postgresql Binding with Examples (Fork of smlsql)
Standard ML
2
star
29

persistent-postgresql

A fork of persistent-postgresql for experimenting with native PostgreSQL geometry types
Haskell
1
star
30

linear-hs

Linear Algebra in Haskell
Haskell
1
star
31

...

1
star
32

disque.sml

Simple Disque Client in Standard ML
Standard ML
1
star
33

monad-logger-truncated

monad-logger backend designed to deal with verbose logging
Haskell
1
star
34

flycheck-sml

Flycheck checkers for Standard ML
Emacs Lisp
1
star
35

hswebapp

Example Web App in Haskell using Happstack
CSS
1
star
36

qmlfay

QML Haskell Integration Using the Fay Compiler.
IDL
1
star