Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Vim is not available as external editor on windows #1316

Open
ShrykeWindgrace opened this issue Sep 7, 2022 · 7 comments
Open

Vim is not available as external editor on windows #1316

ShrykeWindgrace opened this issue Sep 7, 2022 · 7 comments
Labels
bug Something isn't working dormant Marked by stale bot on close good first issue Good for newcomers help wanted Extra attention is needed

Comments

@ShrykeWindgrace
Copy link

ShrykeWindgrace commented Sep 7, 2022

Thanks for gitui, it makes my daily life easier=)

There is, however, one thing that seems break my current flow - I can not launch vim from within gitui.

Describe the bug
Vim is not available as external editor

To Reproduce
Steps to reproduce the behavior:

  1. Navigate to a repo with modified files, run gitui
  2. Chose a file with modifications
  3. Hit 'e' button to edit this file
  4. A "popup" appears:
failed to launch editor:
"vim": program not found

Same bug observed when trying to '^e'dit commit message in external editor.

Expected behavior
A vim instance with selected file loaded.

Context (please complete the following information):

  • OS/Distro + Version: win10 (build 21H2-19044.1889)
  • GitUI Version 0.21.0
  • Running in WindowsTerminal and pwsh-7.2.6
  • both vim and gitui are installed via chocolatey

Additional context
vim is present in path:

PS1> where.exe vim
C:\Windows\vim.bat

and git is configured to use vim

git config  -l | rg editor
core.editor=vim
@ShrykeWindgrace ShrykeWindgrace added the bug Something isn't working label Sep 7, 2022
@extrawurst
Copy link
Collaborator

need windows user support for this

@extrawurst extrawurst added help wanted Extra attention is needed good first issue Good for newcomers labels Sep 18, 2022
@ShrykeWindgrace
Copy link
Author

I did a bit of digging

  • "real" vim in my $PATH is, in fact, a bat script:
PS> (Get-Command vim).Name
vim.bat

I see the following solutions:

  • (workaround) explicitly provide extension; might lead to bugs if one uses git's config in a cross-platform (or cross-installation) manner (that's my case, unfortunately)
  • fix behavior of the library responsible for running external commands; that would be waaaay out of my depth, I can't write a helloworld in rust
  • bikeshed a test in gitui "if the editor command has no extension and we are on windows, then try with the extensions form that env var..."
  • some other option I might have missed?

@ShrykeWindgrace
Copy link
Author

Aha, it appears that things are not that easy upstream...

rust-lang/rust#37519

https://doc.rust-lang.org/src/std/process.rs.html#540-543

rust-lang/rust#37381

... and all the way down the rabbit whole...

@metasong
Copy link

vs code is also not usable because of this.
I have mine editor in git config:

git config -l|?{$_ -like '*edit*'}
core.editor=code --wait

and

gcm code

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Application     code.cmd                                           0.0.0.0    C:\Program Files\Microsoft VS Code\bin\code.cmd

@pm100
Copy link
Contributor

pm100 commented Apr 8, 2023

investigating this.

  • the issue is trying to run a command script (.bat or .cmd) but only giving the root name - vim, code etc.
  • works fine with vim.bat or code.cmd
  • not an issue with gitui, a simple 5 line test prog has the same issue
  • importantly git on windows works with editor set to 'vim'. So this is a backwards step as far as a regular git user on windows is concerned

Thr std::Process code is really very broken, making all sorts of odd assumptions trying to make things work 'by magic'. I will file a bug but dont hold your breath.

I think I can come up with a solution - will update here

@stale
Copy link

stale bot commented Oct 15, 2023

This issue has been automatically marked as stale because it has not had any activity half a year. It will be closed in 14 days if no further activity occurs. Thank you for your contributions.

@stale stale bot added the dormant Marked by stale bot on close label Oct 15, 2023
@mcmoodoo
Copy link

what about vim bindings in gitui? do they exist and just not enabled by default? I mean like to move up/down (j/k). Otherwise I will gladly look into implementing this as a feature. Let me know please.

I am on Linux btw.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working dormant Marked by stale bot on close good first issue Good for newcomers help wanted Extra attention is needed
Projects
None yet
5 participants