Vim wish list from two decades ago

31 views
Skip to first unread message

Yegappan Lakshmanan

unread,
Jun 30, 2020, 5:35:51 PM6/30/20
to vim_dev
Hi,

I came across the following Vim wish list (maintained by Sven Guckes who used
to regularly contribute to the vim list in those days) from two decades ago.

It is interesting to see that various items in this list are implemented now.

Regards,
Yegappan

Tony Mechelynck

unread,
Jul 1, 2020, 7:18:54 AM7/1/20
to vim_dev
cduOn Tue, Jun 30, 2020 at 11:35 PM Yegappan Lakshmanan
Some are, but many aren't: let's see what I can identify.

• coloring current line: this is now possible by means of the
'cursorline' option and CursorLine highlight. Similarly 'cursorcolumn'
and CursorColumn. Requires |+syntax| which normally means Normal build
or better.
• Extra buffer - Grep: isn't that the quickfix window used by
helpgrep, grep and vimgrep? (Not sure, but I feel like it is.)
• Textmode menus: we can have them, but at bottom, not at top. The
following excerpt from my vimrc sets them on (among other things):
if has('wildmenu')
set wildmenu
if exists('+wildmode')
set wildmode=longest:full,full
endif
set wildcharm=<C-Z>
if !has('gui_running')
runtime! menu.vim
endif
map <F10> :emenu <C-Z>
imap <F10> <C-O>:emenu <C-Z>
endif " +wildmenu
• Option status line: We can customize the 'statusline' to display
anything, but I guess this isn't what is meant.
• Support for debuggers: (a) the debug.txt helpfile explains how to
use a "debug" version of Vim with a debugger (the case of gdb is
described in detail). (b) the clewn and pyclewn debugging packages
for Vim with gdb are available at SourceForge
• :version output from variable: If you just want the version number,
that's v:version. For the whole text, you can catch the output of
:version into a variable with the :redir command
• filename completion - specify path: IIUC this is the 'path' option.
• mouse on Linux console: this is the |+mouse_gpm| compile-time
feature; it requires the gpm package to be installed on the runtime
system; it already existed in Vim 6 when I learnt that Vim existed.
• swapfile local to buffer: that is implemented as the 'swapfile' option.
• syntax coloring for line numbers: this is the LineNr highlight group.
• Virtual Editing: IIUC we have it
• "title" option: the requested feature is split between 'title',
'titlestring' and 'titleold'
• regexp: characters as ASCII numbers: that's the %d %x %o %u %U pattern items
• search: show match at middle of window: this can be obtained by
setting 'scrolloff' to a large value; but then the cursor will always
remain at the middle of the window, except near the begin or end of
the file.
• :join - add second space after end of sentence: this is the
'joinspaces' option
• :ua[ll] - update all modified buffers: this is the :wa[ll] command
• display: color the status bar of the current window differently:
we've had this for as long as I've known Vim
• angle notation - SP: we have <Space> as a <> notation for the space
character, which fulfills the request
• Add :X command for encryption (Vi has it): we have it too.
• word completion: from other buffers: I think that's somewhere in the
Ctrl-X family of commands
• add "bed" binary editor: I think we have it, but under the name "xxd"
• support for mouse wheel: we have it
• allow "\xHH" to represent characters in hex: we have it. Also \377
(octal), \uxxxx (Unicode BMP), \Uxxxxxxxx (Unicode any).
• command line expansion: I think we have it
• Vi-like backspacing: that's 'cpoptions' flag v
• Make 'textmode' accept Mac EOLs: we have it, 'textmode is deprecated
and it is the 'fileformat' option
• / and ? commands: add flag to ignore case: we have it, \c ignore
case, \C match case
• :substitute: add flag to ignore case: see above
• add --help and --version startup switches: we have that, vut
-version is the ful :version output, not a terse 5-line message
• add register "/ for the latest search command: we have it
• show buffer number in status line: the status line is configurable,
it can be added
• change option 'ruler' to a flag list: that is the separate option
'rulerformat'
• chek all startup files (.vimrc, _vimrc, .exrc, _exrc) on all
platforms: we have that
• Ctrl-A and Ctrl-X: increment also letters: that's the "alpha" value
of 'nrformats'
• Option to set width of line numbers: we have it, it's the
'numberwidth' option. It is a minimum setting, more will be used if
necessary to hold the biggest line number + one space
• Change to status line: we have it, it's the 'statusline' option
• gvim cursor: change the gvim cursor color according to mode: this is
customizable via the 'guicursor' option. (Changing its shape is more
usual.)
• syntax highlighting and colouring: IIUC, we have it

and OTOH:

• code structure: restrict function to, say, 50 lines to make the code
easier to read: I disagree: this would make the code _harder_ to read
by forcing users who have longer functions to either group lines using
:command1 | command2 | command3… or arbitrarily moving code out to
subfunctions while it would more easily be found inline instead. It
would also be an incompatible change, possibly breaking any number of
plugins, vimrc's, etc.


Best regards,
Tony.

Yegappan Lakshmanan

unread,
Jul 1, 2020, 10:40:45 AM7/1/20
to vim_dev
Hi Tony,

On Wed, Jul 1, 2020 at 4:18 AM Tony Mechelynck <antoine.m...@gmail.com> wrote:
 cduOn Tue, Jun 30, 2020 at 11:35 PM Yegappan Lakshmanan
<yega...@gmail.com> wrote:
>
> Hi,
>
> I came across the following Vim wish list (maintained by Sven Guckes who used
> to regularly contribute to the vim list in those days) from two decades ago.
>
> https://web.archive.org/web/20080520075925/http://www.vmunix.com/vim/wish.html
>
> It is interesting to see that various items in this list are implemented now.
>
> Regards,
> Yegappan

Some are, but many aren't: let's see what I can identify.


Nicely done.
 
• coloring current line: this is now possible by means of the
'cursorline' option and CursorLine highlight. Similarly 'cursorcolumn'
and CursorColumn. Requires |+syntax| which normally means Normal build
or better.
• Extra buffer - Grep: isn't that the quickfix window used by
helpgrep, grep and vimgrep? (Not sure, but I feel like it is.)

Yes. This refers to the grep/vimgrep commands.
 
• Textmode menus: we can have them, but at bottom, not at top. The
following excerpt from my vimrc sets them on (among other things):

The text mode menus can be implemented using a combination of
the WinBar and popup menus. I have seen a plugin that does this.
A binary editor should have more functionality along the lines of


xxd does a hexdump of a binary file and vice versa. 

and OTOH:

• code structure: restrict function to, say, 50 lines to make the code
easier to read: I disagree: this would make the code _harder_ to read
by forcing users who have longer functions to either group lines using
:command1 | command2 | command3… or arbitrarily moving code out to
subfunctions while it would more easily be found inline instead. It
would also be an incompatible change, possibly breaking any number of
plugins, vimrc's, etc.


I think the code structure item refers to the Vim source code and not to
the Vim scripts. Vimscript was added only starting from Vim version 5.0
(around 1998).

I have refactored the Vim quickfix code (quickfix.c) extensively so that all
the functions are less than around 100 lines in length. I used the lizard
tool to collect the code metrics and refactor the code:


Many of the source files are refactored recently to group functions by the
functionality and to reduce the file size.

So it is doable across the Vim source base but it will take quite a bit
of time (several years) and effort.

Regards,
Yegappan

Yegappan Lakshmanan

unread,
Jul 1, 2020, 11:03:08 AM7/1/20
to vim_dev
On Wed, Jul 1, 2020 at 4:18 AM Tony Mechelynck <antoine.m...@gmail.com> wrote:
 cduOn Tue, Jun 30, 2020 at 11:35 PM Yegappan Lakshmanan
<yega...@gmail.com> wrote:
>
> Hi,
>
> I came across the following Vim wish list (maintained by Sven Guckes who used
> to regularly contribute to the vim list in those days) from two decades ago.
>
> https://web.archive.org/web/20080520075925/http://www.vmunix.com/vim/wish.html
>
> It is interesting to see that various items in this list are implemented now.
>
> Regards,
> Yegappan

Some are, but many aren't: let's see what I can identify.


Recently there was a discussion about including the patch (from Christian)
to support text search across buffers and the interest level in doing so.
It is interesting to see that this was in the wish list 20 years ago:

search across buffers
Add an option to allow searches to scan all open buffers. (Some people do not have a decent "grep" on the machines, apparently.)
Micha be...@my-deja.com [000130]

- Yegappan

Reply all
Reply to author
Forward
0 new messages