pivotal / workstation-setup

Scripts to automatically set up a machine for development the "Tanzu Labs" way
https://github.com/pivotal/workstation-setup
MIT License
325 stars 240 forks source link

Replace Pivotal Vim configuration with SpaceVim #257

Closed JamesMcMahon closed 5 years ago

JamesMcMahon commented 5 years ago

SpaceVim is an up to date, community driven, modern set of plugins for Vim. The Pivotal Vim script hasn't be updated in awhile.

May be time to leverage the wider community instead of something more bespoke.

professor commented 5 years ago

@nertzy @willmadison @openbl @dirkjot please ask the Vim users near you if this is a welcomed change

benchristel commented 5 years ago

Paging my local vim expert, @oliverralbertini

dirkjot commented 5 years ago

People here are all using neovim , with Luan's setting. Not a VIM user but seems pretty legit.

On Fri, Apr 5, 2019, 17:38 Ben Christel notifications@github.com wrote:

Paging my local vim expert, @oalbertini https://github.com/oalbertini

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/pivotal/workstation-setup/pull/257#issuecomment-480459366, or mute the thread https://github.com/notifications/unsubscribe-auth/AAy5NdM2ZWyyt_zjyfYou9pD-CDgIg9Sks5vd-yDgaJpZM4cTgfn .

oliverralbertini commented 5 years ago

I haven't tried SpaceVim, but will try it soon.

Paging @luan because his vim config is really popular around Pivotal, and for good reason. It provides easy setup, as long as you have a recent vim or neovim. Also provides linting using Ale and some really sane defaults. I install this on every workstation (along with his tmux config). Also, it allows you to add your own configurations/plugins in a ~/.vimrc.local.

The only criticism I have is that it brings a lot of stuff. I don't think I need/use most of the features that come with @luan's config. It might be nice to have a lighter-weight, sane set of defaults for vim, which was kind of the aim of this Tim Pope project, vim-sensible.

JamesMcMahon commented 5 years ago

Let me provide a little more context to this PR. After running the setup script on a few workstations I was setting up I notice the vim setup had a few issues with plugins not working entirely, its been a little bit but if I remember correctly some of them just refused to load. After looking the Pivotal vim repo I noticed it hadn't been committed to in more then a year and was marked "legacy".

My vim game isn't as a strong as it once was, but I have been using SpaceVim to get some of my personal machine up and running with reasonable defaults. It has some nice points:

I don't have deep levels of experience with SpaceVim yet, I've mostly been using it casually. I actually have more exposure to the concepts from using SpaceMacs, which I know is likely to get me stoned to death in certain vim circles. Don't take this PR as a hard sell, but it seemed like a conversation worth engaging in.

luan commented 5 years ago

@oliverralbertini thanks for roping me in :)

TL;DR: I don't believe SpaceVim to be good for the larger Vim community. I almost rather have no config rather than use an off the shelf distribution by default.

Please don't take this as me trying to sell anyone on my configs (https://github.com/luan/vimfiles is my stable one while I also have https://github.com/luan/nvim which is a NeoVim only experiment I'm doing with a few teams on CloudFoundry).


My opinion on SpaceVim

I think SpaceVim, much like Spacemacs, is a step in the wrong direction as far as building a better community around Vim goes. Some of the functionality that is quite cool in SpaceVim is custom built and not exported as isolated plugins that maintainers of other distributions can use. This doesn't help foster a better community and only serves to pull in untrained eyes into the shiny features.

Moreover, having a toml interface to simplify the configuration will drive more and more people to have absolutely no idea how vim configs work. And if one does get interested and goes reading SpaceVim's code, they will most likely get confused and leave, either creating an issue or walking away. It's an extremely factored codebase that looks more like a big software project than a Vim distribution.

The beauty of Vim is how easy it is to customize it, buying into to an off the shelf config that does as much as this one paints one into a very complicated corner and ultimately drives the community away from building the really cool stuff we've been building for the past years.

I think Pivotal adopting something like this can make sense, we being a large organization without ability to focus on having our own curated editor configuration. But I don't like the message using a config like this sends for reasons I wrote above.

I believe every Vim user (note that this isn't necessarily every Pivot that uses Vim, but people that call themselves Vim users even outside of work hours :P) should know how to configure Vim on their own on macro and micro levels.

My Vim configs didn't start with me trying to fill in a gap at my day job, but they're simply the configs I always used on my side projects and CloudFoundry only started using it after I brought it in to a few projects and it got picked up by the maintainers of our workstation setup. But teams sometimes build their own configs or make their own choices and that's OK, encouraged even.


My pitch for my config

https://github.com/luan/nvim is the config I've been mostly maintaining recently, mostly because I wanted to untether myself from supporting vim AND neovim at the same time and I wanted to cleanly stop using some of the convoluted bindings that my original (stable) config ended up at over the years.

https://github.com/luan/nvim has an alpha status and is currently only being used by people that know that, which has given us a lot of power to change things drastically when they don't work well. Its got the same idea around mnemonic bindings on the <space> that SpaceVim has but a lot less default bindings and default features. Some guiding principles:

I'm happy to chat more about this with whoever is interested, but for now I think I wrote enough :)

professor commented 5 years ago

@JamesMcMahon -- Pivotal is in the process of moving all of the repos from pivotal-legacy org to pivotal. When the process started pivotal had scores of github orgs and is consolidating them on one repo. The crew needed to do a github org rename so that the final destination org would be called pivotal.

In general, I'm not worried about a solid tech not having a commit for a year, that may be the sign of stability.

I've not been a fan of how vim is configured with workstation-setup, however, I'm looking to the Pivotal vim community to help drive us towards a solution.

Kehrlann commented 5 years ago

I'm slowly learning vim, and I would love having a simpler vim config - maybe a way to opt in for the full config if desired. TBH most of the folks around me do not use vim at all, so I'm not sure it makes a big difference to them

JamesMcMahon commented 5 years ago

Would it possible to move vim into an add-on to the script?

Much like node you would now have to explicitly add vim.

On Thu, Apr 11, 2019, 07:23 Daniel Garnier-Moiroux notifications@github.com wrote:

I'm slowly learning vim, and I would love having a simpler vim config - maybe a way to opt in for the full config if desired. TBH most of the folks around me do not use vim at all, so I'm not sure it makes a big difference to them

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/pivotal/workstation-setup/pull/257#issuecomment-482075211, or mute the thread https://github.com/notifications/unsubscribe-auth/AA38xIIkjvT-ePqmuIWnGR79eWjIkYszks5vfxs9gaJpZM4cTgfn .

Kehrlann commented 5 years ago

Maybe keeping a minimal vim config, thinking basic stuff like

set number set syntax on set history=1000 set incsearch set hlsearch set tabstop=2 set shiftwidth=2 set expandtab set autoindent

Or whatever makes most sense for occasional vim users.

professor commented 5 years ago

Here's how I often frame the question, "What would most engineers expect to be on this machine when starting a new project or changing teams?"

As such, what would most vim users expect on the machine? If many people are using luan's config, then that is appealing to me.

It's fair for a team to replace or enhance a common setup.

dirkjot commented 5 years ago

I think many vim users' expectations are stuck in the past, because vim stopped innovating ten years ago.

I also think many of them would be delighted by neovim and Luan's config.

Dirk, emacs user since Dawn of Time

On Thu, Apr 11, 2019, 08:50 Todd Sedano notifications@github.com wrote:

Here's how I often frame the question, "What would most engineers expect to be on this machine when starting a new project or changing teams?"

As such, what would most vim users expect on the machine? If many people are using luan's config, then that is appealing to me.

It's fair for a team to replace or enhance a common setup.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/pivotal/workstation-setup/pull/257#issuecomment-482171315, or mute the thread https://github.com/notifications/unsubscribe-auth/AAy5NfCiltY0trrcawquPXiyks1_WuV5ks5vf1mogaJpZM4cTgfn .

kejadlen commented 5 years ago

I also think many of them would be delighted by neovim and Luan's config.

FWIW, this is not true in the Seattle office. We forked the pivotal/vim-config repo a long time ago and started by stripping out all of the plugins and starting fresh. For the most part, it seems like most of the vim users here prefer a more vanilla vim than a tricked out one.

For me personally, I use vim because it’s an amazing text editor and designed around composition. But I also recognize that I’m not the average vim user. ¯_(ツ)_/¯

For the record, my own .vimrc and plugins (which looking through, I realize I need to prune).

JamesMcMahon commented 5 years ago

After using it a little bit more I actually have come to dislike a lot of the default behavior SpaceVim foists on you, so I am going to withdraw this PR.

I don't regret making this PR because I am glad of the discussion it kicked off. We still have a broken vim script in here, so we may want to think of fixing or removing that.