Re: our containers with alias vim=vi

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 10/13/20 12:34 PM, Jonathan Wakely wrote:
> On 13/10/20 07:45 +0200, Zdenek Dohnal wrote:
>>
>> On 10/12/20 5:15 PM, Joe Doss wrote:
>>> On 10/12/20 1:50 AM, Zdenek Dohnal wrote:
>>>> This would break using Vim when vim-minimal and vim-enhanced are
>>>> installed (it would start Vi instead of typed Vim). To make it work,
>>>> vim-minimal would have to conflict with vim-enhanced, which doesn't
>>>> make
>>>> sense - Vi and Vim binaries can exist together just fine.
>>>
>>> I have vim-enhanced and vim-minimal installed
>>>
>>> # rpm -qa |grep vim
>>> vim-common-8.2.1770-1.fc33.x86_64
>>> vim-filesystem-8.2.1770-1.fc33.noarch
>>> vim-minimal-8.2.1770-1.fc33.x86_64
>>> vim-enhanced-8.2.1770-1.fc33.x86_64
>>>
>>> and when I type vi it launches vim.
>> I'm sorry I forgot about this alias - yes, there is an alias which is
>> applied when both - vim-minimal and vim-enhanced - are installed so it
>> launches 'vim' when you type 'vi'. I would say less people will complain
>> if something has more features than if it has less, so I'm content with
>> this alias.
>>>
>>> # whereis vi
>>> vi: /usr/bin/vi /usr/share/man/man1p/vi.1p.gz
>>> /usr/share/man/man1/vi.1.gz
>>> # /usr/bin/vi --version
>>> VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Sep 29 2020 00:00:00)
>>>
>>> It doesn't look like these are existing together just fine. It seems
>>> that vim takes over vi. Shouldn't these conflict and only one can be
>>> installed over the other?
>> 'Vi' as the original project is no longer (I'm not sure for how long)
>> shipped in Fedora. 'Vi' we ship is just 'VIM' compiled with 'small' set
>> of features (f.e. without syntax highlighting) to mimic the original
>> 'Vi'. So if you run 'vi --version' it always shows 'VIM'.
>>>
>>>> In the end I find it incorrect to mislead users by default by telling
>>>> them 'Vim works' but Vi is run instead - Vi and Vim don't have the
>>>> same
>>>> set of features, which may lead into bug reports caused by this
>>>> mistake.
>>>
>>> Isn't that the reverse behavior detailed above? I type vi on Fedora
>>> Workstation it launches vim? I assume this isn't causing bug reports.
>> You're right, as I wrote above - aliasing vi->vim doesn't seem as a
>> problem to me, but aliasing vim->vi as clime suggested can cause mislead
>> for users.
>
> I would also appreciate if "vim" ran the executable installed by
> vim-minimal. I frequently type "vim" on servers I don't own and then
> grumble that it fails and I have to run "vi" instead. It **is** vim,
> it's just not installed with that name.  Insisting that users call it
> vi when we know it's vim and they know it's vim seems unnecessary.

It's Vim but with a different set of features - VIM compiled as Vi
binary is trying to be small, kind of simulate Vi behavior without
setting 'compatible'.

Since you know it has less features, good for you. But unfortunately,
not all users know - there was already a report about Vim missing
highlighting, and the reporter was running /usr/bin/vi. So my aim is to
prevent such a report.

>
> $ rpm -qf /usr/bin/vi
> vim-minimal-8.2.1770-1.fc32.x86_64
>
> Could vim-minimal and vim-enhanced both install the same
> /etc/profile.d/vim.sh file that did something like this?
Installing the same file would mean to set conflicts between those two
package, wouldn't it? Or would you mind explaining how to achieve it?
>
> if [ -n "${BASH_VERSION-}" -o -n "${KSH_VERSION-}" -o -n
> "${ZSH_VERSION-}" ]; then
>   [ "`/usr/bin/id -u 2>/dev/null || echo 0`" -le 200 ] && return
>   # for bash and and ksh and zsh
>   case "$(type -t vim)-$(type -t vi)" in
>     file-file)
>       # both vim and vi are present
>       alias vi=vim
>       alias view="vim -R"
>       ;;
>     -file)
>       # only vim-minimal is installed, expose it as 'vim' too
>       alias vim=vi
>       ;;
>   esac
> fi
>
Looks good, although it doesn't touch the problem mistaking Vi and Vim
as I said before. I tried to come up with a little bash script which
will mention it really runs vi instead of typed vim (just the important
snippet):

alias vim="read -rep $'No vim found, using vi, press ENTER to
continue\n' -n1 -t 20 -s && vi"

This can be add into bash profile instead of 'alias vim=vi' when only
vim-minimal is installed.

Does it work for our case? IMO only problem would be with scripting, but
scripts which depend on vim and run on machine without vim-enhanced are
broken even now, so it shouldn't be a problem here.

-- 
Zdenek Dohnal
Software Engineer
Red Hat Czech - Brno TPB-C

Attachment: OpenPGP_0x15AA6A7F4D4227D7.asc
Description: application/pgp-keys

Attachment: OpenPGP_signature
Description: OpenPGP digital signature

_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux