gitpod-io / gitpod

The developer platform for on-demand cloud development environments to create software faster and more securely.
https://www.gitpod.io
GNU Affero General Public License v3.0
12.75k stars 1.22k forks source link

Epic: Vim as an explicit IDE preference #9323

Open loujaybee opened 2 years ago

loujaybee commented 2 years ago

We currently have access to workspaces via SSH, however adding Vim would make it a first-class citizen as part of the Gitpod experience. Alongside this we should consider what we can do to ensure things like dotfiles are also setup, and that workspaces potentially already load with vim + other similar tools such as tmux. This would support experiments such as https://github.com/gitpod-io/gitpod/issues/6707 where vim configuration can be presented to the user as part of onboarding.

Relates to:

gtsiolis commented 2 years ago

@loujaybee I haven't researched this in depth about this yet, but here are some early designs on what I had in mind for https://github.com/gitpod-io/gitpod/issues/7713#issuecomment-1140534710. Cc @josepjaume

Editors :a: Editors :b: Workspace Start
Editors Editors StartDropdown
josepjaume commented 2 years ago

I love this @gtsiolis! I would personally go for the first option for consistency with the rest of the IDE options :). Can't wait to be able to use this!

fcsonline commented 2 years ago

The first option looks great! And when the workspace starts, the user would be able to choose an application to open the ssh links instead Vscode.

loujaybee commented 2 years ago

@fcsonline - what application(s) are you opening for your local terminal, currently? Do you open just one, or multiple applications (like your terminal) on desktop? Having this option certainly removes some friction for command-line users, but I'm also curious about what other desktop applications you're configuring outside of the IDE / editor itself.

fcsonline commented 2 years ago

Right now none, but this would let me to associate a script to open a Terminal and enter to the Gitpod automatically. It would awesome.

axonasif commented 2 years ago

Right now none, but this would let me to associate a script to open a Terminal and enter to the Gitpod automatically. It would awesome.

That indeed would be very awesome! I'm just thinking, in order for such a thing to work, gitpod will need to use a trigger a custom URL scheme registered on the users local machine to pass the ball to the user for deciding what to do 🤔

axonasif commented 2 years ago

@loujaybee: alongside this we should consider what we can do to ensure things like dotfiles are also setup.

I think this is very relevant for ensuring a seamless experience as with VSCODE: https://github.com/gitpod-io/gitpod/issues/7592 You definitely don't want to wait for your (neo)vim setup or anything else to be finalized before your workspace can start.

While https://github.com/gitpod-io/gitpod/issues/8716 could be an alternative for this case, so users could just mount their pre-built .config/X, .cache/X and etc. dirs across workspace.

fcsonline commented 2 years ago

Right now none, but this would let me to associate a script to open a Terminal and enter to the Gitpod automatically. It would awesome.

That indeed would be very awesome! I'm just thinking, in order for such a thing to work, gitpod will need to use a trigger a custom URL scheme registered on the users local machine to pass the ball to the user for deciding what to do 🤔

Exactly. With a custom schema, we would be able to assign an application/script to do whatever. I would great!

david-bakin commented 1 year ago

As an emacs user I feel discriminated against. 😭

axonasif commented 1 year ago

Wanted to share a (unofficial) dotfiles based solution for this in case someone finds it useful for now.

https://user-images.githubusercontent.com/39482679/204090871-7abfb4b0-d757-40cb-ab0f-52f0ba5ccbd0.mp4

stale[bot] commented 1 year ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

sigmaSd commented 1 year ago

Not stale

henit-chobisa commented 1 year ago

Gitpod-NVIM from Your Menubar ✌️

Building upon @axonasif's awesome dotsh config! 🧡

https://user-images.githubusercontent.com/73993394/232240942-a1479740-df09-4927-973c-e8794b64095d.mov

PabloScolpino commented 1 year ago

Hi!

It would complement this feature to have the generated SSH command include the list of port forwards defined in the .gitpod.yml file. Not sure if this was considered, but since the default is going to be the SSH connection string dialog, and nothing else is going to be launched in the user's workstation, port translation would need to be addressed.

axonasif commented 1 year ago

Hi @PabloScolpino, I think you're looking for https://www.gitpod.io/blog/local-app If you keep the local-companion-app program running in the background, it will take care of port forwarding for you.

Also, shameless plug: A wrapper around SSH for port forwarding: https://github.com/axonasif/gssh

loujaybee commented 1 year ago

Not entirely resolving this issue, but definitely related:

https://www.gitpod.io/changelog/code-in-the-terminal-without-leaving-your-browser!

Drop any feedback here: https://github.com/gitpod-io/gitpod/issues/17724

jwpjrdev commented 1 year ago

@loujaybee came here to say that!