Diakonos - version 0.8.12
Version 0.8.12 of Diakonos is now available.
Keying and the input line
The keying system of Diakonos has been refactored. What this means to the end user is the input line now supports the full range of keys. For example, keys like the Home and End keys actually produce multiple characters of input each, and so would not function properly in older versions. They are now are properly supported. As part of this new implementation, the notion of keying modes has been introduced. For now, there are only two hard-coded modes: “edit” and “input”. There is now an
mkey configuration directive, used to bind a function to a key chord or sequence under a specific mode. The old directive,
key is equivalent to
mkey edit, and so acts as a shorthand.
Another nice enhancement to input is the fact that the input line can now scroll left and right, to allow proper editing of long inputs (inputs wider than the screen or terminal).
zsh and bash completion
This version includes in the tarballs files that can be used to provide tab completion for Diakonos under bash and zsh. Of course, all shells already provide tab completion for files and directories, but with the provided files, you can also have completion of session names for use with
diakonos -s <session>.
Selection and Find
select_wrapping_block function has been added, with a default keychord of Alt-space. This function will select all lines at the current level of indentation (or deeper). That is, you can select the current code block with it. You can press Alt-space additional times to quickly and easily select increasingly shallower parent blocks.
The find functionality of Diakonos has been enhanced: if you perform a search with text selected, the search is restricted to the selected text. Put these two new features together, and you have a way to restrict searches to code blocks — something I find quite cool and useful. Haven’t you ever wanted to know “where else do I reference this variable within this method?” or asked similar questions? Well now you can find out things like this very easily.
The cursor stack was broken in the last release, but it has been repaired and also enhanced. The cursor stack is now cross-buffer, instead of buffer-specific. This lets you return to logical work areas no matter which buffers they are in. (For those of you that don’t know, the cursor stack is essentially the equivalent of your web browser’s Back and Forward functionality, except within your editor.)
Diakonos git integration got a big boost recently, by way of a really cool git tool called tig. Of course, tig is neither required for Diakonos operation, nor bundled with Diakonos. However, if you install it, and also install the Diakonos git extension, then you get one-key access (F9) to a slick curses interface to git. If you are a git user, I certainly recommend you take tig for a whirl. With dk-git and tig, we Diakonos users get something comparable to emacs’ magit.
The full set of changes is listed in greater detail in the changelog:
- Refactored keying system.
- Introduced keying modes.
- Ruby version now enforced, both at installation and run time.
- Input line can now scroll if input is longer than screen width.
- Added support for session completion in zsh and bash.
- Added select_line.
- Added select_wrapping_block (default key: Alt-space).
- Searching is now restricted to the selected text, if any.
- Added view.non_search_area.format.
- Fixed cursor stack.
- Cursor stack is now global (cross-buffer).
- Simplified switch_to_next_buffer and switch_to_prev_buffer; no more history.
- Added chdir function.
- Various refactorings.
- Various bug fixes.