Hi Tony,

On Wed, Jul 1, 2020 at 4:18 AM Tony Mechelynck <[email protected]>
wrote:

>  cduOn Tue, Jun 30, 2020 at 11:35 PM Yegappan Lakshmanan
> <[email protected]> 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.


>         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"
>

A binary editor should have more functionality along the lines of

http://bvi.sourceforge.net/

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

• 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 i
> 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:

https://github.com/terryyin/lizard

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

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/CAAW7x7mdRaOuDGYRH--%2Bk9Ng3mOCF_fpRbAL%2B74GT2bmRH3gww%40mail.gmail.com.

Raspunde prin e-mail lui