Dan,

I appreciate your feedback, and felt every point you made was valid. See
below for my responses, and after that the text of the latest version of the
proposal.

One change I would make is to put this as the first sentence of the
proposal, instead of at the end of the intro.


Let me know what you think of section one now.


(there is a numbering issue here, this should be 2.4)


Fixed

These two sections, "Language bindings" and "GUI bindings" are a little
confusing (to me).  Python is (AFAIK) an optional system component.
Perl too.  In fact, before GNOME came around, we didn't have python.
And yet this creates a dependency upon having them.


Very good observation. I had missed this. I have  moved language binding to
a future project. (I have decided that we will completely avoid static
language bindings.)

This is a stronger argument, for sure, and a good one.  You might want
to start with that.  Again, nice work.


Thanks! I changed it as suggested, and thank you again!

Cheers,
-Brian

P.S. - I appreciate everyone's help, and encouragement!!
----------------------------------------------------------------------------------------------------
Changed sections:
---------------------------
1. Broke into two sections, to make more accessible to ARC team members
2.3 Changed to reflect that language binding will be done in a future
project
2.4 Moved some of the arguments against gui to 2.3. Moved precedents to top
of section
2.5 (Numbering only)
2.6 (Slight modification to reflect change in direction for language
bindings
4. Changed the order of the informative links. (I prefer not to use industry
jargon, if I can avoid it. But for you guys that like it: the
"non-normative" links.) :)
------------------------------------------------------------------------------------------------------
Proposal VIM v0.7

1.  Introduction and motivation

1.1 Summary

  This project proposes to integrate vim version 7.0 (plus any canonical
  patches available at the time of integration).

  The motivation behind this proposal to bring Vim to the Solaris
  operating system is to have such a modern version of vi available on all
  Solaris systems. Initially it will coexist with the original vi.
  Eventually it is desirable to deprecate vi, and have vim replace vi as
  the bundled vi editor. Until such time as this is done, any vim files
  that conflict with vi files will not be included in this project. (IE:
  ex, view)

1.2 History and context

  The vi editor was developed by Bill Joy, one of the founders of Sun. Vi
  stands for "Visual Interface", as it was the full screen visual interface
  to ex, a line editor that Bill Joy had previously written. At the time
line
  editors were popular do the fact that a majority of terminals were line
  printer terminals.

  For a number of reasons, vi has become one of the most popular non
  graphical editors in the history of computing. Vi has not changed much
  since it was originally released, it still retains a very small memory
  footprint. For this reason, it was included in UNIX SVR4, and has
  shipped with every version of Solaris since the company was founded.

  Vi was only available on systems that had licensed it from AT&T. This
  lead to the development of many vi "clones". These "clones" initially
  were developed to bring vi to alternate platforms, in a form that was
  as close to the features and functionality of the original vi as
possible.

  As time progressed and development continued on these clones, many
  of them surpassed the functionality of the original vi. One of these vi
  clones, named VIM ("Vi IMproved") was designed from the very beginning
  to improve upon the functionality of vi. Today, vim is one of the only
  vi "clones" that is still being developed.

  Vim is generally considered the most modern and advanced version of vi
  available. Because of this it has become the standard version of vi for
  most, if not all, major Linux distributions.

2.  Discussion

2.1 Functionality

  Vim is an advanced, open source, text editor that is based on the
controls
  and functionality of vi. Since Bram Moolenaar released vim in 1991, it
has
  gone through many revisions. One of the most significant changes, has
  been the addition of language aware source code editing features. These
  features provide block completion, source highlighting, automatic
  indentation, navigation via code blocks and many other programmer
friendly
  options.

  In addition to the language specific changes, many other features have
  been added. These features include an integrated help system, scripting
  abilities, file comparison functions,  spell checking, undo, redo,
  preservation of state between sessions, remote file editing, editing of
  compressed files, and editing multiple files simultaneously. These are
  just of few of the many improvements vim has made over vi.


2.2 Components

  The basic vim functionality is contained within the executable installed
  in /usr/bin, 'vim'. Vim will be installed with symbolic links for the
  other commands pointing at the main vim binary. Vim is smart enough to
  recognize how to behave depending on what command name that was used to
  launch it. e.g. - restricted mode, "easy" (modeless) mode, diff mode,
  read-only mode, and some combinations of these.  It also acts as ex if
  called as such, but this project does not propose to deliver this link
  until such time as vim can completely replace the System V vi.

  There is also a hex dump/undump utility, xxd, and a script to assist a
  user in running the built-in vim tutorial.

  The complete list of executables and symbolic links is listed in the
  exported interface table.

2.3 Language bindings.

  At this stage, we are proposing a relatively simple installation of vim.
  Although vim can be compiled with support for various extension languages
  in addition to the built-in vimscript, we will not be doing so. Because
  vi is, and vim will be, the primary basic system text editor, it can not
  depend on optional packages, like perl, or python.

  In the future we plan to support perl and python, as these languages are
  available with OpenSolaris.  These language bindings will be built as
  individual packages.  Once perl and python packages been created, it will
  be an ongoing effort to evaluate as additional supported languages are
  added to Solaris.

2.4 GUI bindings

  Most, if not all, of the major distributions of Linux follow this
  convention, and package gvim separately. These gvim packages install gvim
  into /usr/X11R6/bin. This has been verified for RedHat Fedora, RHEL, SuSE
  Enterprise Linux, Debian, and Ubuntu).

  Vim will be configured without GUI support, for the same reason that we
  are not including language bindings. Because vi is, and vim will be, the
  primary basic system text editor, it can not depend on optional packages,
  like X-Windows, or Gnome.

2.5 Documentation

  Vim comes with man pages, but the most significant sets of documentation
  are accessed via vim itself. Within vim typing ":help" will bring up the
  vim help system. Vimtutor is an interactive set of documentation that
  uses the vim engine to allow those accessing this instructive tool to
  practice what they learn as they learn it.

  There are two main sources of additional documentation: SourceForge [1]
  and Vim's [2] home pages.

2.6 Future projects

  We plan to further enhance the integration of Solaris and vim.

   1) Replacing the current version of vi with vim
   2) Creating dynamic language binding packages
   3) Creating a standalone gvim (GUI vim) package
   4) Changing Sun Studio's bundled vim to the system vim
   5) Investigate interest in "tiny-vim" or "vim-minimal" package

3. Interfaces

3.1 Imported interfaces

3.1 Exported interfaces Bundled files

   SUNWvim                   Uncommitted          Package name

   /usr/bin/rview            Uncommitted          Symbolic link location
   /usr/bin/rvim             Uncommitted          Symbolic link location
   /usr/bin/vim              Uncommitted          Executable location
   /usr/bin/vimdiff          Uncommitted          Symbolic link location
   /usr/bin/vimtutor         Uncommitted          Symbolic link location
   /usr/bin/xxd              Uncommitted          Executable location
   /usr/share/vim/vim70      Uncommitted          Directory for bundled
                                                  extensions
   /usr/share/vim/vimfiles   Uncommitted          Directory for unbundled
                                                  extensions

4. References

[1] http://vimdoc.sourceforge.net/ SourceForge - Official documentation
   repository
[2] http://www.vim.org/docs.php - VIM documentation homepage, includes many
   links

The following links may be informative to people unfamiliar with vim:

[.] http://www.vim.org/ - VIM official homepage
[.] http://en.wikipedia.org/wiki/Vim_text_editor - Wikipedia article
[.] http://freshmeat.net/projects/vim/ - Freshmeat VIM project page

[.] http://tiger.la.asu.edu/Quick_Ref/vimquickref.pdf - Quick reference card
[.] http://www.vmunix.com/vim/util.html - additional utilities that aren't
   part of vim, but are useful to vim
[.] http://vimplugin.sourceforge.net/wiki/pmwiki.php - Eclipse Plugin
_______________________________________________
tools-discuss mailing list
tools-discuss@opensolaris.org

Reply via email to