Mail Archives: cygwin/2005/12/18/07:10:11
The Cygwin vim binary package is regularly
being compiled with keymap support turned off.
I doubt that this omission is deliberate;
more likely it results from running ./configure with
flags something like:
./configure --disable-xsmp --disable-gui --without-x
which is equivalent to:
./configure --with-features=normal --disable-xsmp --disable-gui --without-x
My guess is corroborated by the fact that the
binary package still installs the directory
/usr/share/vim/vim64/keymap
which contains 42 keymaps.
They are worse than useless in this
situation: their presencce is simply
confusing for any user of vim who knows
what they are for.
--------
The latest binary vim-6.4-3 package after
having been installed on my Thinkpad took
13836 Kb of space.
I uninstalled it and then compiled the source package
from the *same* Cygwin release of vim with the configure
flags:
./configure --with-features=huge --disable-xsmp --disable-gui --without-x
After `make install' the total size of the vim
installed on my Thinkpad is:
13412 Kb
which is even slightly less.
Here is the list of features of the binary package:
VIM - Vi IMproved 6.4 (2005 Oct 15, compiled Oct 21 2005 13:43:01)
Compiled by corinna AT cathi
Normal version without GUI. Features included (+) or not (-):
-arabic +autocmd -balloon_eval -browse +builtin_terms +byte_offset +cindent -clientserver -clipboard +cmdline_compl +cmdline_hist
+cmdline_info +comments +cryptv -cscope +dialog_con +diff +digraphs -dnd -ebcdic -emacs_tags +eval +ex_extra +extra_search -farsi
+file_in_path +find_in_path +folding -footer +fork() +gettext -hangul_input +iconv +insert_expand +jumplist -keymap -langmap +libcall
+linebreak +lispindent +listcmds +localmap +menu +mksession +modify_fname +mouse -mouseshape -mouse_dec -mouse_gpm -mouse_jsbterm
-mouse_netterm +mouse_xterm +multi_byte +multi_lang -netbeans_intg -osfiletype +path_extra -perl +postscript +printer -python +quickfix
-rightleft -ruby +scrollbind -signs +smartindent -sniff +statusline -sun_workshop +syntax +tag_binary +tag_old_static -tag_any_white -tcl
+terminfo +termresponse +textobjects +title -toolbar +user_commands +vertsplit +virtualedit +visual +visualextra +viminfo +vreplace
+wildignore +wildmenu +windows +writebackup -X11 -xfontset -xim -xsmp -xterm_clipboard -xterm_save
system vimrc file: "$VIM/vimrc"
user vimrc file: "$HOME/.vimrc"
user exrc file: "$HOME/.exrc"
fall-back for $VIM: "/usr/share/vim"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -g -O2
Linking: gcc -L/usr/local/lib -o vim.exe -lncurses -liconv -lintl
For comparison, the list of features of the vim that I compiled from the source package:
Compiled by Mariusz AT ibm-b08qdbvcs03
Huge version without GUI. Features included (+) or not (-):
+arabic +autocmd -balloon_eval -browse ++builtin_terms +byte_offset +cindent -clientserver -clipboard +cmdline_compl
+cmdline_hist +cmdline_info +comments +cryptv +cscope +dialog_con +diff +digraphs -dnd -ebcdic +emacs_tags +eval +ex_extra
+extra_search +farsi +file_in_path +find_in_path +folding -footer +fork() +gettext -hangul_input +iconv +insert_expand +jumplist
+keymap +langmap +libcall +linebreak +lispindent +listcmds +localmap +menu +mksession +modify_fname +mouse -mouseshape +mouse_dec
-mouse_gpm -mouse_jsbterm +mouse_netterm +mouse_xterm +multi_byte +multi_lang -netbeans_intg -osfiletype +path_extra -perl
+postscript +printer -python +quickfix +rightleft -ruby +scrollbind +signs +smartindent -sniff +statusline -sun_workshop +syntax
+tag_binary +tag_old_static -tag_any_white -tcl +terminfo +termresponse +textobjects +title -toolbar +user_commands +vertsplit
+virtualedit +visual +visualextra +viminfo +vreplace +wildignore +wildmenu +windows +writebackup -X11 -xfontset -xim -xsmp
-xterm_clipboard -xterm_save
system vimrc file: "$VIM/vimrc"
user vimrc file: "$HOME/.vimrc"
user exrc file: "$HOME/.exrc"
fall-back for $VIM: "/usr/local/share/vim"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -g -O2
Linking: gcc -L/usr/local/lib -o vim.exe -lncurses -liconv -lintl
There are obviously more features, but I care particularly about the
`keymap' feature:
it is absolutely essential for anybody editing multilingual documents with vim!
I suppose regular users of vim under Cygwin have been
using it, and are likely continuing to use it in other
environments (Linux/Unix/Win32, etc), because vim is
either natively avalable or easily installable for most
operating systems with nearly identical usage.
That means that those of us who regularly edit multilingual
documents with vim are likely to rely on the vim keymap mechanism.
And the same mechanism, the same keymaps can be used in
difeerent environmenets.
This mechanism allows switching keyboard mappings on
the go with just one keystroke, whwther in insert
mode or in command mode. It can be very useful
even when no GUI version of vim has been compiled.
I tested it in uxterm windows on utf-8 encoded
documents containing English, French, German,
Polish, and Russian, using the version of vim
I compiled. It works beautifully!
So, my strong recommendation to the Cygwin Team:
enable the keymap feature in the binary package!
(or at least remove the keymap directory from
the vim binary package not to confuse people).
---------
Incidentally, I also tested the version with the GUI
[just one configure flag: ./configure --with-features=huge]
This produces a GUI vim that is linked against
(Cygwin) gtk+/gtk2-x11 libraries (if you previously
installed them as I did), has a full freetype
support, and contrary to the reports I have seen
on the net, it compiled without glitches,
passed all the tests (generated by `make test'),
and most importantly, worked very nicely for me!
Of course, that increases the size of the vim
installation dramatically but that may be
interesting for those of us who prefer not to
install a separate Win32 version of vim.
The more serious problem is that when the X server
is not running then the version of vim linked
with X libraries takes on average around
10 seconds to start in either a pcterm or
an rxvt window.
When the X server is up, then everywhere,
including in rxvt windows that are not aware
of X running, vim starts briskly.
I am just curious if anybody can suggest
a cure for that behavior. Then compiling
vim with GUI might indeed become
a viable option.
Mariusz Wodzicki
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
- Raw text -