Giter VIP home page Giter VIP logo

ido-vertical-mode.el's Introduction

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.

ido-vertical-mode.el's People

Contributors

gempesaw avatar thesoftwarephilosopher avatar creichert avatar fehmud avatar mattfidler avatar adamdecaf avatar tarsius avatar abo-abo avatar randymorris avatar wyuenho avatar zakkak avatar nishantvarma avatar ryantm avatar swsnr avatar larkery avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.