This morning, a popular Stack Overflow question hit a major milestone:
You’re not alone, jclancy. In the five years since this question was asked, there have been over a million other developers who got stuck in Vim and couldn’t escape without a bit of help. Indeed, the difficulty of quitting the Vim editor is a common joke among developers.
I’ve been told by experienced Vim users that this reputation is unfair, and I’m sure they’re right (even I’ve gotten the hang of it in the last few years). I think there are two reasons it’s easy to forget how to exit Vim: developers are often dropped into Vim from a git command or another situation where they didn’t expect to be, and they run into it infrequently enough to forget how they solved it last time.
In honor of this milestone, we decided to take a look at the data surrounding this question. In particular, we’ll try measuring who is most likely to get stuck in Vim as opposed to using it intentionally, and examining how that balance varies by country and by programming language.
How many people have been struggling to exit Vim?
In the last year, How to exit the Vim editor has made up about .005% of question traffic: that is, one out of every 20,000 visits to Stack Overflow questions. That means during peak traffic hours on weekdays, there are about 80 people per hour that need help getting out of Vim.
Has the percentage of traffic it makes up changed over time? That is, have developers started learning to exit Vim on their own?
It doesn’t look like it. The question was asked in August 2012, and for a few months it got very little traffic. Then it began growing in the following two years, presumably as more sources linked to it online and it moved to the top of search engine results. It’s been relatively steady for the last two years. This doesn’t necessarily mean the same people visited it again and again, of course; it could represent relatively new programmers getting stuck in Vim for the first time.
Differences across countries
As we saw in a previous blog post, we can use Stack Overflow traffic to learn a lot about the geographical distribution of developers.
Let’s consider what percentage of visits to Vim this question comprises within each country. In countries with a lot of experienced Vim users, we’d expect this percentage to be low. When it’s high, it indicates many users got stuck in Vim when they didn’t necessarily expect to.
It looks like developers in Ukraine, Turkey and Indonesia are getting stuck in Vim quite a bit: it makes up a larger portion of their Vim questions than in any other country. In contrast, in China, Korea and Japan the fraction going to this question is one-tenth as much. That might indicate that when developers in these countries enter Vim, they usually meant to do so, and they know how to get out of it.
What kind of programmers get stuck in Vim?
It’s also likely that users of different programming languages will have different experiences with Vim. We can investigate this by stratifying the “Exit Vim / Total Vim” percentage across each user’s main programming technology.
We’ll define this based on what Stack Overflow tag they visit most often. (For instance, my most visited tag is R: it makes up 52% of my question views). It’s not a perfect measure, but it’s reliable enough to give a sense of the breakdown by language. (For this analysis, we considered only registered users with at least 100 visits to the site).
The developers who are most likely to get stuck in Vim are front-end web developers: those who primarily visit tags like JQuery, CSS, and AngularJS. They’re followed by Microsoft developers (C# and SQL Server) and mobile (Android and iOS). These developers usually work with an IDE (Visual Studio, Eclipse, Xcode, and so on), rather than a plain text editor, so it makes sense that they’re relatively more likely to get “stuck” in Vim rather than to open it intentionally.
The developers least likely to get stuck in Vim are those who program in C, C++, Python and Ruby. These languages make sense to me: they are a combination of low-level languages and scripting languages that are often used with a plain text editor rather than an IDE, so they have the experience to escape it without a Google search.
Conclusion
I was amused when I saw this question approach a million visits, but I was also proud that I work for, and contribute answers to, a site that helps so many developers. You never know when an answer you contribute could help millions of people, whether it shares how to undo a git commit or how the yield keyword in Python works.
If you want to contribute yourself, we encourage you to join the world’s largest developer community, whether it’s to ask and answer questions, get your next job, or build your online presence with a Developer Story. You can also use tools like Stack Overflow Trends to learn more about what our data can tell you about software developers.
In any case, next time you solve your problem through Stack Overflow, remember the hundreds of thousands of users who regularly ask, answer, edit, and moderate the site to make it all possible.
-
Vijay Kumar Attri
-
Anirudh Mathad
-
Jon
-
Alejandro Matias Ravasio
-
vivekgani
-
Morgan Feldon
-
Dutchie
-
-
Sourav Ghosh
-
Veaceslav Gaidarji
-
DimaNYC
-
Josué Morales
-
Irvandoval
-
-
Cameron
-
Tilghman Lesher
-
Bishop Clark
-
Tilghman Lesher
-
-
Lliamander
-
-
mager
-
Heath Snoek
-
DimaNYC
-
S Stewart
-
Mark Anderson
-
kbielefe
-
-
-
-
Braiam
-
Ansel Santosa
-
I’m Luis!
-
Frédéric Delaporte
-
-
-
DeAca
-
jacks
-
Koen Dejonghe
-
DeAca
-
-
-
-
Andrew Leach
-
Drew
-
jacks
-
-
-
Martin Tee
-
Marcelo Canina
-
Ashok
-
-
Timothy Choi
-
Marcelo Canina
-
mo
-
Marcelo Canina
-
mo
-
Marcelo Canina
-
mo
-
-
-
-
Martin Tee
-
Timothy Choi
-
-
-
Peter Mortensen
-
William Estoque
-
asd
-
Marcelo Canina
-
Matt Williams
-
Mike
-
Jym Dyer
-
-
-
Kernelcoffee
-
MadeInNY
-
-
Cher Stewart
-
Luís Muniz
-
-
S Stewart
-
jim lesperance
-
Haures
-
jim lesperance
-
jim lesperance
-
-
-
Schwechater
-
Mark Anderson
-
Bernd Paysan
-
Néstor Espinoza
-
Koen Dejonghe
-
Donkey Puncherello
-
a_horse
-
Martin
-
Xiong Chiamiov
-
alavers
-
Chris Myers
-
MaxSchumacher
-
-
Eion Robb
-
jsroyal
-
Mr. Xcoder
-
aaronchall
-
-
Yann Dìnendal
-
warren5236
-
Matias Fernandez
-
-
Matt Gracie
-
Ralph Embree
-
-
Hoppinglife
-
lowatt
-
MrHublot
-
-
Toni Lähdekorpi
-
TerryGauchat
-
marcogomes
-
TerryGauchat
-
Ralph Embree
-
TerryGauchat
-
Ralph Embree
-
EE
-
-
-
-
Thor Heyerdahl
-
TerryGauchat
-
-
NoobLance
-
ollieclark
-
-
Charles Wolfe
-
David
-
Random832
-
Iván Castellanos
-
Kurt Mueller
-
Robert Klemme
-
-
Adam Lear
-
-
Léo Martin
-
mimoo
-
Tomás Castro López
-
Chris Myers
-
ProgrammingNewbie .
-
-
-
Drop Message
-
Gabriel Laughlin
-
Drop Message
-
Julio Bastida
-
-
-
Albert Gomis Verdu
-
Gen Lee
-
Graham Harwood
-
Jacob Lindquist
-
ThiefMaster
-
Benjamin Babik
-
Matthew
-
-
Timothy (TRiG)
-
Matthew
-
Thuglas Nasty
-
-
AzSandrat
-
and then some
-
sergeydgr8
-
and then some
-
Puns ponies podcasts
-
-
Drop Message
-
-
MaxSchumacher
-
-
the root
-
Eugene Naydenov
-
-
Santiago
-
HappyzLife
-
bit2shift
-
Mosab Ibrahim
-
-
Odd Dahl
-
Eric Zeller
-
Drop Message
-
kchassa
-
-
Aldo Fregoso
-
Shane Xie
-
Milutin
-
Fredrik Edin
-
Taylor Moore
-
Milutin
-
-
-
-
-
Mart
-
Thomas Spear
-
commenter
-
Doktoro Kiu
-
Thuglas Nasty
-
Curt J. Sampson
-
Adrian Lopez
-
-
Emir I. Kurtovic
-
Patrick Jones
-
Seiti Yamashiro
-
-
-
Mert Mumtaz
-
Owen Iverson
-
Doktoro Kiu
-
Cameron Pickerill
-
DarioCorno
-
Max
-
-
Roman Alexeev
-
Max
-
-
Doktoro Kiu
-
Max
-
Jym Dyer
-
-
-
Erick
-
Doktoro Kiu
-
neminem
-
-
-
-
John Hascall
-
Elijah
-
Ben
-
Pierce Corcoran
-
Luciano Unknown
-
pepe Sandoval
-
Doktoro Kiu
-
-
Sarah Parker
-
DarioCorno
-
iDerailThings
-
Cronky
-
iDerailThings
-
Cronky
-
Max
-
-
-
-
Thuglas Nasty
-
-
Daniel Little
-
zutroy101
-
OK_Komputer
-
-
OnceBuilder CMS
-
Göran Törnquist
-
Daniel
-
Ralph Embree
-
jaymzru
-
Ralph Embree
-
-
-
Kerim
-
Reorx
-
Kerim
-
Reorx
-
-
-
-
-
Eko Suprapto Wibowo
-
Coding.JS
-
Donald E. Foss
-
David Nguyen
-
Richard C Yeh
-
andrewjgrimm
-
Michael Elliott
-
andrewjgrimm
-
RebeccaH
-
-
-
-
David Hughes
-
Papayaman1000
-
Ralph Embree
-
Matt Falcon
-
neminem
-
-
-
peterh
-
ronbreen
-
Matt Falcon
-
Pohojan poika
-
shompol
-
Pohojan poika
-
-
-
Steven
-
-
ronbreen
-
ronbreen
-
Matt Falcon
-
duder1
-
Cronky
-
Garry Filakhtov
-
Colin
-
poiuz
-
Garry Filakhtov
-
CJSchneider2
-
-
hackel
-
-
kyklous
-
Chris Wesseling
-
kyklous
-
-
-
Steven
-
-
Valentin Ignatyev
-
Krittayot Techasombooranakit
-
Nick Roosevelt
-
cedric simon
-
Konstantin
-
Beobachter
-
-
-
-
kyklous
-
Logan Zhou
-
vickodin
-
-
Ronak Sunil Shah
-
nekoyumi
-
Reorx
-
Michael
-
Elton Jain
-
Reorx
-
-
-
PhasmaFelis
-
Daniel
-
David Granda
-
-
Ruby
-
thapakazi
-
Konstantin
-
cedric simon
-
Christopher Beck
-
Paweł Breś
-
-
Christian Wattengård
-
Chris Wesseling
-
Ralph Embree
-
cedric simon
-
-
Konstantin
-
-
Per Wigren
-
hackel
-
-
Archibald Tuttle
-
Neogene
-
birgersp
-
-
Elton Jain
-
Ammar Khan
-
carpmeister
-
Andrew Poltavets
-
-
agares
-
Haddaway
-
Jim Kerry
-
Sergio Poppi
-
bidibodo
-
-
-
Gerard Brull
-
-
Jamie Chapman
-
Alston Huo
-
Ben van der Stouwe (Jolijt)
-
blsafjwiogh
-
Vannio
-
-
-
-
Dmitriy Zapevalov
-
Alex Che Korotkin
-
-
Sergio Poppi
-
Victor
-
-
Graham Holden
-
Mr. Meeseeks
-
-
Jym Dyer
-
Vladislav Rastrusny
-
Jym Dyer
-
-
Nikola
-
Matt Falcon
-
-
ILIV
-
Xander Fender
-
Alexandr Rusalovskyy
-
Bailey Swartz
-
Adam Bewsher
-
-
Anon
-
Maryna Cherniavska
-
-
-
Alex
-
Garry Filakhtov
-
Maryna Cherniavska
-
Garry Filakhtov
-
Mikhail Pobolovets
-
Vat What
-
gurghet
-
Vat What
-
Vat What
-
Mikhail Pobolovets
-
Vat What
-
-
Robotex
-
Redrerick
-
Robotex
-
Robotex
-
Robotex
-
Robotex
-
-
Andrii
-
-
minkiu
-
Artem Mygaiev
-
Andrew Poltavets
-
Albe Rosado
-
Alexandra Louise
-
trianglesis
-
Robotex
-
-
Gustavo
-
ILIV
-
trianglesis
-
-
-
Umren
-
Ivan Severnyi
-
-
-
Sahib
-
Beobachter
-
Jürgen Erhard
-
-
Sahib
-
Kamlekar Venkateshwar
-
Tiexin Guo
-
Erwin Idamsyach
-
-
Michael Bruce
-
Elias Van Ootegem
-
Jonathan Dowland
-
Steffen Panning
-
-
Peter Taylor
-
Charlie
-
Elias Van Ootegem
-
-
-
-
Matias Fernandez
-
-
David Pape
-
Mememaster Alex
-
David Pape
-
Andras Racz
-
David Pape
-
-
Nicolas L
-
hackel
-
Denys Slipetskyy
-
-
-
-
-
Dmitry Bogdanov
-
Vladislav Derbenev
-
brahim elmssilha
-
Marcio Oliveira
-
-
-
Albe Rosado
-
Michael Davidson
-
Dmitry Bogdanov
-
Michael Davidson
-
Michael Davidson
-
Elias Van Ootegem
-
-
-
Redrerick
-
-
Juan Luis Hernandez
-
-
Y
-
David Robinson
-
Y
-
-
-
L
-
reb
-
tremdavid
-
-
Kool Wolff
-
Nick
-
ranger@mybroadband
-
-
Kakubei
-
Redrerick
-
Gerhard Gappmeier
-
-
Umang Gupta
-
Jon Green
-
Mr. Xcoder
-
Andrew Raymer
-
-
Dave Franken
-
gzulux
-
Redrerick
-
Tom Che
-
Redrerick
-
-
-
jrop
-
-
Đặng Huỳnh Bảo Long
-
Ismail Akram
-
tankist
-
Juck
-
-
Gustavo Martins de Souza
-
-
Kamlekar Venkateshwar
-
Juho Hiltunen
-
kamranayub
-
Denys Slipetskyy
-
-
krypt_o
-
-
hackel
-
matthewmcmillion
-
Zaba Zaba
-
-
VincentKyle
-
Rick
-
dmij
-
Cometchaser
-
Dan Kocevski
-
bigot-bot
-
Dan Kocevski
-
JustTim
-
Dan Kocevski
-
JustTim
-
Don Womick
-
-
-
-
DoctorJay
-
Ryan Barber
-
-
Alex
-
Denys Slipetskyy
-
Neil Barnwell
-
lunarul
-
bigot-bot
-
Alex
-
-
Ryan Barber
-
-
Erwin Idamsyach
-
Ryan Rahman Setiawan
-
Dmitriy Matison
-
-
Sven Erik Knop
-
Pedro Goncalo
-
Paul Brown
-
Steven
-
claudex
-
-
Mike Putnam
-
Klopfer1402
-
-
Wenkan Zhu
-
lsatenstein
-
Jon