Cygwin: how does /usr/bin/vim resolve to a specific version of vim?
This started when I ran vim
in Cygwin
and all of a sudden I got the error message: E185: Cannot find color scheme 'alduin'
when I didn't used to get this error prior to today.
I had been messing with installing Cygwin packages, and must've inadvertently installed a new version of vim
(?): I now have the folders /usr/share/vim/vim74/
and /usr/share/vim/vim80/
.
When I run vim
the splash screen does say it's version 8.0.1567. And I guess I put alduin.vim
in .../vim74/
and not .../vim80/
My question: how does /usr/bin/vim.exe
get associated with a particular version of vim? I.e. when I run "vim
" why is vim 8.0 invoked and not vim 7.4?
> which vim
/usr/bin/vim
>
> ls -l /usr/bin/vim*
-rwxr-xr-x 1 User None 2645011 Mar 4 2018 /usr/bin/vim.exe
lrwxrwxrwx 1 User None 7 Dec 14 21:39 /usr/bin/vimdiff -> vim.exe
-rwxr-xr-x 1 User None 2099 Mar 4 2018 /usr/bin/vimtutor
lrwxrwxrwx 1 Usr None 8 Dec 14 21:31 /usr/bin/vimx -> gvim.exe
>
> find /usr/share/vim/vim74/ -name "*.exe"
> find /usr/share/vim/vim80/ -name "*.exe"
>
> printenv | grep -i vim
>
Note, above, that /usr/bin/vim
is not a softlink to the executable in one of my two vim versions' directories, which is how I'd have assumed this version-selection would've been done.
vim cygwin
add a comment |
This started when I ran vim
in Cygwin
and all of a sudden I got the error message: E185: Cannot find color scheme 'alduin'
when I didn't used to get this error prior to today.
I had been messing with installing Cygwin packages, and must've inadvertently installed a new version of vim
(?): I now have the folders /usr/share/vim/vim74/
and /usr/share/vim/vim80/
.
When I run vim
the splash screen does say it's version 8.0.1567. And I guess I put alduin.vim
in .../vim74/
and not .../vim80/
My question: how does /usr/bin/vim.exe
get associated with a particular version of vim? I.e. when I run "vim
" why is vim 8.0 invoked and not vim 7.4?
> which vim
/usr/bin/vim
>
> ls -l /usr/bin/vim*
-rwxr-xr-x 1 User None 2645011 Mar 4 2018 /usr/bin/vim.exe
lrwxrwxrwx 1 User None 7 Dec 14 21:39 /usr/bin/vimdiff -> vim.exe
-rwxr-xr-x 1 User None 2099 Mar 4 2018 /usr/bin/vimtutor
lrwxrwxrwx 1 Usr None 8 Dec 14 21:31 /usr/bin/vimx -> gvim.exe
>
> find /usr/share/vim/vim74/ -name "*.exe"
> find /usr/share/vim/vim80/ -name "*.exe"
>
> printenv | grep -i vim
>
Note, above, that /usr/bin/vim
is not a softlink to the executable in one of my two vim versions' directories, which is how I'd have assumed this version-selection would've been done.
vim cygwin
Why are you looking for the .exe in /usr/share? That's not where the symlink points (and not where executables are kept in general).
– grawity
Dec 20 '18 at 7:32
@grawity - Umm...not really knowing what I was doing, I think I did a "find / -name "*vim*"
and those locations came up in the results. But here's the crux of my question/confusion is: when I run "vim", I think I am running/usr/bin/vim
- true? I think this is backed up by the output of "which vim
" But then why isn't/usr/bin/vim
a symlink?
– StoneThrow
Dec 20 '18 at 7:44
add a comment |
This started when I ran vim
in Cygwin
and all of a sudden I got the error message: E185: Cannot find color scheme 'alduin'
when I didn't used to get this error prior to today.
I had been messing with installing Cygwin packages, and must've inadvertently installed a new version of vim
(?): I now have the folders /usr/share/vim/vim74/
and /usr/share/vim/vim80/
.
When I run vim
the splash screen does say it's version 8.0.1567. And I guess I put alduin.vim
in .../vim74/
and not .../vim80/
My question: how does /usr/bin/vim.exe
get associated with a particular version of vim? I.e. when I run "vim
" why is vim 8.0 invoked and not vim 7.4?
> which vim
/usr/bin/vim
>
> ls -l /usr/bin/vim*
-rwxr-xr-x 1 User None 2645011 Mar 4 2018 /usr/bin/vim.exe
lrwxrwxrwx 1 User None 7 Dec 14 21:39 /usr/bin/vimdiff -> vim.exe
-rwxr-xr-x 1 User None 2099 Mar 4 2018 /usr/bin/vimtutor
lrwxrwxrwx 1 Usr None 8 Dec 14 21:31 /usr/bin/vimx -> gvim.exe
>
> find /usr/share/vim/vim74/ -name "*.exe"
> find /usr/share/vim/vim80/ -name "*.exe"
>
> printenv | grep -i vim
>
Note, above, that /usr/bin/vim
is not a softlink to the executable in one of my two vim versions' directories, which is how I'd have assumed this version-selection would've been done.
vim cygwin
This started when I ran vim
in Cygwin
and all of a sudden I got the error message: E185: Cannot find color scheme 'alduin'
when I didn't used to get this error prior to today.
I had been messing with installing Cygwin packages, and must've inadvertently installed a new version of vim
(?): I now have the folders /usr/share/vim/vim74/
and /usr/share/vim/vim80/
.
When I run vim
the splash screen does say it's version 8.0.1567. And I guess I put alduin.vim
in .../vim74/
and not .../vim80/
My question: how does /usr/bin/vim.exe
get associated with a particular version of vim? I.e. when I run "vim
" why is vim 8.0 invoked and not vim 7.4?
> which vim
/usr/bin/vim
>
> ls -l /usr/bin/vim*
-rwxr-xr-x 1 User None 2645011 Mar 4 2018 /usr/bin/vim.exe
lrwxrwxrwx 1 User None 7 Dec 14 21:39 /usr/bin/vimdiff -> vim.exe
-rwxr-xr-x 1 User None 2099 Mar 4 2018 /usr/bin/vimtutor
lrwxrwxrwx 1 Usr None 8 Dec 14 21:31 /usr/bin/vimx -> gvim.exe
>
> find /usr/share/vim/vim74/ -name "*.exe"
> find /usr/share/vim/vim80/ -name "*.exe"
>
> printenv | grep -i vim
>
Note, above, that /usr/bin/vim
is not a softlink to the executable in one of my two vim versions' directories, which is how I'd have assumed this version-selection would've been done.
vim cygwin
vim cygwin
edited Dec 20 '18 at 8:31
asked Dec 20 '18 at 7:12
StoneThrow
157110
157110
Why are you looking for the .exe in /usr/share? That's not where the symlink points (and not where executables are kept in general).
– grawity
Dec 20 '18 at 7:32
@grawity - Umm...not really knowing what I was doing, I think I did a "find / -name "*vim*"
and those locations came up in the results. But here's the crux of my question/confusion is: when I run "vim", I think I am running/usr/bin/vim
- true? I think this is backed up by the output of "which vim
" But then why isn't/usr/bin/vim
a symlink?
– StoneThrow
Dec 20 '18 at 7:44
add a comment |
Why are you looking for the .exe in /usr/share? That's not where the symlink points (and not where executables are kept in general).
– grawity
Dec 20 '18 at 7:32
@grawity - Umm...not really knowing what I was doing, I think I did a "find / -name "*vim*"
and those locations came up in the results. But here's the crux of my question/confusion is: when I run "vim", I think I am running/usr/bin/vim
- true? I think this is backed up by the output of "which vim
" But then why isn't/usr/bin/vim
a symlink?
– StoneThrow
Dec 20 '18 at 7:44
Why are you looking for the .exe in /usr/share? That's not where the symlink points (and not where executables are kept in general).
– grawity
Dec 20 '18 at 7:32
Why are you looking for the .exe in /usr/share? That's not where the symlink points (and not where executables are kept in general).
– grawity
Dec 20 '18 at 7:32
@grawity - Umm...not really knowing what I was doing, I think I did a "
find / -name "*vim*"
and those locations came up in the results. But here's the crux of my question/confusion is: when I run "vim", I think I am running /usr/bin/vim
- true? I think this is backed up by the output of "which vim
" But then why isn't /usr/bin/vim
a symlink?– StoneThrow
Dec 20 '18 at 7:44
@grawity - Umm...not really knowing what I was doing, I think I did a "
find / -name "*vim*"
and those locations came up in the results. But here's the crux of my question/confusion is: when I run "vim", I think I am running /usr/bin/vim
- true? I think this is backed up by the output of "which vim
" But then why isn't /usr/bin/vim
a symlink?– StoneThrow
Dec 20 '18 at 7:44
add a comment |
1 Answer
1
active
oldest
votes
Through the package manager (Cygwin's, but the same applies to "real" Linux distributions as well), you can only install one particular version of Vim. So /usr/bin/vim.exe
(with /usr/bin
being owned by the package manager) does not need to be a link. The Vim package can directly place the executable there.
Now for the runtime files (under /usr/share/vim
), following that "single version" argument, there's also no need for a version number inside the path, but there's a version in Vim's default install script (Makefile
), and most package maintainers keep it that way. Depending on how your (accidental) upgrade worked, you either have a full abandoned Vim 7.4 runtime at /usr/share/vim/vim74/
(and vim.exe
got overwritten), or this is just a mostly empty skeleton directory hierarchy that only contains those files that you added to it (like your colors/alduin.vim
).
To avoid such problems in the future, please stay off the system directories, and instead place your Vim customization in the user-specific directory; i.e. ~/.vim/
, as described by :help load-plugins
. Unix / Linux (where Vim comes from) has a clean separation between system and user, and even though this has been less pronounced under Windows (at least in its early history), it's advisable to stick to this, especially with Cygwin.
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "3"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f1386164%2fcygwin-how-does-usr-bin-vim-resolve-to-a-specific-version-of-vim%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Through the package manager (Cygwin's, but the same applies to "real" Linux distributions as well), you can only install one particular version of Vim. So /usr/bin/vim.exe
(with /usr/bin
being owned by the package manager) does not need to be a link. The Vim package can directly place the executable there.
Now for the runtime files (under /usr/share/vim
), following that "single version" argument, there's also no need for a version number inside the path, but there's a version in Vim's default install script (Makefile
), and most package maintainers keep it that way. Depending on how your (accidental) upgrade worked, you either have a full abandoned Vim 7.4 runtime at /usr/share/vim/vim74/
(and vim.exe
got overwritten), or this is just a mostly empty skeleton directory hierarchy that only contains those files that you added to it (like your colors/alduin.vim
).
To avoid such problems in the future, please stay off the system directories, and instead place your Vim customization in the user-specific directory; i.e. ~/.vim/
, as described by :help load-plugins
. Unix / Linux (where Vim comes from) has a clean separation between system and user, and even though this has been less pronounced under Windows (at least in its early history), it's advisable to stick to this, especially with Cygwin.
add a comment |
Through the package manager (Cygwin's, but the same applies to "real" Linux distributions as well), you can only install one particular version of Vim. So /usr/bin/vim.exe
(with /usr/bin
being owned by the package manager) does not need to be a link. The Vim package can directly place the executable there.
Now for the runtime files (under /usr/share/vim
), following that "single version" argument, there's also no need for a version number inside the path, but there's a version in Vim's default install script (Makefile
), and most package maintainers keep it that way. Depending on how your (accidental) upgrade worked, you either have a full abandoned Vim 7.4 runtime at /usr/share/vim/vim74/
(and vim.exe
got overwritten), or this is just a mostly empty skeleton directory hierarchy that only contains those files that you added to it (like your colors/alduin.vim
).
To avoid such problems in the future, please stay off the system directories, and instead place your Vim customization in the user-specific directory; i.e. ~/.vim/
, as described by :help load-plugins
. Unix / Linux (where Vim comes from) has a clean separation between system and user, and even though this has been less pronounced under Windows (at least in its early history), it's advisable to stick to this, especially with Cygwin.
add a comment |
Through the package manager (Cygwin's, but the same applies to "real" Linux distributions as well), you can only install one particular version of Vim. So /usr/bin/vim.exe
(with /usr/bin
being owned by the package manager) does not need to be a link. The Vim package can directly place the executable there.
Now for the runtime files (under /usr/share/vim
), following that "single version" argument, there's also no need for a version number inside the path, but there's a version in Vim's default install script (Makefile
), and most package maintainers keep it that way. Depending on how your (accidental) upgrade worked, you either have a full abandoned Vim 7.4 runtime at /usr/share/vim/vim74/
(and vim.exe
got overwritten), or this is just a mostly empty skeleton directory hierarchy that only contains those files that you added to it (like your colors/alduin.vim
).
To avoid such problems in the future, please stay off the system directories, and instead place your Vim customization in the user-specific directory; i.e. ~/.vim/
, as described by :help load-plugins
. Unix / Linux (where Vim comes from) has a clean separation between system and user, and even though this has been less pronounced under Windows (at least in its early history), it's advisable to stick to this, especially with Cygwin.
Through the package manager (Cygwin's, but the same applies to "real" Linux distributions as well), you can only install one particular version of Vim. So /usr/bin/vim.exe
(with /usr/bin
being owned by the package manager) does not need to be a link. The Vim package can directly place the executable there.
Now for the runtime files (under /usr/share/vim
), following that "single version" argument, there's also no need for a version number inside the path, but there's a version in Vim's default install script (Makefile
), and most package maintainers keep it that way. Depending on how your (accidental) upgrade worked, you either have a full abandoned Vim 7.4 runtime at /usr/share/vim/vim74/
(and vim.exe
got overwritten), or this is just a mostly empty skeleton directory hierarchy that only contains those files that you added to it (like your colors/alduin.vim
).
To avoid such problems in the future, please stay off the system directories, and instead place your Vim customization in the user-specific directory; i.e. ~/.vim/
, as described by :help load-plugins
. Unix / Linux (where Vim comes from) has a clean separation between system and user, and even though this has been less pronounced under Windows (at least in its early history), it's advisable to stick to this, especially with Cygwin.
answered Dec 20 '18 at 7:57
Ingo Karkat
17.3k22343
17.3k22343
add a comment |
add a comment |
Thanks for contributing an answer to Super User!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f1386164%2fcygwin-how-does-usr-bin-vim-resolve-to-a-specific-version-of-vim%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Why are you looking for the .exe in /usr/share? That's not where the symlink points (and not where executables are kept in general).
– grawity
Dec 20 '18 at 7:32
@grawity - Umm...not really knowing what I was doing, I think I did a "
find / -name "*vim*"
and those locations came up in the results. But here's the crux of my question/confusion is: when I run "vim", I think I am running/usr/bin/vim
- true? I think this is backed up by the output of "which vim
" But then why isn't/usr/bin/vim
a symlink?– StoneThrow
Dec 20 '18 at 7:44