sponsor Vim development Vim logo Vim Book Ad

wheel : Buffer group & workspace manager

 script karma  Rating 0/0, Downloaded by 618  Comments, bugs, improvements  Vim wiki

created by
chimay orduval
 
script type
utility
 
description
## What is it ?

Wheel is a navigation plugin written in classical Vimscript, to remain
compatible with both Vim and Neovim. It is file group oriented and
makes abundant use of dedicated buffers, in which you can filter and
select elements.

## More information

See the github repository :

[wheel](https://github.com/chimay/wheel)

## File groups & categories

Wheel let you organize your files by creating as many file groups as
you need, add the files you want to it and quickly navigate between :

- files of the same group
- file groups

Note that :

- a location contains a name, a filename, as well as a line & column number
- a file group, in fact a location group, is called a circle
- a set of file groups, or a category, is called a torus (a circle of circles)
- the list of toruses is called the wheel

### Why do you need three levels of grouping ?

At first glance, managing groups with circles in a torus seems to be
sufficient. But with time, the torus grows big, and a third level helps
you to organize your files by groups and categories:

- the wheel contains all the toruses
- each torus contains a category of files, e.g.:
  + configuration, development, publication
- each circle contains a project, e.g.:
  + emacs or vifm circles in configuration torus
  + shell or elisp in development torus
  + tea or art in publication torus

### A wheel that follows you

Wheel is designed to follow your workflow : you only add the files
you want, where you want. For instance, if you have a `organize` group
with agenda & todo files, you can quickly alternate them, or display
them in two windows. Then, if you suddenly got an idea to tune vim,
you switch to the `vim` group with your favorites configuration files in
it. Same process, to cycle, alternate or display the files. Over time,
your groups will grow and adapt to your style.

## Features

- add
  + files from anywhere in the filesystem
  + a file in more than one group
  + file:line-1 and file:line-2 in the same group
- may be saved in wheel file (recommended)
- on demand loading of files
  + no slowdown of (neo)vim start
- easy navigation
  + switch to matching tab & window if available
  + next / previous location, circle or torus
  + choose file, group or category in dedicated buffer
    * filter candidates
    * folds matching wheel tree structure
    * context menus
  + auto `:lcd` to project root of current file
- search files
  + using locate
  + using find
  + MRU files not found in wheel
  + opened buffers
  + visible buffers in tabs & windows
- search inside files
  + grep on group files
    * navigate
    * edit mode : edit and propagate changes by writing the buffer
  + outline
    * folds headers in group files (based on fold markers)
    * markdown headers
    * org mode headers
  + tags
  + jumps & changes lists
- yank wheel using TextYankPost event
  + paste before or after, linewise or characterwise
  + plain mode : each buffer line is a yanked line
  + list mode : each buffer line is a yank
- reorganizing
  + wheel elements
  + tabs & windows
- undo list
  + diff between last & chosen state
- command output in buffer
  + :ex or !shell command
  + async shell command
  + result can be filtered, as usual
- dedicated buffers stack to save your searches
  + layer stack in each dedicated buffer
- display files
  + split levels : torus, circle, location
  + split
    * vertical, golden vertical
    * horizontal, golden horizontal
    * main left, golden left
    * main top, golden top
    * grid
  + mix of above
    * circles on tabs, locations on split
    * toruses on tabs, circles on split
- save tabs & windows in minimal session file
- batch operations
- autogroup files by extension or directory

As you see, the group manager is the core, but it goes far beyond that :
you need a quick navigation framework to travel in the wheel, and once
it is there, it’s easy to add new functionalities.

UNIX’s philosophy is respected however, on a module level : each file in
`autoload/wheel` deals with a specific kind of problem, and do it well ;
the magic is when modules talk together.

## History

This project is inspired by :

- [ctrlspace](https://github.com/vim-ctrlspace/vim-ctrlspace), a workspace
  plugin for Vim

- [unite](https://github.com/Shougo/unite.vim) and its successor
  [denite](https://github.com/Shougo/denite.nvim), a search plugin for
  arbitrary sources

- [torus](https://github.com/chimay/torus), a similar plugin for Emacs,
  itself inspired by MTorus

- [quickfix-reflector](https://github.com/stefandtw/quickfix-reflector.vim),
  for the grep edit mode

## Prerequisites

Some functions assume a Unix-like OS, as linux or bsd.
 
install details
# Installation
## Using minpac

Simply add this line to your initialisation file :

~~~vim
call minpac#add('chimay/wheel', { 'type' : 'start' })
~~~

and run `:PackUpdate` (see [the minpac readme](https://github.com/k-takata/minpac))
to install.

## Using vim-plug

The syntax should be similar with other git oriented plugin managers :

~~~vim
Plug 'chimay/wheel'
~~~

and run `:PlugInstall` to install.

## Plain

Just add the :

- plugin
- after
- autoload
- doc

folders in the matching runtime directories of (neo)vim, and it should
work.
 

rate this script Life Changing Helpful Unfulfilling 
script versions (upload new version)

Click on the package to download.

package script version date Vim version user release notes
wheel-3.4.tar.gz 3.4 2023-05-11 8.0 chimay orduval outline follow filetype of current file

minor fixes and improvements
wheel-2.2.tar.gz 2.2 2021-12-28 8.0 chimay orduval - save & load tabs & windows in minimal session file
- multi-word completion in prompt functions
- more coherent history
- various bug fix
wheel-1.20.tar.gz 1.20 2021-04-22 8.0 chimay orduval - improved selections in dedicated buffers : select/clear/toggle all visible, filtered lines
- generalisation of buffer layers
- ability to reload a dedicated buffer
- easy navigation between dedicated buffers & layers : switch, back and forth
wheel-1.15.tar.gz 1.15 2021-04-10 8.0 chimay orduval New features :

edit mode for grep
async commands
add files using glob
characterwise / linewise paste from yank wheel
reorganize tabs & window from special buffer
wheel-1.10.tar.gz 1.10 2021-03-15 7.0 chimay orduval autogroup files by extensions or directories
wheel.tar.xz 1.5 2020-04-25 8.0 chimay orduval quick navigation framework, context menus, tags, folds in main menu, find with async job
wheel.tar.xz 1.0 2020-04-12 8.0 chimay orduval Initial upload
ip used for rating: 18.191.211.66

If you have questions or remarks about this site, visit the vimonline development pages. Please use this site responsibly.
Questions about Vim should go to the maillist. Help Bram help Uganda.
   
Vim at Github