List of Vim features to vote on

41 views
Skip to first unread message

Bram Moolenaar

unread,
Aug 15, 2022, 9:00:31 AM8/15/22
to vim-an...@vim.org, vim...@vim.org, v...@vim.org, vim...@vim.org

Hello Vim users!

The list of features has not been changed for quite a while, but there
are several outdated items and new items have been asked for.

The main reason to not update the list often is that users who have cast
their votes will have to update them. We don't want to cause that too
frequently.

The list is also quite long. I have removed a few items that are
outdated and items with very few votes that are hardly relevant.

You can adjust your votes here, if you are a sponsor:
https://www.vim.org/sponsor/vote.php
The voting results are here: https://www.vim.org/sponsor/vote_results.php

Items that have been added now:
- "add multiple cursors, edit text in more than one place at the same time"
- "add scrolling per screen line, first line can start halfway"
- "reduce flicker by avoiding to clear the screen"

Edited items:
- "improve syntax highlighting speed"
changed to: "improve syntax highlighting speed by adding a parser"
- "add IDE features (debugger integration, shell window)"
changed to: "improve IDE features (terminal debugger)"
- "add diff/merge capability for CVS, like in emacs"
changed to: "add diff/merge capability for git, mercurial et al."
- "improve the performance of Vim scripts (pre-compile them)"
changed to: "improve the performance of Vim script"
- "improve searching in the on-line help, add more tags"
changed to: "improve searching in the builtin help, add more tags"
- "improve the on-line help reference manual"
changed to: "improve the builtin help reference manual"
- "improve the on-line help user manual"
changed to: "improve the builtin help user manual"
- "translate the on-line help to German, French, Spanish, etc."
changed to: "translate the builtin help to German, French, Spanish,
etc."
- "improve the remote server functionality"
changed to: "improve the client-server functionality"
- "add option not to move the cursor when using a scrollbar"
changed to: "add option not to move the cursor when scrolling the
window"

Items that have been removed, either because they have already been done
or they will never happen:
- "improve the support for X Window with the Athena toolkit"
- "add an "open" mode, like the original Vi"
- "add editing of a hidden buffer (useful in scripts only)"
- "improve the support for MacOS 9 and earlier"
- "make Vim available as a .net object"
- "add better support for editing files in projects (with ID utils)"
- "create a vim-script maillist, for announcements about new and updated
scripts"
- "add autocommand events for Insert mode, before/after inserting a
character"
- "add vertical mode for operators (e.g., delete word in five lines)"
- "add flexible tab stops, can be used for tables"

Happy voting!


--
GUARD #1: What, ridden on a horse?
ARTHUR: Yes!
GUARD #1: You're using coconuts!
ARTHUR: What?
GUARD #1: You've got two empty halves of coconut and you're bangin' 'em
together.
The Quest for the Holy Grail (Monty Python)

/// Bram Moolenaar -- Br...@Moolenaar.net -- http://www.Moolenaar.net \\\
/// \\\
\\\ sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

Ernie Rael

unread,
Aug 18, 2022, 8:01:15 PM8/18/22
to vim...@googlegroups.com

On the voting page I see:

5  92  improve diff mode: automatic refresh, better merge support
...
11 72  add diff/merge capability for git, mercurial et al.

I don't understand the intent of item 11. For example, there's the
plugin

https://docs.stevelosh.com/splice.vim/

Which is full featured. (It's a vimL/python hybrid); there's
instructions for using it from git, mercurial and bazaar; there's a
demo screencast. I think it has some great features;  I'm far from
expert on merging and/or merge tools; so who knows. Splice hasn't been
touched in around 10 years.

I'm wondering if there's a need for item 11 since plugins can do it,
perhaps Splice could be released with vim if an out of the box merge
tool is wanted.

To both improve my merging and learn vim9, I did some development work
with Splice. I converted its vimL code, and some python, to vim9 and
added some features (for example clickable/rollover HUD commands
(heads up display)). Made some contributions to vim along the way,
that was cool. When vim9 classes are available, I'm thinking of
porting the remaining python code, then there will be pure vim Splice.

Some features, under item 5, could be added that would allow
improvements to Splice, or any merge tool.  There's probably more
features that could be added for merge tools; following are ones I
recall; I didn't delve into the issues very far.

- positions relating to sync and diff information
  One view has 4 buffers each displaying a different stage of the
  change/merge. Would like to highlight a given conflict in each of
  the buffers. The positions for each conflict must account for the
  visual "holes" (where one side has text and the other doesn't).
  Getting the data for any combo of sync/diff sounds good.
- what would diffput/diffget do
  I saw a request for merging both sides of a conflict, this data
  might help with that. Or perhaps a new command "merge-both-sides"
  might be the way to go, always assuming some manual fixup
  afterwards.
- Interactions of text property priorities and diff highlights
  Also had some interaction issues with search highlighting.
  todo item that considers this: "Text properties:"
  (BTW, virtual text fixes one of the text property todo items)

Gary Johnson

unread,
Aug 18, 2022, 11:17:59 PM8/18/22
to vim...@googlegroups.com
On 2022-08-18, Ernie Rael wrote:
> On the voting page I see:
>
> 5  92  improve diff mode: automatic refresh, better merge support
> ...
> 11 72  add diff/merge capability for git, mercurial et al.
>
> I don't understand the intent of item 11. For example, there's the
> plugin
>
> https://docs.stevelosh.com/splice.vim/
>
> Which is full featured. (It's a vimL/python hybrid); there's
> instructions for using it from git, mercurial and bazaar; there's a
> demo screencast. I think it has some great features;  I'm far from
> expert on merging and/or merge tools; so who knows. Splice hasn't been
> touched in around 10 years.
>
> I'm wondering if there's a need for item 11 since plugins can do it,
> perhaps Splice could be released with vim if an out of the box merge
> tool is wanted.

There is also Fugitive, and I've written my own that's a small
enhancement to git's vimdiff merge tool.

I agree. Vim should offer features and interfaces that allow it to
be a powerful diff engine and display for users directly and from
plugins, but it shouldn't know anything about any particular VCS.
Plugins should handle the interfaces to and idiosyncrasies of the
VCSs.

Regards,
Gary

Bram Moolenaar

unread,
Aug 19, 2022, 8:18:02 AM8/19/22
to vim...@googlegroups.com, Ernie Rael

Ernie Rael wrote:

> On the voting page I see:
>
> 5  92  improve diff mode: automatic refresh, better merge support
> ...
> 11 72  add diff/merge capability for git, mercurial et al.
>
> I don't understand the intent of item 11. For example, there's the
> plugin
>
> https://docs.stevelosh.com/splice.vim/

Some of the items have been worked on or are available in some form, but
some users might not find it sufficient. The "automatic refresh" is
more or less done by including and using xdiff. But is it sufficient?

> Which is full featured. (It's a vimL/python hybrid); there's
> instructions for using it from git, mercurial and bazaar; there's a
> demo screencast. I think it has some great features;  I'm far from
> expert on merging and/or merge tools; so who knows. Splice hasn't been
> touched in around 10 years.
>
> I'm wondering if there's a need for item 11 since plugins can do it,
> perhaps Splice could be released with vim if an out of the box merge
> tool is wanted.

Perhaps some people can't find the right plugin? That is always going
to be hard. Recommendations from others probably work best.

> To both improve my merging and learn vim9, I did some development work
> with Splice. I converted its vimL code, and some python, to vim9 and
> added some features (for example clickable/rollover HUD commands
> (heads up display)). Made some contributions to vim along the way,
> that was cool. When vim9 classes are available, I'm thinking of
> porting the remaining python code, then there will be pure vim Splice.
>
> Some features, under item 5, could be added that would allow
> improvements to Splice, or any merge tool.  There's probably more
> features that could be added for merge tools; following are ones I
> recall; I didn't delve into the issues very far.
>
> - positions relating to sync and diff information
>   One view has 4 buffers each displaying a different stage of the
>   change/merge. Would like to highlight a given conflict in each of
>   the buffers. The positions for each conflict must account for the
>   visual "holes" (where one side has text and the other doesn't).
>   Getting the data for any combo of sync/diff sounds good.

There was some work done to improve how a change is displayed, but it
was never finished. Currently it is just based on any difference, it
would be much better to take into account how much is different. E.g.
when putting a code block inside an "if" the lines shift, but otherwise
stay the same, but the inserted line makes them show up very different,
because they are not aligned.

> - what would diffput/diffget do
>   I saw a request for merging both sides of a conflict, this data
>   might help with that. Or perhaps a new command "merge-both-sides"
>   might be the way to go, always assuming some manual fixup
>   afterwards.
> - Interactions of text property priorities and diff highlights
>   Also had some interaction issues with search highlighting.
>   todo item that considers this: "Text properties:"
>   (BTW, virtual text fixes one of the text property todo items)

I haven't been able to think of a universal solution to highlight
priorities. Requires something like a matrix...


--
FATHER: You killed eight wedding guests in all!
LAUNCELOT: Er, Well ... the thing is ... I thought your son was a lady.
FATHER: I can understand that.
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
Reply all
Reply to author
Forward
0 new messages