return to table of content

Modeless Vim

jjcm
101 replies
1d14h

Conceptually the reasons the author give for this (syntax highlighting and other features of vim outclass other terminal-based editors) make total sense.

That said there's something absolutely defiling about this. It's like installing a V8 in a Tesla, or replacing the pumpkin in pumpkin pie.

I love that it will make VIM more accessible for more people, but I hate how they do it. Kudos to the author.

redundantly
49 replies
1d14h

It's like installing a V8 in a Tesla, or replacing the pumpkin in pumpkin pie.

Most pumpkin pies are actually made with butternut squash and other similar squashes, not pumpkin.

https://en.wikipedia.org/wiki/Cucurbita_moschata

https://www.thekitchn.com/whats-actually-in-your-canned-pump...

reactordev
35 replies
1d13h

Not sure about where you’re from but where I’m from, you don’t make pumpkin pie from a can. You make it with pumpkin purée. From scratch. Get out of here with your non-pumpkin pumpkin pie propaganda.

Some pumpkin, blended into a paste, some brown sugar, an egg or two, some heavy cream and some cinnamon and crushed cloves and you have your pie filling.

redundantly
31 replies
1d13h

You can make it with homemade butternut squash puree too, and it will taste better because of its sweetness. Give it a try sometime.

reactordev
27 replies
1d13h

That’s a butternut squash pie, not a pumpkin pie. ;)

Try with pumpkin, nutmeg, cinnamon, and cloves… it’s that old timer pumpkin pie taste.

Waterluvian
22 replies
1d13h

Apparently coffee cake has no coffee in it so we really can’t believe anything anymore.

reactordev
12 replies
1d13h

Oh but mine does… the glaze is powdered sugar and espresso.

Waterluvian
8 replies
1d13h

My life has been a lie. That sounds incredible.

reactordev
6 replies
1d13h

To be fair - coffee cake in the US is cake to have with coffee and doesn’t normally contain any coffee.

In the UK and EU, coffee cake is cake with coffee.

Likewise tea cakes in the US are cakes made with tea and tea cakes in UK and EU are cakes to have with tea. So…

Not a lie, just a Spider-Man meets Spider-Man moment when you learn you can actually make coffee cakes with coffee (or espresso) and you can make tea cakes with tea (I prefer oolong).

hyperthesis
2 replies
1d10h

pie you have pumpkin with

shrikant
1 replies
1d9h

You owe me a new keyboard and monitor tyvm

kybernetikos
0 replies
1d5h

Were you drinking hot computer tea when you read that comment?

nrabulinski
1 replies
1d11h

I’m from the EU and I’ve never had coffee cake with no coffee nor tea cake with no tea. Very fascinating tidbit about the naming, TIL

IndrekR
0 replies
1d6h

To confuse matters more, in this part of EU the coffee cake is made with coffee and tea cake is made without tea.

twic
0 replies
1d7h

Oyster stout shouldn't have oysters in, but usually does.

pbininda
0 replies
1d11h

The cake is a lie.

edgyquant
2 replies
1d1h

This sounds good but not the kind of coffee cake I’m used to

reactordev
1 replies
22h21m

yellow or moist white cake (or marbled cake) with butter crumble brown sugar top and an espresso glaze. The coffee cake of coffee lovers.

andytruett
0 replies
4h18m

Reading this thread I can't help but feel like HN readers need a reactordev recipe book.

mikepurvis
2 replies
1d13h

But coffee cake is the cake you have with coffee, not made from it.

timc3
0 replies
1d12h

Not true. Standard staple in my oarents house was coffee cake made from coffee with walnuts.

akho
0 replies
1d11h

well maybe pumpkin pie is a pie you have with pumpkin

nickt
1 replies
1d13h

Wait until you learn about Tunnock’s Tea Cakes.

twic
0 replies
1d7h

There's no tea, and they aren't cakes - but there is a whole fresh Tunnock in every one!

beAbU
1 replies
1d11h

Next you are probably going to tell me black forest cake is not made in the black forest any more.

Waterluvian
0 replies
17h28m

It’s only Black Forest cake if it comes from that region of Germany. Otherwise it’s known as Chocolate Cherry Conifer Cake.

paholg
0 replies
1d10h

American coffee cake doesn't have coffee, but English coffee cake does.

bregma
0 replies
1d6h

Wait until you find out what baby food is really made of.

jb1991
1 replies
1d6h

In most places in the world, the word “pumpkin“ refers to squash. A squash pie is also a pumpkin pie.

reactordev
0 replies
22h22m

Yes, and pumpkins are squashes (Cucurbita) but pumpkin originates in New England USA where it refers to the orange squash gourd used to make Halloween carvings and decorations. Being that I'm from the US, this is "pumpkin". Not to downplay squash-based pastries or pies but there's only one pie that I will eat, day or night, no matter what - the beautiful, delicious, pumpkin pie. Plain, with whipped cream, with ice cream, with chocolate drizzle, with caramel.

code_duck
1 replies
1d8h

In Australia it’s known as “butternut pumpkin”. Anyway I always used kabocha squash.

jessekv
0 replies
1d3h

+1 kabocha rules in pie

trws
0 replies
1d12h

I freely acknowledge that you can make a delicious “pumpkin” pie with butternut squash, but a real sugar pie pumpkin (use Halloween leftovers and their mealy starchy flesh at your peril) remains superior in my opinion. Sweet potato pie, though, can be absolutely delightful with no squash in sight. Just don’t call it pumpkin pie. ;)

notatoad
0 replies
23h5m

if you're looking for a good pumpkin pie alternative while pumpkins are out of season, sweet potato pie is also excellent.

FiskFisk33
0 replies
1d12h

I've tried it and my experience is the exact opposite. I have good results with for example "Crown Prince" variety pumpkins, which I find far sweeter and tastier than butternut.

zehaeva
2 replies
1d2h

What's fun about this is that I was taught from my mother, and her mother before her, to use Butternut Squash when making "pumpkin pie" from scratch.

This "tradition" of using Butternut Squash instead goes back to the 1930s at least.

reactordev
1 replies
1d2h

Some areas have different ingredients depending on what’s available. Here in the United States, real pumpkin is preferred. You can use any gourd to make a pie but for the true pumpkin pie aficionados like myself, I can tell the difference when someone uses real pumpkin vs butternut squash vs sweet potato vs just creme, eggs, and brown sugar and some flour (I’m looking at you, Wegmans).

In the southeast coast of US, if you make a “pumpkin pie” with squash, you won’t be invited back next year.

zehaeva
0 replies
22h21m

Given that my mother, grandmother, and I, were born in the States, I can definitely say that "preferred" isn't as wide spread as you think it is.

jb1991
3 replies
1d12h

In most countries outside the US, squash is called pumpkin.

Ensorceled
2 replies
1d5h

In most countries outside the US [and Canada], squash is called pumpkin.
jb1991
1 replies
1d1h

If you actually want to be pedantic, note that I did not say all countries, therefore my original statement was just as correct as your edit.

Ensorceled
0 replies
5h19m

If YOU actually want to be pedantic, I was making the point that it's a North American thing, not a US thing.

scythe
1 replies
1d12h

I've heard this claim various times, but it doesn't really make a lot of sense. Butternut squash has a carb:fiber ratio of about 6:1. Canned pumpkin is more like 3.5:1. Sure, the USDA might be lax on the precise definition of the word "pumpkin", but I don't expect them to go so easy on the nutrition data.

As Wikipedia notes:

The term [pumpkin] is most commonly applied to round, orange-colored squash varieties, though it does not possess a scientific definition and may be used in reference to many different squashes of varied appearance.

If the article is simply intending to say that it does not usually come from squashes that are orange, oblate and ridged, then that's fair. But I don't think it's mostly butternut squash, and I don't see why manufacturers would try to hide using the most popular variety of squash.

mportela
0 replies
1d6h

but I don't expect them to go so easy on the nutrition data

Interestingly, I expected them to go easy on pretty much anything

mypalmike
1 replies
1d7h

If you'd left off "not pumpkin", you'd be technically correct. But it's a somewhat nuanced topic.

https://www.snopes.com/fact-check/canned-pumpkin-isnt-actual...

[I'll just add one more note, not mentioned in the article, which is that typical Jack-o'-lantern pumpkins are quite awful for cooking. Much worse than any canned pumpkin. If you want to cook with fresh pumpkin, research the varietals that are known for good texture and flavor. Don't grab a carving pumpkin from the pile.]

joenot443
0 replies
1d4h

As much of 90 percent of pumpkin sold in the U.S. (and 85 percent worldwide) is a proprietary cultivar known as a Dickinson pumpkin, which are less photogenic than the type of pumpkins commonly used for display purposes.

Ugh, they really are much less aesthetic than a nice plump orange one. This feels similar to the childhood realization that regardless of the name or the box color there's not really much strawberry juice in anything; it's all apple and pear.

thayne
0 replies
1d11h

But butternut squash is pretty similar to pumpkin. They are both winter squash, and the definition of pumpkin is a little fuzzy anyway. This would be more like replacing the pumpkin with apples.

myrandomcomment
0 replies
1d13h

In my household for the last 20 years, it is made from pumpkin. First from sweet pumpkins we would pick up every year at the Halloween pumpkin patch that we as a family tradition would take our daughter too. Now it is made from ones grown in our own garden. They are simple to grow. Pick them, roast them, purée them and freeze until needed. We also make a lovely spicy Indian style pumpkin soup from the purée. The pie is quite different from any store purchased pie and well worth it.

kazinator
0 replies
1d13h

Ah, I always wondered why pumpkin pies are relatively delicious, while pumpkin is gross. I chalked it up to the sugar.

(Chalk and sugar in the same sentence just made me think of Macdonald's milk shakes.)

bluedino
0 replies
1d3h

In the US, canned pumpkin is 100% pumpkin, and the big name frozen pumpkin pies all list pumpkin, not butternut squash or other imitators.

And then you have sweet potato pie...

Modified3019
0 replies
22h21m

For those curious another common major percentage of “pumpkin pie” blends (such as from Libby’s) is Dickinson squash/pumpkin which is a subspecies of Cucurbita Moschata like butternut squash. These can be found as heirloom seeds. https://www.thespruceeats.com/what-are-dickinson-pumpkins-52...

Here in the Willamette Valley of Oregon, we grow a lot of crops for seeds, of which various squashes are some. It’s amusing to see the first time, but squash grown for seed is typically just shredded in the field, with seeds collected and the flesh tossed out over the field. Results in a lot of “wtf are they doing” among those unfamiliar, because it looks exactly like pumpkins were grown just to immediately destroy them.

csdvrx
23 replies
1d14h

I hate how they do it

What exactly do you hate?

The site says:

> Ctrl+S to save, select text using Shift+←/→/↑/↓, and copy/paste using Ctrl+C/V.

I haven't setup Control-S, but I have very similar bindings: Shift and arrows for selecting, then Alt or Control-Shift for moving the selection around, as shown on https://raw.githubusercontent.com/csdvrx/CuteVim/main/record...

Also, like the author I have a shortcut to change themes (F9) and another to toggle invisible chars (F8), and I try to use the top of the screen as much as possible (I show the offset in hex, the row and column position etc).

I like how vim is modal, but some Windows shortcuts (like Control-C) just make too much sense to given them up on Linux: I have put `stty intr ^X` because using Shift-Control-C to copy from the terminal was way worse.

Having a few chording shortcuts give you the best of both worlds!

BTW, all of the other shortcuts proposed on this site make a lot of sense to me: I do expect Ctrl-F to search, and Ctrl-T to open tabs, I think I will copy a few :)

arcanemachiner
19 replies
1d14h

Back in my day, when we pressed Ctrl+S, the terminal froze, and that's just the way we liked it.

https://unix.stackexchange.com/questions/12107/how-to-unfree...

csdvrx
16 replies
1d14h

Back in my day, when we pressed Ctrl+S, the terminal froze, and that's just the way we liked it.

I don't think anyone needs (or even wants) the terminal to freeze on such a common shortcut in 2024.

Personally, I have reclaimed Ctrl S for word delete (usually done by Alt-d)

aidenn0
12 replies
1d13h

Related: why does the shortcut to delete back a word (^W), close my browser tab?

troupo
7 replies
1d10h

That's why I think MacOS is superior: it actually uses the "meta" key for useful stuff. So, Cmd-W would close the tab, and Ctrl-W would probably still delete a word (can't check right now, but it has a lot of 80s-era keyboard shortcuts for text still working)

bloopernova
6 replies
1d9h

macOS uses a lot of Emacs bindings. Ctrl-a for beginning of line, ctrl-e for end, etc etc.

And, agreed, macOS' use of shortcuts is fantastic and I wish I could replicate it on Linux.

anthk
4 replies
1d8h

If you use gnome/xfce:

    gsettings set org.gnome.desktop.interface gtk-key-theme "Emacs"

    xfconf-query -c xsettings -p /Gtk/KeyThemeName -s Emacs
Try both commands.

bloopernova
3 replies
1d2h

Very cool!

I also want to use Command (Super or Hyper?), which really improves keyboard shortcuts. Command + left/right = jump to beginning or end of line, Option + left/right = jump to beginning/end of word. I know you can do the same with Control + Shift, but some apps don't support it. Plus Cmd+c/x/v for copy/cut/paste works fine in terminals, I don't have to remember to "code switch" my shortcut "language". Cmd+Backspace deletes the whole line, etc etc.

anthk
1 replies
1d1h

I just swap Ctrl and Caps Lock, much better.

setkbmap us -option ctrlL:swapcaps -option compose:rwin

You can place that command at XFCE's startup settings for applications.

aidenn0
0 replies
14h10m

You missed the point; Ctrl-C is never going to be "copy" in a terminal, since that shortcut is already in use. Cmd-C can work everywhere, but GUI applications on linux do not default to that.

aidenn0
0 replies
14h11m

I bound WindowsKey-C to run the command "xsel|xsel -b" which copies the active selection to the clipboard. It's a small step in the right direction; it's possible to get paste working as well, but that takes awareness of apps (or reconfiguring all GUI applications to use the same shortcut as the terminal).

artsi0m
0 replies
23h35m

I use emacs and I respect emacs developers, but it is not originally emacs bindings: http://unix-kb.cat-v.org/

whackx
0 replies
1d7h

That gets me multiple times a day. What is even worse is ^h opens the history instead of just deleting the last character.

pests
0 replies
1d12h

Delete current word, delete current tab. Its related.

cerved
0 replies
1d7h

it also switches focus window, which is makes things even more confusing

airspresso
0 replies
1d10h

This still happens to me too often. Especially annoying in web-based editors.

kamray23
1 replies
1d5h

Super helpful for basically anything in a terminal. Stuff is going to flow by pretty quickly or at least keep bumping the terminal every couple seconds, usually when you _least_ want it to do so. Reading off whatever your program emitted while it's pushing the terminal up every half a second gets really annoying without Ctrl-S. It's probably the most used terminal shortcut after Ctrl-C for me.

yencabulator
0 replies
18h25m

That's a fine argument, but not relevant for when you're in an editor -- and modern TUI apps disable XON/XOFF for that reason.

shiomiru
0 replies
1d9h

I don't think anyone needs (or even wants) the terminal to freeze on such a common shortcut in 2024.

I find it rather useful to keep important output of programs on the screen when it is impossible (or I forget) to pipe them into a pager.

ttyprintk
0 replies
1d8h

We should concede that /etc/profile ought to disable that with stty by default.

kevindamm
0 replies
1d14h

Ctrl-Q whew

ttyprintk
1 replies
1d8h

Remapping Ctrl-O denies the ability to switch modes. That’s what turns this from simply an opinionated config to a breaking change.

csdvrx
0 replies
23h58m

That's fair, changes should try to preserve existing uses

u801e
0 replies
1d11h

I like how vim is modal, but some Windows shortcuts (like Control-C) just make too much sense to given them up on Linux

Ctrl-C does work in the GUI. That said, one thing I like about Linux is being able to highlight text using the mouse and then pasting it by middle-clicking. I don't have to interact with the keyboard at all to copy and paste text that way.

goldenshale
12 replies
1d13h

Seriously, it hurts. It makes sense, but it hurts. If only there were a more gentle path to editor modes. Maybe some simple graphical representation of the modes and commands that could be down in the corner? Like a dynamic vim infographic that clued a user into the most likely commands.

tester457
9 replies
1d12h

Helix is beginner friendly. It's keybindings make more sense than vim's.

Lio
6 replies
1d11h

Yeah but it’s a small island.

If you learn Vim you’ll have access to Vi and Vi-like interfaces in lots of other software including terminals, database clients and everything that uses readline.

benrutter
5 replies
1d9h

Curious what kind of interfaces you're thinking about? (Aside from vi, vim, nvim)

From my experience anything with "vi navigation" basically just means using the home row keys for navigation + modes. So I haven't come across many interfaces yet where the verb order differences between helix/vim come into play.

xigoi
0 replies
1d5h

Overleaf, for example, supports most of Vim’s bindings.

ttyprintk
0 replies
1d8h

Then the question is readline. Not saying that vi or emacs deserve to win readline, but it’s up to you to describe how Helix mode would differ from vi mode.

linsomniac
0 replies
1d

i3 window manager leans heavily on vim defaults for navigating windows.

broscillator
0 replies
1d4h

In vimium I use vim navigation for scrolling around, / for search, and a bunch of tab actions that aren't vim accurate but vim inspired.

In mpv I use gg/G to getting to the beginning/end of a file.

Many terminal file managers use vim binds or idioms (such as x for delete, marks, etc).

allarm
0 replies
1d

Shells have Vi mode: bash, fish, zsh.

flkiwi
0 replies
1d1h

Helix is wonderful. I did make one keybinding change: Switching in and out of Insert mode is CTRL-i so I don't have to wander off to the escape key so often.

IggleSniggle
0 replies
1d3h

For me, the reason to learn vim is because if you know how to use it it's a really nice editor that's preinstalled on almost any system you shell into. I use VSCode on my home system and occasionally on a remote system, but I'll use neovim when doing a quick edit from the command line and vi when I happen to be o a remote system. In my ideal world, I would just use one editor everywhere, including if I'm hot-seating on a system that is not mine and without internet access: having vi already under my fingers is a nice approximation of great editor + everywhere.

scythe
0 replies
1d1h

If only there were a more gentle path to editor modes. Maybe some simple graphical representation of the modes and commands that could be down in the corner?

I taught myself vim by setting the vim cheat sheet to be my terminal background, though I greyed it out slightly so it didn't obscure what I was typing. Once you have that there are only a few phrases you really need to know: "+p, "+y, "+d to access the system clipboard, :split and :vsplit, C-w w to switch windows, and g C-g for word/char count.

https://www.glump.net/_media/howto/desktop/vim-graphical-che...

Symmetry
0 replies
1d

If I had a lot more free time, I've been noodling with some designs for a text editor with modes. It would start up by default in the equivalent of vim's insert mode where all the normal CUA keybindings (e.g. ctrl-c for copy) worked. But with many more. Then, if you go to the equivalent of normal mode you can just press X to do the same thing ctrl-X does in insert mode.

Hamuko
3 replies
1d12h

For those who don't know, there are at least two different V8-powered Teslas.

https://youtu.be/x-6kHjF1U1E?t=402

https://twitter.com/FthePump1/status/1738425546621825468

hegzploit
2 replies
1d5h

for a moment there, I was wondering why they'd install a JavaScript engine in a tesla.

Hamuko
1 replies
1d5h

Tesla uses Qt and Qt WebEngine uses Chromium, meaning that there is probably in fact a V8 JavaScript engine in any given Tesla.

https://github.com/teslamotors/buildroot/tree/buildroot-2021...

IggleSniggle
0 replies
1d3h

Noice.

jerpint
2 replies
1d7h

It’s similar to preferring guitar hero because a real guitar has too many frets and too many chords to learn

cwillu
0 replies
1d1h

More like learning the clavicord.

“But your fingers aren't touching the strings!”

berkes
0 replies
1d3h

I guess it's the end-goal then, though. If your goal is to become a rockstar and play the guitar in a band, GH is probably a very bad route to it. But if it is to "have fun" its perfect.

Same with this vim: if you just need an editor that is recognisable and "not weird" then this modeless vim might be useful; though why not just install nano, pico, gedit, notepad++ or even notepad.exe?

globular-toast
2 replies
1d9h

Emacs runs in a terminal. Vim isn't installed everywhere, Vi is. If you're going to install an editor and a config you might as well just install Emacs.

quesera
0 replies
1d4h

I believe only the BSDs install real vi in the base OS.

Everywhere else, when you type vi, you get vim. Some neophile Linux distros provide neovim instead.

Regardless, vi and vim (and neovim) are the same in basic operations.

It's still functionally correct that "vi is always installed" and no additional action is necessary for basic text editing.

diggan
0 replies
1d5h

Vim isn't installed everywhere, Vi is

Doesn't most major distributions alias vi to vim nowadays? I think I've also come across vi being aliased to vim-tiny if I remember correctly.

zhenyakovalyov
0 replies
19h10m

In Jef Raskin’s ‘Humane Interface’, there’s a good justification to why modes are evil, mainly leading to excessive user errors, so it’s not that surprising.

scotty79
0 replies
1d

It's like installing a V8 in a Tesla

Maybe putting diesel generator in a Tesla so you can use it even though charging is not your cup of tea.

deadbabe
0 replies
1d

I disagree. It makes no more sense than turning a modeless editor into a modal one. Just use the right tool for the job.

1vuio0pswjnm7
0 replies
17h29m

"That said there is something absolutely defining about this."

Not expecting anyone to agree, but this is how I feel when using minimal shells that do not implement vi editing, e.g., set -V or set -o vi. Busybox/toybox is one example. In the aggregate, I actually do more editing on the command line than I do in vi. If the shell is permanently set to emacs-like keys and editing then I am constantly switching back and forth to "vi mode" everytime I edit a text file and return to the shell, i.e., nonstop.

cassepipe
41 replies
1d5h

My usual comment on any thread touching vim, as an answer to all hypothetical comments talking about how vim never clicked :

Remap the Escape key to CapsLock else you will never like vim (provided you are a normal person)

It's the most important key and you should punctuate all your inserts with it. So it'd better not be the key that's the furthest away from your fingers. The reason that's the case is an historical accident.

Don't be a victim. Remap.

P.S : Yes, I know about people using Ctrl+[, or Ctrl+C, I know you got used to it but one gets used to anything, it does not mean it's good. A weird combination isn't great and Ctrl + C has some quirks --> https://vi.stackexchange.com/questions/25764/use-control-c-i...

P.P.S : Yes, I know about `jk` it's clever ok but my mapping is system-wide and now I enjoy Escape being at the right spot for bash, zsh, fish, gdb, firenvim vim modes at no configuration cost.

joenot443
16 replies
1d4h

Remap the Escape key to CapsLock else you will never like vim (provided you are a normal person)

I think this is great advice for EVERYONE, vim user or not. Someone else made this suggestion on HN some 8 years ago and I haven't looked back since.

CapsLock is essentially useless for modern computing needs, but having a No/Cancel/Quit/Esc button immediately under your left pinky is fantastic. Your brain will get used to it in a day or so, give it a try!

sodapopcan
9 replies
1d4h

Best use for capslock in my book is tap for escape, hold for ctrl.

ta988
7 replies
1d2h

Where do you map it that way?

sodapopcan
3 replies
1d2h

As my sibling commenter said, use Karabiner Elements if you are on macos. Though it's not an out-of-the-box thing.

Add this config to ~/.config/karabiner/assets/complex_modifications/custom-capslock.json

    {
      "title": "Change caps_lock to Esc and Control",
      "rules": [
        {
          "description": "Post Esc if Caps is tapped, Control if held.",
          "manipulators": [
            {
              "type": "basic",
              "from": {
                "key_code": "left_control",
                "modifiers": {
                  "optional": [
                    "any"
                  ]
                }
              },
              "to": [
                {
                  "key_code": "left_control",
                  "lazy": true
                }
              ],
              "to_if_alone": [
                {
                  "key_code": "escape"
                }
              ]
            }
          ]
        }
      ]
    }
and then in the GUI enable it in the Complex Modifications tab. Last you need to map "capslock" to "left_control" in the Simple Modifications tab.

linsomniac
2 replies
1d

Ooh! Can I do this with "z" and "/" (letter if tapped, control if held)?

sodapopcan
0 replies
1d

Yep! You can do whatever you want with complex modifications. The only tricky part is figuring it out. It shouldn't be TOO different than the above if you replace the appropriate values.

sodapopcan
0 replies
1d

My GUESS is that it would be something like this:

    {
      "title": "Hold z or / for control",
      "rules": [
        {
          "description": "Hold z for control",
          "manipulators": [
            {
              "type": "basic",
              "from": {
                "key_code": "z",
                "modifiers": {
                  "optional": [
                    "any"
                  ]
                }
              },
              "to_if_alone": [
                {
                  "key_code": "left_control"
                }
              ]
            }
          ]
        },
        {
          "description": "Hold / for control",
          "manipulators": [
            {
              "type": "basic",
              "from": {
                "key_code": "/",
                "modifiers": {
                  "optional": [
                    "any"
                  ]
                }
              },
              "to_if_alone": [
                {
                  "key_code": "right_control"
                }
              ]
            }
          ]
        }
      ]
    }

wonger_
0 replies
23h29m

I use this executable for Windows: https://github.com/ililim/dual-key-remap

svilen_dobrev
0 replies
22h56m

as said here: https://superuser.com/questions/1716264/xmodmap-holding-a-ke... using this https://github.com/alols/xcape :

  $ setxkbmap -option caps:ctrl_modifier
  $ xcape  -e 'Caps_Lock=Escape'
if that need be run multiple times (i.e. in bashrc), add a guard:

  pgrep xcape >/dev/null || (
   setxkbmap -option caps:ctrl_modifier
   xcape  -e 'Caps_Lock=Escape'
  )

ink_13
0 replies
1d2h

Karabiner-Elements will do this for you on Mac.

I consider it indispensable.

joenot443
0 replies
23h11m

That sounds awesome! I'm going to look into that.

zeroxfe
2 replies
1d4h

Yes, CapsLock is useless, and I've been remapping it to Ctrl since forever, which serves me a lot more than Esc.

cassepipe
1 replies
1d2h

It can be both if you care to. You don't have to choose

Toorkit
0 replies
23h39m

I've done Esc-on-single-press-Ctrl-on-hold once, but some games don't recognize the Esc press. Couldn't get to a menu anymore :P

Currently just have Esc on the CapsLock.

joshmanders
2 replies
1d1h

If I remap CapsLock to Escape, then how will I enable cruise control for awesome mode?

But seriously, I have hitting escape muscle memory engrained, I cannot remap it to any key because I won't ever think to hit capslock even if it's ergonomically "better"

TotempaaltJ
1 replies
1d1h

I thought that, remapped it, and it turned out to be incredibly easy to swap over. I think it's because it's so much nicer to use.

joshmanders
0 replies
1d

My point is that it's NOT nicer to use for me.

I just instinctively did it to see my motion and it's an awkward feeling for me to move my left pinky over to the capslock key, definitely something I have to be mindful of doing to make happen and probably will take a long time for me to get used to.

Meanwhile, I actually extend my ring finger up and barely touch the escape and move it back down, all of that is very comfortable for me and I can do it without looking 100% of the time and never miss it.

wruza
7 replies
1d5h

“Doesn’t mean it’s good” doesn’t mean it’s a problem either. Also, people prone to remapping already have their Ctrl there.

cassepipe
3 replies
1d4h

Life can be beautiful we don't have to suffer because it's already there.

Remapping takes less than 5 seconds in MacOs and Linux. 2 minutes in Windows. And you only have to set it up once.

Also my left pinkie never misses CapsLock and I don't even have to think about it. Can't say that's the case for Ctrl+[ which I have used extensively for one year. I am really happy I switched.

carb
2 replies
1d4h

What do you do when you need Ctrl in non-vim contexts?

cassepipe
1 replies
1d2h

I just press Ctrl ?

But frankly I don't use Ctrl that much. Ctrl + L/K in Firefox (I use vimium but I prefer the native bar) And I have Ctrl + J/K to switch terminal tabs In vim I only rarely use Ctrl + I/O

carb
0 replies
19h47m

Are you often working within the command line? I don't use vim bindings elsewhere so I use these a lot: "Edit a command line" section on https://support.apple.com/en-gb/guide/terminal/trmlshtcts/ma...

carb
2 replies
1d4h

Yeah I use Ctrl far more often than Esc as I'm usually navigating code and reading it vs writing it, so Caps Lock -> Ctrl is more valuable.

Additionally, I use Ctrl outside of vim very frequently as I keep my terminal key bindings native, which means all of the command line control patterns use Ctrl (jump to front, jump to back, cut (forwards/backwards), move by word, reverse search, etc etc)

I'm still of the opinion that Ctrl+[ like the OP said would be mentioned is the best because (1) it's native and (2) it uses both hands so it's almost as fast as hitting a single key and requires no hand contortion.

- 14 year exclusive vim user

hmeh
1 replies
1d4h

Por que no los dos? I map caps lock to escape on tap, ctrl on hold.

lozf
0 replies
1d3h

… and set "Both Shift Keys" to toggle caps lock.

camtarn
4 replies
1d4h

Remap the Escape key to CapsLock else you will never like vim (provided you are a normal person)

I guess I'm not a normal person then? Never bothered doing the remapping and I've been an enthusiastic Vim user for a decade.

cassepipe
1 replies
1d2h

I don't know you but that is likely.

Most people are not believers and when they find something inconvenient they abandon it. Most people do what most people are doing :-) That's not the case for me. I am a believer, I use Firefox, Signal and vim, not Chrome, WhatsApp or VsCode. And I like it that way. The problem with being a believer is that you tend to downplay issues and that can bite you sometimes. I know because I have been been bothered by Escape being too far away for one whole year and use the weird combo instead. Surely there was a good reason for things being that way but I finally asked it turned out there was not.

Maybe you are the rare person that has very long fingers or whatnot and it's not inconvenient for you but you most likely are a believer :)

camtarn
0 replies
1h12m

Haha, yes, this is very true. I was the guy who gave a lunchtime lightning presentation on why to use Vim (TL;DR: automating repetitive actions using the . key, macros, :global, :normal etc etc) :)

I use jk to get out of Insert mode on my local machine, and ctrl-C on remote machines where I don't have my .vimrc.

MSFT_Edging
1 replies
1d4h

Smacking the escape key constantly is probably my favorite part of using Vim. It has me smacking escape all the time to see what it does in other apps. I love when esc is just mapped to a "stop doing that" or "go back".

Also doing embedded stuff, I find the caps lock key nice for when typing out a few defines or macros.

dinkleberg
0 replies
1d4h

Haha I’d hate to know the number of form modals I’ve closed out of after instinctively hitting escape.

e12e
3 replies
1d4h

But caps lock is remapped to control already! :)

aldanor
2 replies
1d3h

You can have both. Esc on tap, ctrl on hold.

teeray
0 replies
1d1h

This is the proper functioning for this key

e12e
0 replies
20h15m

On a Mac?

crunchbang-excl
1 replies
1d

The caps lock key is definitely using prime real estate on a keyboard for something that doesn't get used often.

I have taken to remapping it to a function key, moving caps lock to function+shift. Function+tab is mapped to escape, a combination I can easily press with my pinky alone.

This allows me to map a lot of the keys that would require moving my hand to function+[alphanumeric key], function+i is insert, function+u is page up, function+j is page down, function+r is home, function+f is end, and other such combinations.

I use a keyboard that supports QMK, so all of this customization is on the keyboard, but this could probably be done with software running on the computer, like AutoHotKey on Windows.

JBorrow
0 replies
1d

On a Mac you can do this rebinding entirely natively within the system keyboard settings.

bori5
1 replies
1d3h

WHAT? HOW AM I GONNA TYPE MY SENTENCES THEN!?

arbitrandomuser
0 replies
15h13m

WHAT? HOW AM I GONNA TYPE MY SENTENCES THEN!? goto visual mode , select region to capitalize , shift - U
trws
0 replies
14h5m

FWIW, my “jk” mapping is also global, as is my C-[ mapping. Karabiner FTW. In all seriousness I haven’t found a way to manage a “jk” mapping that so correctly and quickly handles all cases of input in anything else, on any platform. (Except of course built into the keyboard) Autohotkey can kinda sorta do it, but it takes a lot more code for an inferior result sadly.

sodapopcan
0 replies
1d4h

Ctrl+C

...and to try and avoid this being perpetuated as it always seems to: ctrl-c is NOT the identical to escape. Notably is doesn't trigger InsertLeave which means a handful of plugins won't trigger.

I think your advice can be summed up to: Remap esc to something more convenient. My capslock key is tap for escape and hold for ctrl. I use jk for escaping insert mode because why would I want to be a "victim" who has to stretch their pinky even one key when my fingers are always going to rest on JK? ;)

dm319
0 replies
21h23m

Can I suggest going one further and have esc mapped to tap, ctrl to hold. You can also map double escape to :noh in vim, which allows you to quickly remove highlighting.

vkoskiv
27 replies
1d9h

Personal anecdote: I've used Vim for many years, but I never progressed much beyond the basics, because I almost never put much active effort into learning more advanced motions. About a year ago, I discovered the Helix editor, which has a (IMO) genius feature, where pressing a key to start a motion or other action pops up a little pop-up box that shows all the possible options. It just perfectly clicks with my brain, I can easily ignore the pop-up once I've got the muscle memory, or I can even disable the pop-ups altogether. It's brilliant for discoverability.

With this, I've passively memorized far more advanced motions in the last 12 months than I did in the ~8 years before that. And since Helix is a vim style editor, many of these motions also work in vim!

I feel like Helix is the perfect editor for people like me who know just enough vim to be comfortable, but never got very deep into customizing or muscle memory with advanced motions. Helix does some things differently compared to Vim, which I hear puts off some more advanced Vim users.

The built-in LSP & highlighting support with a stack-based "jump to symbol" and keybinds to traverse the stack also perfectly maps to how I want to navigate code, it has made me far more productive than ever before.

I'm not affiliated with the project myself, I'm just super happy I found the perfect editor for me :]

neoden
4 replies
1d6h

The main difference between Vim and Helix is that Helix is not hackable at all. Its configuration allows only very basic settings. It is impossible to change almost anything in its behaviour. So it focuses on being good out of the box. Whether it succeeds or not is for everyone to judge for themselves.

jayflux
1 replies
1d4h

I think Helix have gone the right way around with their priorities. They've started by making the right things built-in that most developers would need on a day-to-day basis. It's already better than configuring vim/neovim in that regard as it just works out of the box. An example is having Tree-Sitter and LSP already configured, so you get the best syntax highlighting available, and IDE-like functionality.

The customizability/hackability will come later, they're working on extension support plus other stuff, but I think for most of their users, this isn't the number 1 priority.

I guess their target users are those who just want to get up and running on a modal editor without spending too much time in Lua or trying to get plugins setup.

seanw444
0 replies
1d2h

I think they went the right way too, and I say that as someone who mains heavily-configured Emacs. I like installing Helix in a fresh environment by just bringing the .exe and being able to get right to work with all the features I need.

diggan
1 replies
1d5h

Seems at least extensability is on the mind of the Helix team:

There’s two prototypes we’re exploring that could potentially exist side by side: a typed list/ML-like implementation for scripting and a Rust based interface for things that require performance. Could potentially run both in wasm but I’m personally a bit unhappy with how big wasm implementations are, easily several orders of magnitude compared to the editor

https://github.com/helix-editor/helix/wiki/FAQ#how-to-write-...

So they're not avoiding making it extensible on purpose, seems they haven't found the right way to do it yet.

bobbyskelton41
0 replies
1d2h
Malcolmlisk
4 replies
1d9h

There is a well known plugin for neovim to do this kind of behavior. You can even create your own hotkeys into that plugin and will help you navigate and memorize different hotkeys for the editor. The plugin is called whichkey, and this is their github https://github.com/folke/which-key.nvim

oblio
2 replies
1d8h

Off-topic: does Neovim have a stable GUI distribution that runs well on Windows and includes fuzzy file search and a file explorer?

thworp
0 replies
1d3h

I don't think there is a pre-packaged flavour of this. You'd have to use a plugin manager for neovim to install fzf.nvim, telescope and nvimtree. If you want to use nvim more extensively I'd recommend a config bundle like NvChad, AstroNvim or NvPunk, those are mostly cross-platform (might require a few utils like ripgrep, stuff for LSP). They already come with all of this pre-configured and you can disable any plugins you dont like easily. They're also suprisingly snappy thanks to conditional plugin loading.

onehair
0 replies
1d7h

- For GUI https://github.com/neovide/neovide

- For Fuzzy file search you will need to add Telescope plugin

- For File Explorer, you could use Neo-tree.nvim

rodrigodlu
0 replies
1d8h

I'm today a neovim heavy user, but even using lazyvim, there's a lot missing with which key. Helix seems to be more out of box.

I'm also restarted my journey with neovim after helix.

Actually lazyvim convinced me to give another chance, because the community packs and mason makes lsp so convenient!

Astronvim is also a good contender, but I broke it so many times trying to customize.

ploum
3 replies
1d6h

There’s also Kakoune, which is very similar to Helix.

See https://andreyor.st/posts/2023-09-20-why-kakoune/

sheepscreek
1 replies
1d5h

Kakoune makes no claims to be Vim compatible though. The keystrokes are completely different.

xigoi
0 replies
1d5h

Helix is not Vim-compatible either.

Conscat
0 replies
1d4h

One big difference between Helix and Kakoune is that Helix has a visual mode, whereas Kakoune only wants chording to extend text regions.

avgcorrection
3 replies
1d9h

Emacs has something similar in which-key.

Of course GUI apps have had pop-downs from the File-Edit-View-... row [since forever?] so that things like Alt+F will show contextual actions. But at least in the Emacs community people get blown away when someone makes such a basic addition.

nequo
1 replies
1d2h

In Emacs, you can also insert C-h in a key combination. So you can do the basic things like

  C-h k   to pull up the help for a key combination
  C-h f   for a function 
  C-h v   for a variable
  C-h m   for currently active modes
But you can also do things like this:

  C-c C-h   to pull up every key combination that starts with C-c
Emacs has excellent discoverability out of the box thanks to this.

avgcorrection
0 replies
1d1h

Yeah I love how you can interrogate things like that.

Meanwhile, in GUI land: here’s fifteen screenshots carefully manually highlighted which shows you how to change your language to Turkish.

Regular GUI apps are just too rigid.

BeetleB
0 replies
1d2h

You can also use Hydra for Emacs.[1] Once I discovered how to configure Hydra, I made it a habit to make one for every new major mode I need to use.

[1] https://github.com/abo-abo/hydra

micheljansen
2 replies
1d7h

Nice! I have memorised a lot of Vim actions over the years, but this would still absolutely help me a lot. I would love to have this for (Neo)Vim.

RMPR
1 replies
1d6h

There's a plugin for that called which-keys

micheljansen
0 replies
1d4h

Thanks, this sent me down a rabbit hole of NeoVim plugins, but I've enabled it now :)

hiAndrewQuinn
1 replies
1d7h

LazyVim comes with this as well, although with a 1 second delay or so in case you've already got it in muscle memory.

It's the Neovim flavor that Shell Bling Ubuntu [1] installs, though, so I'm biased. I've been considering including an option to install `hx` as well in there.

[1]: https://github.com/hiAndrewQuinn/shell-bling-ubuntu

nightowl_games
0 replies
1d3h

There's a great write-up of a great set of utilities!

dingnuts
1 replies
1d3h

Of course, Spacemacs provided this functionality out of the box ten years ago using evil-mode (which is actually vim, so all the motions work in vim too, not just some of them) and which-key ten years ago and it's simple to set up in vanilla Emacs too, even for a beginner (I know because this was the path I took as a beginner)

Skunkleton
0 replies
1d2h

Spacemacs is a good project, but it certainly isn’t easier to set up than helix. Helix literally requires zero configuration to enable this functionality.

kqr
0 replies
1d7h

This is also how magit works, and I agree it's fantastic. Using magit has taught me so much more about command-line git than my past 12 years with it in the command line.

graemep
0 replies
1d5h

I recently started using Helix too and it does what I want out of the box and is the first modeless editor that really works for me.

I am sure you can set up vim to be very much the same, but that is a significant barrier to getting started. I have tried and had problems getting it as I wanted.

The problem is that the keys are different from vim so the muscle memory does not work across the two.

I would really like to have a more lightweight editor with the same key bindings for quick edits on small files.

stevebmark
17 replies
1d12h

I've always disliked that Bram calls Vim a "modal" editor. All this means is your keyboard and mouse actions do different things based on what "mode" of the editor you're in. All editors are "modal" editors. In VSCode for example, if you've focused the search box, pressing up loads the previous search, compared to if you've focused the code area, pressing up goes up a line.

Vim purports to be more efficient than other editors because it's a modal editor, but that's nonsense.

colordrops
5 replies
1d12h

That's not really the same thing though is it? Each of vim's modes are extremely complex with their own usage of the vim grammar. The "modal" behavior you describe is very simple.

stevebmark
4 replies
1d12h

They are the same thing of course, complexity is not relevant to the definition.

The main difference is Vim's editing modes are imperative. You have to glue together small painful commands to do what you want. Modern editors are declarative - you say "I want to move this file" or "I want to rename this variable" or "I'll drag this split here" and they do the rest.

minitech
0 replies
1d11h

Modern editors are declarative - you say "I want to move this file" or "I want to rename this variable" or "I'll drag this split here" and they do the rest.

Those are imperative actions rephrased to make an artificial distinction (and I rename variables in Vim with gR). How high-level the available actions are and being a modal or non-modal editor are orthogonal.

colordrops
0 replies
1d11h

It wouldn't be disingenuous to call the F1 a race car just because a go-kart is also technically a race car. Vim is built around modal editing. It's entire workflow is built around it. Your argument is pedantic.

broscillator
0 replies
1d3h

A GUI element is not a mode, categorically.

beautron
0 replies
1d11h

You have to glue together small painful commands to do what you want.

Painful?

Physically or mentally?

Physically I find Vim to be pain-free. I've studied and I practice good typing form, which is important—I would look there before blaming any physical pain on Vim's commands.

Mentally I find Vim's interface to be beautiful. Learning it gives your mind an amazingly coherent structure for thinking about the process of text editing.

beautron
2 replies
1d11h

Modes are the core concept on which Vim's design is structured. They organize both the interface and the user's mental model of the text editing process. I did a quick case-insensitive search over Vim's help files, and they matched 'mode' 4470 times.

The first thing you must learn (to use Vim) is that it is modal. And this detail really tends to stand out when first meeting Vim. I think "modal" is a nice word to concisely describe and differentiate Vim.

Ferret7446
1 replies
1d10h

There are 13875 matches for mode in the Emacs docs.

Modes are even more foundational to Emacs than to Vim. A new user will encounter a dozen modes by simply starting to use Emacs for a few minutes. Every buffer has a major mode, and there can be many minor modes enabled per buffer or globally. The entire editor is built on a tree of modes, all inheriting from the aptly named Fundamental Mode.

At a basic level, each mode affects what every key does. The idea of keys doing different things in different modes is not unique to Vim.

Which just goes to show that Vim's definition of "modal" is somewhat contrived, as Vim's definition of "modal" applies to a very specific implementation of two to four modes (which coincidentally Emacs also offers multiple versions of, both natively and as third party packages to varying degrees of faithfulness).

beautron
0 replies
1d8h

Emacs uses the word "mode" to mean something different than Vim does.

An Emacs "mode" corresponds more closely to what Vim calls "plugins" (Emacs's "major modes" are like Vim's "filetype plugins", and Emac's "minor modes" are like Vim's other "plugins").

Vim's modes are more foundational in the sense that all Vim plugins are structured and organized in terms of the same set of modes. The core of Vim is the modes (insert, command, etc.), which are then customized. Emacs calls the customizations themselves "modes".

I don't consider Vim's definition of "modal" contrived, and I don't consider Emacs to be "modal" in the same way (though you can of course customize it to be).

wolverine876
0 replies
1d11h

Unlike the VSCode example, Vim's multiple modes utilize the exact same content and UI:

With your cursor in the same place, and pressing the same keys on your keyboard, Vim's response will change based on whether you are in normal mode, insert mode, visual mode, or whatever mode.

That's what they mean by modal. In insert mode, you have a ~104 keys that insert new text. In normal mode, the same ~104 keys execute editing functions.

The magical efficiency is because of its modal nature: Without buying new hardware, by switching modes (at a keystroke) you have a magic input device that issues ~104 different editing commands each with one keystroke, and hundreds more with two-key combinations (shift+, ctrl+, etc.).

thekiptxt
0 replies
1d11h

What makes you think that having the focus on the search box vs the code area in VSC constitutes a different mode in the same way as vim normal vs insert modes? You haven’t explained what you consider a mode to be.

I think there is something very clearly different in vim, as first time users must have it explained to them that typing `j` when their cursor is at the start of the code area will do very different things depending on the mode they’re in. It’s a paradigm not present in editors like VSCode. This difference is usefully characterized as “modal”.

teo_zero
0 replies
1d11h

Saying that VSCode is a modal editor because of the search dialog is like listing cars among USB peripherals because they have a USB port.

schainks
0 replies
1d12h

Not all modal editors are created equal?

Once fluent in vim, I could literally get more done in the same amount of time, but YMMV.

nextlevelwizard
0 replies
1d12h

You are confusing modes with different programs.

In VSCode you have your editor program in the middle that does the editing things. Then when you invoke your search box it over takes the control away from your editor program and you are now in the search program which behaves however differently it behaves.

eviks
0 replies
1d11h

That's a bad example since search box is a different UI element

Here modality mainly means "for the same element" (text area), and this is a very important and noticeable difference you can't eliminate with a search box

bregma
0 replies
1d6h

The VS Code behaviour you're describing is "focus contextual" rather than "modal". Modal behaviour means the behaviour can change modes within the exact same focal context.

beautron
0 replies
1d10h

Vim purports to be more efficient than other editors because it's a modal editor, but that's nonsense.

My understanding is that Vim purports to be efficient because it lets users make precise edits (large or small) with minimal input.

ilaksh
14 replies
1d13h

I currently use vim every day. I have been trying to learn vim off and on for about 30 years.

vi and vim have modes because they were created in an era where computing and terminal capabilities were very limited and even when the terminals could support interactive editing, it wasn't expected. They had very low expectations. They were used to things like 'ed'.

The religious beliefs that programmers have about vim are a case study in why I believe that AI will easily take control of the planet in less than a century.

That sentence is questionable in multiple ways.

Anyway, I will definitely try this thing out. Hopefully I am not too lazy to keep installing it. That's what happened with the last one of these.

a-dub
9 replies
1d13h

vi and vim have modes becaus they were created in an era where computing and terminal capabilities were very limited.

that's the whole point. it was designed for limited terminals and high latency, very slow serial links. that means when you learn it and all of its shortcuts and you have a fast and modern terminal, you are able to edit at ludicrous speed.

it's like training at altitude or running with weight belts for editing text.

ilaksh
5 replies
1d13h

I just don't believe that the average vim users edits significantly faster than non vim users.

I mean, maybe 5% faster. Sure. Maybe. But at what price? _At what price, I ask you??_

wolverine876
1 replies
1d11h

Another claimed impact is on cognitive load: Vim runs on muscle memory on the keyboard; it consumes as much cognitive load as typing. Mouse / GUI is distracting.

zogrodea
0 replies
1d8h

I’m a Vim user, but I don’t agree with that argument about cognitive load. When typing in a normal editor, you just type letters and those same letters typed just show up on a screen (as in Vim’s insert mode). The mouse is pretty intuitive too in a normal editor: you have a device that controls a cursor on your screen and clicking performs an action.

With Vim, I don’t think the commands are quite as intuitive (this might be a skill issue of mine), but I do think I am faster without a mouse because of fewer movements required (having to grab my mouse, move it to where I want, click and then move it back to the keyboard vs. just typing a few letters).

wruza
0 replies
1d12h

For me it’s somewhat slower at the price of freeing my mind from “ctrl-shift-left-wait-wait-oops-right-right”-like things. I believe that faster typing in vim is a myth supported by our adepts, who are more zealous than is reasonable.

beautron
0 replies
1d10h

For me, Vim is not only (drastically) faster, but also more fun.

In Vim, I enjoy the process of text editing itself (in addition to any joy derived from the substance of the text edited).

anticodon
0 replies
1d12h

I don't know how faster I became at editing text after switching to vim. But it definitely has a different feeling: the text just flows from the fingers. Your mind is never interrupted to remember some shortcut e.g. to select text inside the brackets or inside the quotes. Anything you want to do with text happens effortlessly with the speed of thought.

Definitely worth it.

delta_p_delta_x
2 replies
1d10h

you are able to edit at ludicrous speed

I never ever got this argument for Vim.

I don't spend most of my time slinging around huge chunks of text or repeating commands like they do in YouTube videos where Vim pros flex their skills (to extend the fitness metaphor).

I spend most of my time thinking about code design, reading documentation, writing plans, discussing stuff with my colleagues—editing, writing code is maybe 30 – 40% of my time, at best. I also code fairly slowly anyway.

Funnily enough I think I'm decent enough with a good touch pad, so I can avoid the whole 'click-drag' dance when I have to use a mouse.

That being said, I do consider myself too stupid to use Vim beyond the simplest commands—I know how to change modes, save, and exit.

a-dub
1 replies
1d2h

I spend most of my time thinking about code design, reading documentation, writing plans, discussing stuff with my colleagues—editing, writing code is maybe 30 – 40% of my time, at best. I also code fairly slowly anyway.

ahh yes, the central brooklyn coffee shop as existential bus stop school of computering. "oh, you're 38 too, well then what are you doing with your existential crises?" "well, when i'm not working on my book, i like to think about code design and discuss stuff with my colleagues while listening to instrumental remixes of 90s punk and indie rock classics. my preferred languages are ocaml, erlang and ruby, but usually i tend towards microsoft visual foxpro for professional efforts."

delta_p_delta_x
0 replies
22h56m

I don't get the point of this comment, nor do I fit the stereotype at all.

I'm in my 20s, find coffee shops extremely overpriced, have never set foot in New York City, don't listen to much music at all (and if I do, it's classical and Baroque from the 1700s), and usually write in C# or C++ (both in Visual Studio).

viraptor
3 replies
1d12h

vi and vim have modes because they were created in an era where computing and terminal capabilities were very limited

vim was released in 1991. Same year linux kernel started and Apple PowerBook came out. Limited terminal capabilities is not the reason vim is modal.

wolverine876
2 replies
1d11h

Vim was heavily based on vi, and vi was designed for limited terminal capacities.

viraptor
1 replies
1d10h

And it's now been decades since vi itself, where things would've changed many times if that was the only reason that vi was modal.

ilaksh
0 replies
1d6h

Things have changed, just not the paradigm that vim operates on.

mtillman
11 replies
1d15h

As the author states, the purpose of this is for users who work in other editors. But if that’s the case, when would they need this? Assuming they mean when a user is logged into another device where they only have terminal access. But in that case, this wouldn’t be installed by default-one reason to learn vim or emacs. So is the use case that one would just install this on the remote box and that their permissions would allow for this? If they have the permissions wouldn’t they just be able to connect via their existing IDE and skip the terminal altogether?

soap-
8 replies
1d15h

I started using this because my favorite editor (micro) has very poor syntax highlighting for ruby. It's a very specific use case but it's quite nice and I'm considering switching to modeless vim

behnamoh
6 replies
1d14h

You claim that you forget Vim keybindings, but then you have this on your about page:

   email: echo soaper.:.disroot.:.org | sed 's/.:./@/; s/.:././'

GavinMcG
4 replies
1d14h

What’s that have to do with Vim keybindings in particular?

behnamoh
3 replies
1d14h

I was just saying that if one can remember sed syntax, Vim's should be easy to follow.

xboxnolifes
1 replies
1d13h

You don't need to memorize the syntax to have a script.

wharvle
0 replies
1d3h

No joke: I wouldn’t have a programming career if remembering syntax were a requirement.

pasc1878
0 replies
1d6h

The author might just have copied that sed expression form someone else.

Or looked it up once and probably now forgotten it.

Also regex expressions are not vi expresions and have wider applications so author might use them regularly.

So nothing here suggest that the author can remember vi.

nerdponx
0 replies
1d14h

We all have limited capacity to learn stuff. If I didn't already know Vim, there's very little chance I'd have the motivation/time/energy to learn it for the first time now.

mtillman
0 replies
1d15h

Why not just use an editor that’s really good at it then? Given you don’t prioritize portability.

pavon
0 replies
1d14h

This is just a vim config. On shared systems it is very common to have permission to edit your home directory but not to install additional software (and frowned upon to install software into your homedir even though it is possible).

ilaksh
0 replies
1d14h

The main reason I don't use IDEs is because I always find sshfs to be annoyingly slow, and it is often convenient for me to edit code on a VPS.

So I am definitely going to try this.

alberth
11 replies
1d14h

IBM CUA

I’ve always wondered how different Unix/Linux would be today if decades ago a Common User Access (standardized menu system like FILE | EDIT | etc) had been defined for TUI apps (like how it was for Windows & Mac OS).

Imagine VI & EMacs having the same key bindings due to standards.

https://sqlite.org/hctree/doc/hctree/doc/hctree/index.html#s...

anticodon
6 replies
1d12h

Power of Vi is that its keybindings are way more ergonomical compared to IBM CUA. If you're a touch typist.

It doesn't make sense to change Vi/Vim/NeoVim keybindings because they're so convenient, composable and easy to remember.

AnonymousPlanet
5 replies
1d6h

That is only the case if you think you have to press Ctrl using your pinky. You can use the side if your palm instead. Then CUA suddenly becomes very ergonomic. Try it. I've done this for over 15 years now across a plethora of different keyboards and also survived several years of Emacs unharmed thanks to it.

jholman
1 replies
1d

I used to do approximately this, from maybe the mid-90s to 2015-ish, but finally that keyboard died (RIP dear friend) and I find that it doesn't work properly on any keyboard I've found since.

Not quite the side of my palm, but the joint where my pinky meets my palm. My hands are relatively large, dunno if that's relevant.

I should put more work into buying a keyboard that it does work on, I think using my finger for Ctrl might be starting to cause RSIs in my middle-aged hands.

I guess I'll also add that for me it's a bigger deal when gaming than when using CUA. That Ctrl button is the one true place to put crouch, dangit.

AnonymousPlanet
0 replies
3h16m

Most of the time the joint that you describe works for me. Sometimes I use the side of my palm. It has worked for me on pretty much any keyboard so far, regardless of the height of the caps or the travel. On those with an fn-key I have had to remap the key somehow, sometimes in the BIOS sometimes using software. The exception is a smallish bluetooth keyboard I bought for a tablet. It's fn-key is hard to remap inside mobile OSes.

broscillator
1 replies
1d3h

I just tried this on my laptop and it is the most uncomfortable thing I've done on a keyboard.

AnonymousPlanet
0 replies
3h10m

It's probably due to my shoddy description. You put your fingers into the touch typing homerow. Shift your left hand enough for the edge of your palm to be above the ctrl key. It might also be the base joint of your pinky, depending on the size of your hand. Now press that side down enough to activate the ctrl key while keeping your fingers on the homerow. It's like having an eleventh finger to control the keyboard.

tmtvl
0 replies
1d3h

How do you do that without hitting Shift? It seems needlessly finicky compared to just properly holding the key down with my pinky. I'd say the best way to avoid RSI while using key combinations is to follow proper procedure and hit the opposite modifier, e.g. Left Control + S (Right Control for Qwerty typists).

artsi0m
1 replies
23h33m

Emacs has a mode called cua-mode with keybindings thats more simillar to ones from other modern gui programms like browser.

lproven
0 replies
19h17m

It's a tiny tweak that gives something like 1% of the functionality.

The real, useful, working CUA mode for Emacs is here:

https://ergoemacs.github.io/

lproven
0 replies
19h15m

So very much this. Around the end of the 1980s / start of the 1990s, all the big DOS apps switched their weird proprietary UIs out for CUA ones. Sometimes with an option to go back, but not often. Sometimes with some of the old UI as well, but mostly, big-bang.

And everything was better, the users adjusted, nobody ever looked back and we were all better off.

Sadly the memo never reached the Unix world, and those terrible 1970s are now enshrined as holy writ.

jfoutz
0 replies
1d13h

vi and emacs are prehistoric. Folks now are ok with / and \ and maybe some can deal with : as a file separator.

But in the precambrian era you needed to know about ^ to edit a specific version of a file, because diffs were tracked.

They're both wonderful and amazing and can handle anything, because they had to handle everything when filesystems were like a brand new invention and nobody really knew what was good or bad, so they threw everything in.

Tough to get standards before standards exist.

abraae
10 replies
1d14h

I attempted this within a few days of first being exposed to vi - 35 years ago.

But since I was logging into different machines all the time I soon decided it was better to just use vi the way it came out of the box, modes and all. That philosophy has served me well over the years.

csdvrx
3 replies
1d14h

But since I was logging into different machines all the time

We now have actually portable executables (multiplatform, multios) that contain their own config file: you can just scp 1 binary and be done with it.

pastage
2 replies
1d13h

Do you have a link to this? It is not always possible, arcane non x86 arches, low bandwidth connections, but time is the big thing. A binary upload just to change some lines in a machine on the other side of the world. I am lazy.

ttyprintk
0 replies
1d9h

The superset is 243MB from https://justine.lol/cosmo3/ but it might be more convenient to be lazy and run sshfs rather than modify the far end.

csdvrx
0 replies
1d

for vim aarch64 and x86-64 : https://github.com/csdvrx/CuteVim

just embed your own vimrc with zip following the instructions

for others, see https://cosmo.zip/pub/cosmos/bin/

sfRattan
2 replies
1d11h

I had a similar realization early after first picking up vim in college: customization of any tool eventually hits a point of diminishing returns beyond which further alterations reduce your ability to use the tool in its default state. It's an insight I've found applies to almost any tool... From software to hardware and beyond.

Master the default behavior of a tool, and then improve your effectiveness with customization, but not so much customization that you can no longer use the tool effectively in its unmodified state. Sometimes you have to use other people's tools, and it's important to still work effectively when you do.

livrem
0 replies
1d4h

I used to think like that, but 10 years ago I decided to create a git-repo for my .emacs.d and started configuring beyond the most trivial settings (and including all dependencies in the repo too). Diminishing returns? Not sure how to measure. Editor configuration was never anything I did because I thought it would somehow save time, as some seem to imply, but rather just about removing sharp edges and making the experience of editing files nicer. With everything a quick git clone away it is rare that I have to work without my configuration.

alentred
0 replies
1d6h

I agree with this very much! I learnt it the hard way: my experience with many powerful tools, Vim included, was to learn the basics first, customize it to the point where you can't recognize it anymore, and then finally strip it down to the basics again, keeping only the configuration that doesn't prevent me from using the the raw features.

I used to manage complex "dotfiles" and scripts to configure a new computer, etc. I still technically do, but they are much more simple now. I just don't want to spend my time on configuring the stuff anymore, and appreciate the out-of-the-box experience much more. This by itself became a criterion when choosing new tools, frameworks, etc.

ttyprintk
1 replies
1d8h

I totally agree, but we should concede that the defaults need to accommodate the next billion users instead. I propose that a distribution ought to have the right to:

- Easy-mode as sensible-editor

- runtime mswin.vim, set nocompatible, etc as the skel vimrc

These are easier to change than driving new users to Google “how to exit vi”.

But remapping Ctrl-O, like this post, is a breaking change.

rand0m4r
0 replies
1d7h

Speaking about mswin.vim which does mostly what this does: what's the point of this project.

augusto-moura
0 replies
1d13h

Do you remember which plugin/project you used at the time? The one being linked looks pretty recent [1]. Are there any other implementations?

[1]: https://github.com/SebastianMuskalla/ModelessVim/blob/main/L...

laserbeam
9 replies
1d11h

I don't think this covers the main reason I only use vim occasionally: it is the only reasonable editor available over ssh by default on all VMs deployed in your typical org. Over there it usually has default settings, and it's not trivial to change configs or install other editors.

Worthy attempt, looks cool, but I'm still stuck with having to learn the basics of moving a cursor around reasonably :(

AlchemistCamp
5 replies
1d11h

You can learn the basics in under 15 minutes.

laserbeam
2 replies
1d10h

I agree with the aurhor of the library.

Q: Why don't you just learn the vim commands?

A: I did, but if you don't use vim regularly, you keep forgetting them.

The basics are only useful in vim, and editors that you force into vim mode. Other places one types text into which use the same conventions absent in vim: browser input fields, the url bar, email, office software, random input fields in games (I've seen single file libraries that obey the same conventions of moving across words that you get in office), publishing software, chat clients... Vim is the only outsider, and because I only need it rarely, I forget things and I accidentally use the shortcuts from other software which sometimes break things.

I know enough vim, but I keep using conventions from other software out of habit, and shortcuts do other things. Vim is great editor, but a horrible thing to use by default simply because it was made before text editing ux got standardized.

wruza
0 replies
1d4h

As a vimer, this is absolutely true. Learning is repetition, not just reading. And we don’t have time to learn something we rarely use.

For the same reason I can never even think of writing in ahk, awk, bash, scss and other arcane syntaxes without examples and snippets. Because the usage is occasional.

And I definitely hit Esc and lost my input too many times. Of course the apps that don’t ask for Esc confirmation are to blame, but they exist.

AlchemistCamp
0 replies
1d9h

You’d be surprised how much software has VIM bindings built-in or a plugin to add them. This includes browsers, email and office software.

More importantly for me personally, is that VIM is a lot more ergonomic than the “standard” Windows-style text-editing ux you prefer. It played a crucial role in helping me (mostly) recover from severe repetitive stress injuries. Many, many others are in the same boat.

I wish I’d started using it in earnest years sooner. IMO, it’s worth learning even if you never have wrist problems. I write, and especially edit, blog posts faster now with it than I could prior to injury when I could type faster.

TuringTest
1 replies
1d11h

And you can forget them in the next 15 minutes. Been there, done that.

As the article says, if you don't use it regularly you'll never learn it by heart, and Vi doesn't have any affordances that will remind you of what you learned by recognition instead of recall.

airspresso
0 replies
1d9h

It's unforgiving, but that's also a bit refreshing. The feeling of accomplishment after a coding session in vim cannot be replicated in other editors.

cassepipe
0 replies
1d5h

You can make it better and remap CapsLock to be Escape. Now you are not constrained to use vim but can actually enjoy using it (and now you can try your fav shell's vim mode and become a command line ninja, imagine going up and down your command history with j/k and searching with your command history with just /)

bigstrat2003
0 replies
1d1h

Thankfully you can usually find nano installed, which is an order of magnitude superior to vi(m). If I'm in a shell I want an editor to get in, edit a couple of lines, and get out, which nano excels at.

bharrison
0 replies
1d3h

This is precisely my use case for using vim exclusively, and why I force myself to operate with a minimal config.

hresvelgr
9 replies
1d15h

Why not just use nano where all the common operations are labeled clearly at the bottom of the screen?

pvg
8 replies
1d15h

The author answers that in the linked thing, the short of it is for the vim features that nano doesn't have.

j2kun
5 replies
1d14h

I wonder which sort of features they could have in mind, if learning the basic modes is too hard for the intended user of the plugin.

pvg
4 replies
1d14h

They mention that as well - syntax highlighting is one example.

saagarjha
3 replies
1d12h

nano of course has syntax highlighting, so I’m curious where it falls short.

diggan
2 replies
1d5h

Does it have syntax highlighting for the same amount of languages as vim does, out of the box?

I just installed nano-7.2-1 and opened a HTML file with `nano test.html` and it opened without syntax highlight, I can see the point in authors endeavor if syntax highlighting out of the box is what they're looking for.

saagarjha
1 replies
1d3h

I mean vim does the exact same thing; you have to turn on syntax highlighting…

j2kun
0 replies
1d2h
shortrounddev2
1 replies
1d14h

I feel like if yiu want a fully featured IDE with language highlighting, debugging breakpoints, and code completion, but at the same time you want more ergonomic user interface, you should just use VSCode instead of doing everything in the terminal

wanderingstan
0 replies
1d13h

As the author states, this is for people who do most things in a different (modal) editor and just need a terminal editor on occasion.

asix66
6 replies
1d14h

Seems maybe author did not know that this is already built into vim?:

"easy vim", aka evim, or "vim -y". see "man vim"

That said, if modeless editor you are looking for... then vim is not the editor you're looking for. It goes against what vim is, and hamstrings it. Learning vim is a journey, and once comfort sets in, you will understand why, why vim.

danra
4 replies
1d13h

Good to know.

Of course, I did have to google how to quit easy vim.

rgoulter
1 replies
1d12h

I did have to google how to quit easy vim.

For those who know how to quit vim, but want to experience "how do I quit" again, try running `:term`.

sweetjuly
0 replies
1d10h

The real magic is opening :term, close all your splits, forget that you're still in term, try to open vim again, and then being momentarily confused why you find that all the keybinds and broken. This happens to me about once a month.

hobabaObama
1 replies
1d13h

for any one wondering

cntrl-o --> to get to normal vim mode

then exit as usual

lancebeet
0 replies
1d7h

It's apparently also possible to do Ctrl-q to quit directly (it runs :confirm qall).

thih9
0 replies
1d10h

It goes against what vim is, and hamstrings it

Not the first, not the last hacky project. Saying that it goes against what it is makes me think of JS V8 being used outside of browser.

Perhaps there are good reasons for not having modeless vim (or server side js for that matter), but the industry overwhelmingly accepts good enough solutions, with good enough results.

Vim go brrrrrr, I guess.

radiKal07
4 replies
1d8h

Instead of remembering cryptic commands

I use vim and nothing about its commands are "cryptic" to me. You want to "go to definition"? You press "gd" as in "(g)o to (d)efinition". What's cryptic about this?

onehair
1 replies
1d7h

gd isn't a native vim command though :P This tool is intended for people who never use vim more than a few times a month or a year

cassepipe
0 replies
1d5h

Not sure why you say it's not native... Sure it's made to work along with a ctag file but it's totally native (ie no plugin) if point vim to one, ctag is only crafting the file.

mcluck
0 replies
1d8h

Exactly. The whole reason I use vim is because it's like a conversation. If you want to talk about cryptic shortcuts, look at IntelliJ. Why should Ctrl+B be Go to Declaration?

bigstrat2003
0 replies
1d1h

Are you serious? That's incredibly cryptic. The fact that you learned it doesn't make it intuitive for others.

bpshaver
4 replies
1d14h

What's wrong with "modal"? I don't think "modeful" is a word.

jdeisenberg
3 replies
1d13h

See http://worrydream.com/refs/Tesler%20-%20A%20Personal%20Histo... (specifically the sidebar “How Modes Degrade Usability”) There’s also a sidebar “Objections to Modeless Editing and Cut/Copy-Paste”

bpshaver
1 replies
1d3h

My point was just that "modeful" isn't a word. Vim is a "modal editor." The article you cite does not include the word "modeful."

jdeisenberg
0 replies
1d1h

Ah, now I understand. My apologies.

viraptor
0 replies
1d12h

I think you misread/misunderstood OP.

bharrison
3 replies
1d11h

I can only imagine the kind of fascinating, or maybe frightening list of perceived requirements someone might need from their editor/ide that boils down to their installing this.

dualogy
2 replies
1d10h

Here's a TUI / terminal editor I'd like: VSCode clone. Reads the same config file JSON formats from the same locations, loads and renders the same color schemes, runs the same Extensions Host, exposes the same API to extensions (with some things like WebView, CustomEditor and such throwing NotSupported obviously), keeps up with changes in all those formats.

Major visual difference would be that whatever the editor font settings dictate, would apply to all the UX not just the text-editor tabs. But that, who would even mind.

The extensions compat would have to be NodeJS-based I guess, but the rest wouldn't have to be written in JS/TS I suppose..

Plenty of us are "happily Stockholmed" by the overall DX of VSCode but were there a Electron-less but otherwise 99+%-compat-and-keeping-up-with-vsc rendition (TUI or native GUI), we'd jump on it nonetheless.

vintermann
1 replies
1d5h

It's interesting that you refer to Stockholm syndrome about vscode in a thread about vim.

Me, I first wrote programs in AMOS Basic, which was certainly not CUA either (I remember shift-backspace erased a whole line, which could be really frustrating). I've done enough learning of tiresome nowhere-else UIs... back when I played Nethack, I would of course insert a big S anytime I tried to save in another program for a while. Nethack was at least fun enough to make it worth it.

VSCode is fast for stuff I do in editors which is slow elsewhere (thanks in no small part to Mr. Gallant!) and better at doing anything an IDE used to do, than most IDEs. Does vim support full-featured language servers/tree-sitters these days?

veilrap
0 replies
17h40m

Vim has pretty good support of the lsps and tree sitters that code does (at least for the languages I’ve used), I actually have a mirrored configuration between the two to simplify when I want to jump from one to the other. :)

behnamoh
3 replies
1d15h

I need to get some fresh air and listen to peaceful music to forget that I saw this! Vim has been one of the best discoveries of my life BECAUSE of its modes, and I've taken that modal approach to my browsers, VSCode, etc.

weaksauce
2 replies
1d14h

If you don't already do it the neovim extension for vscode is nights and days better than the one trying to emulate vim in javascript.

behnamoh
1 replies
1d14h

I tried both (mainly to use my neovim extensions) but unfortunately it was buggy (around 6 months ago) for me. Has it gotten more stable now?

weaksauce
0 replies
22h34m

the only time i've seen any bugs is when the neovim version lagged behind what they require in the project. i would work but not well. upgrading neovim fixed it for me.

though, like any project, there are probably bugs at the edges... not sure what bugs you are experiencing however.

arnklint
3 replies
1d10h

That’s a whole lot of code to not have to learn 10 keystrokes.

cassepipe
2 replies
1d5h

Unless of course the modal editor everyone is talking about has its most important key, i.e. the mode changing key, the furthest away possible from your fingers because of an historical accident and none of its users are talking about it and are smug about how easy it is so easy to learn a bunch of commands instead of mentioning the issue

teo_zero
1 replies
19h2m

You must be kidding. This thread is full of comments about remapping ESC to Caps Lock and other amenities like that.

cassepipe
0 replies
18h55m

My top level comment started the thread where most of them are

MantisShrimp90
3 replies
1d4h

I think it's funny how much emotional energy gets invested into any (neo)vim posts. But the energy is mostly people that never learned vim and feel super insecure about it.

I'm not going to make the same mistake of judging this. If you are someone who has always hated vim and never want to touch it, go for it, this might make your day easier on some machine if you can load this repo really quick (although as others have noted you would need to ftp the repo onto a machine over ssh to make this work).

As someone who is a neovim enjoyer, you are allowed to not like (neo)vim, I don't want to hear you bitch about the editor you don't want to use. If you're a vim user who has this bad habit of shaming people for their editor choice, STOP! It gives us all a bad name whenever you judge people just because they don't enjoy the vim life, just like emacs it's closer to a lifestyle than a tool and if people don't want to invest the time they have the right to make that choice.

The world is no longer dominated by vim and it really has become an optional skill for new programmers.

AlienRobot
1 replies
22h8m

learn vim

After starting the (neo)vim tutorial, all I could think about was if people who "learned" vim never learned how to edit text in a normal text/code editor.

And I don't mean this in an inflammatory way. I mean:

hjkl = Arrow keys

b = Ctrl + Left

w = Ctrl + Right

df<space> = Ctrl + Delete

$d = Shift + End, Delete

dd = Home, Shift + End, Delete

2 = just press the keyboard command twice??

ddp = Alt + Down

ddkP = Alt + Up

The more I read the tutorial the more I felt like... do you not have arrow keys? I mean this literally. Is your keyboard just esc to f12 and there are no arrows or the numpad and it just ends there?

I do understand some good points of vim, like how explicit it is. There are many code editors/IDEs out there and sometimes how they treat Ctrl+Left/Right has subtle differences, e.g. ending the "word" in "-" or "_" or stopping before or after spaces. But most of this stuff is (or at least should be) configurable. But that's about it.

I mean how do you even use the numbers? Who looks at code and says "no, this should be exactly 8 lines below this one." I just Alt + Down until it's right. I'd spend more time trying to write the command right than I'd spend just pressing the keys multiple times.

jzm2k
0 replies
10h9m

I mean how do you even use the numbers? Who looks at code and says "no, this should be exactly 8 lines below this one." I just Alt + Down until it's right. I'd spend more time trying to write the command right than I'd spend just pressing the keys multiple times.

With relative line numbers it's really easy actually. Typing dd7jp takes less effort than pressing alt + down multiple times and I have hard time believing you'd be make this argument if you were comfortable with modal editing.

In fact, none of the alternatives you listed seem attractive if you're accustomed to modal editing. How is Home, Shift + End, Delete a good alternative to dd? So much movement to do a simple operation.

I would highly recommend you giving it an honest try and if it doesn't work, you can always go back to editing the traditional way but once it clicks, "the old" way feels super awkward.

SAI_Peregrinus
0 replies
1d3h

Agreed. I prefer vim as my $EDITOR, but I don't use it for programming. There I prefer JetBrains IDEs mostly. When I'm editing something in a POSIX terminal, vi is guaranteed to be available and is powerful. Knowing how to use vi is useful because it's required by POSIX and thus available on any system you SSH into. That means default settings & no plugins, and maybe not even vim.

tombh
2 replies
1d4h

I made a plugin to do this too! https://github.com/tombh/novim-mode

I'd never heard of OP's, I'm sure we can work together to share ideas.

teo_zero
1 replies
19h9m

What's wrong with mswin.vim that's shipped with every vim and neovim that you need to reinvent the wheel?

tombh
0 replies
16h0m

From the README:

Vim itself already has support for something similar in its optional mswin.vim config file. However it still assumes the necessity of Normal Mode and such heritage as SHIFT+INSERT-style combinations. This plugin however, attempts to avoid Normal Mode unless absolutely necessary, say for interacting with the NERDTree buffer, wherein Insert Mode has no purpose.
pvg
2 replies
1d15h

After years of vi users trying to turn every perfectly working program into a worse version of vi, it's heartening to see we're taking the fight for sanity and justice back to their territory.

nextlevelwizard
1 replies
1d11h

Just fact that ones you learn vim motions it is hard to let go since they are so powerful

pvg
0 replies
1d11h

Well, reasonable people can have different, even more reasonable explanations for that 'fact'!

https://news.ycombinator.com/item?id=25099049

null_point
2 replies
1d13h

This reading this for me is like watching someone order eggs sunny-side up but then they scope out the yokes and toss them; eating only the egg whites.

Similes and feels aside, I wonder which situations using vim in this way comes up that you wouldn't just use your preferred editor for. I know you can set an editor for things like git, but couldn't you use a GUI editor?

wanderingstan
1 replies
1d13h

Happens often when one needs to ssh into a remote server and edit some files, sometimes with tmux to boot.

nextlevelwizard
0 replies
1d11h

Why not use vscodes ssh plugin? Feels like that is what you actually want.

colordrops
2 replies
1d15h

take that emacs

thrill
0 replies
1d15h

M-x zone

segfaultbuserr
0 replies
1d14h

It's evil-mode time.

a-saleh
2 replies
1d5h

T.b.h. I mostly use vim with keyboard movement in insert mode enabled, so ... 80% time I don't really use modes.

cassepipe
1 replies
1d5h

It's like using a bike as a scooter. It works but...

Have you tried remapping CapsLock to Escape so now you have a quick access to the most important key of your editor and can actually enjoy it ? Most vim users do it but they never talk about it and the beginners have no clue and suffer needlessly from this historical accident.

a-saleh
0 replies
5h47m

I have thinkpad, and fortunately they still make esc big enough, so that I was not compelled to rebind.

It is more like ... when I am writing I like to stay in insert mode as long as possible - and this is where I would put the 80% of the time in vim.

Once I put on my edit/refactor hat, that is where normal-mode shines :)

And of course, special shout out to visual-selection mode.

quasarj
1 replies
1d14h

Blasphemy!

decafbad
0 replies
1d11h

I'm honing my sword.

oneshtein
1 replies
1d10h

Ctrl+Shift+←/→/ doesn't work, Shift+←/→/ at the end of line doesn't work, no quick access to console, so I will continue to use mcedit from mc instead.

amne
0 replies
1d10h

As someone who used mcedit for ~20 years now and vim for ~1 year I still feel sometimes I'm faster in mc+mcedit for both code edit and navigation. It's slowly moving towards vim(neovim actually) with the whole copilot autocomplete stuff that when used properly can speed things up a lot.

nhumrich
1 replies
1d14h

I have found "micro" to be a really good "modeless" alternative to vim

naruhodo
0 replies
1d13h

Yeah, same. However, it is a pain to install on some systems because, for example, the Ubuntu package installs a debug build that puts a log text file (or similar, I forget the details) in $CWD everywhere you go. So you end up downloading a binary off Github, which feels dirty to me. And there are some other micro configuration tweaks I like to do.

I'm definitely going to compare this against micro.

mikl
1 replies
1d6h

Modeless Vim. I guess that’s a bit like a peanut butter sandwich with no peanut butter. But if that’s what you want, more power to you.

imbnwa
0 replies
1d2h

I struggle to think what person, whom doesn't interact with nearly frequently enough, would pull down this to repo just for when they may/might interact with vim

loloquwowndueo
1 replies
1d15h

I’m using vim precisely because its modal - multi-key combos hurt my hands, modal has me doing fewer finger contortions.

eviks
0 replies
1d11h

You can also rebind combos to not hurt

dinkleberg
1 replies
1d14h

Everyone has their preferred setup, so I guess it is cool that this exists for that reason.

But come on! Learning vim bindings is one of life’s greatest pleasures. Once you’re hooked you’ll hate any non-mode based editors.

quickthrower2
0 replies
1d14h

Guess I never got hooked!

bornfreddy
1 replies
23h30m

One thing I sorely miss with vim (and which sold me to vscode - yes, I know) is editing in multiple places at once (not sure about the correct term). You select some text, press Ctrl+d to select another one, if you want to skip one Ctrl+k d, then just edit in multiple places at once. Simple and sooo useful, because you actually see each selection before you edit it, and you can select them one by one (or skip, or go back). Alternatives with vim that I found were not quite as helpful, but I'd love to learn I missed something.

bosquefrio
0 replies
23h19m

vscodevim is a vim plugin for VSCode.

LAC-Tech
1 replies
1d10h

I'm down for modeless TUI editors. This idea that because I like to work in the terminal I must prefer modes is accidental.

I used micro for a while, which was quite pleasant, but didn't have all the LSP goodness.

Yasuraka
0 replies
1d9h

It is sad that it is a plugin instead of a core feature and a buggy one at that (https://github.com/AndCake/micro-plugin-lsp), it's the last missing piece to transform a really good choice into the de factor killer

3v1n0
1 replies
1d5h

Micro is probably better at this point for such purpose.

However I also have some customizations myself to use some kind of modeless commands to quickly select or move around, but I still model things around basic vim syntax and its fantastic move keys which keep me in the home all the time (e.g. Using alt+ghjk from insert, I move around, adding shit I select, without having to switch to move or visual mode)

soap-
0 replies
1d5h

I was using micro. I still love it, but the syntax highlighting for ruby is very messed up

xwowsersx
0 replies
1d3h

This is blasphemy of the highest order. Modeless Vim is akin to rewriting the universe's source code – an audacious act that sends ripples through the cosmic keystrokes, disrupting the sublime balance of modal existence!

thih9
0 replies
1d10h

I guess now I know how experienced emacs users feel about me always using evil mode.

swader999
0 replies
1d15h

Blasphemouse.

segfaultbuserr
0 replies
1d14h

Emacs has Evil Mode for simulating a modeful editor with vi-style keybinding. Vim now has an extension to do the opposite thing. It would be extra amusing if it supports Emacs-style keybindings (but it doesn't).

rflec028
0 replies
1d14h

As both an avid vim and emacs user, and a lover of both:

This is heresy!!!!!!!!!!

nextlevelwizard
0 replies
1d12h

Is this so you can look cool and say you "use vim btw" while not getting any of the benefits of using vim?

michaelcampbell
0 replies
1d4h

Modeless vim, Emacs "evil mode"... dogs and cats living together. It'll be anarchy.

linsomniac
0 replies
1d4h

I could get behind a "nanoVim" config that was vim but with nano bindings, that could drop in Linux distros in place of nano, and would let me flip back to full vim when I get dropped into it to edit a crontab or the like.

krick
0 replies
22h15m

So, what's next? Lispless Emacs?

kagevf
0 replies
1d12h

emacs has CUA available and another comment mentioned there's an "easyvim". My point being that those editors already support those features.

jrm4
0 replies
1d14h

Wow. This appears to be made for exactly me.

I've half-learned vim and like the idea of it, but frankly I also use so many other "regular" programs that at times I wish I never learned vim.

I'm really hoping this is more-or-less what I think it is.

jovial_cavalier
0 replies
1d8h

Does anybody really struggle so much with vim that in the occasional circumstance they have to quickly edit files on a remote server, they are totally brickwalled, and need to install a total conversion config?

That seems insane to me. A few years ago I decided to "get good" at vim, and I learned a handful of new tricks. A few new ways to select text, macros, new ways to navigate, etc. But before that, I was perfectly capable of navigating documents and editing them with the arrow keys, just using "i" and "<Esc>".

It seems like the only person for whom this would be helpful is someone who has no clue what vim is, and doesn't understand modes at all. That kind of person is likely not going to be able to even find this repo, let alone install the configuration.

jokethrowaway
0 replies
1d11h

pretty cool you can do that!

nano syntax highlighting is not as good as vim but it can work - the problem is in a lot of places there is nothing but vi

if you can configure vim you probably can also just install nano so it's unlikely this will get any use

jacky2wong
0 replies
1d6h

I use VSCode + Vim. I found that largely replaces the need for a modeless vim. Is there an advantage of using it over my current setup?

hannofcart
0 replies
1d9h

As an old vim graybeard, more power to you.

I'd recommend checking out `vim -y` as well. (And once you try _that_, you'll likely have a question, the answer to which is Ctrl-l.)

To others on this thread decrying this as heresy: leave 'em be. Let everyone use whatever editor flows works for them.

Programming is hard enough without having to conform to other people's beliefs of how _you_ ought to use your own editor!

greatNespresso
0 replies
1d8h

I relate with OP about the difficulty to memorize advanced commands from vim. Nevertheless, I cannot go back to a modeless editor and found a happy middleground using VSCode with the vim extension. It's not hardcore vim for sure but I feel that I get the best of both worlds.

fandalf
0 replies
1d11h

just use gedit then?

euroderf
0 replies
10h57m

From the README: > This is meant for people who normally use GUI editors (like VSCode), but sometimes need an editor that can run in a terminal.

There's always emacs -nw

danShumway
0 replies
21h48m

I expected to somewhat lightly/jokingly make fun of this, but after looking at the README the reasoning makes complete sense to me and it seems like just a straightforwardly good project. This is not about saying what Vim "should" be, the author is setting up a quick hack to make a ubiquitous piece of software usable for them. Totally reasonable and it's great that Vim is flexible enough to make this work.

It's not about building an ideal piece of software, Vim's model of syntax highlighting is probably not the ideal model for a piece of software, ideally you'd use per-language highlighters that are hosted separately. But those highlighters aren't installed by default, and Vim is. So yeah, use the tool that exists and make it usable. Yes, you could install a Vim alternative, but this is not about making an editor to live in or building a perfect system.

So I think this is great, I don't think it defeats the purpose of Vim at all. I say this as someone who set up Emacs to use Vim keybindings and who thinks the modal editing and composition combined with macros within Vim is basically the biggest selling point of the editor. It doesn't matter what Vim "should" be, this is an easy way to get a ubiquitous text editor to be more usable. Not perfect but a one line installation on almost any Linux box with Internet access, so it solves a real problem with relatively little downside in a quick and easy way -- real hacking at its finest.

It might be useful to compare and contrast this to Vim's easy mode (vim -y), but this project is also 2 years old and I don't know what the state of easy mode was back then, and that kind of comparison might be overkill anyway. I like modal editing, so I'm not as familiar with easy mode so I'm not sure what the comparison would be. I know at some point it started defaulting to a graphical session because quitting out of easy mode in the terminal was giving people trouble. But possibly something to look into, maybe, depending on the system you're using if you need to use Vim but can't customize it.

cmrdporcupine
0 replies
1d2h

Ok now give it emacs keybindings.

Thanks.

cmod
0 replies
16h33m

Is Micro[0] not a better, more purpose-fit solution to these issues? (Syntax highlighting quality, etc)

Prev discussed: https://news.ycombinator.com/item?id=37171294

[0]: https://micro-editor.github.io/

chrisfinazzo
0 replies
1d2h

Corollary: xterm-mouse-mode in emacs is an equivalent of sorts for the rest of the world, and it is excellent.

bufio
0 replies
1d4h

The best part of using vim is telling everyone you use vim.

bluish29
0 replies
1d14h

This configuration is not meant for the aficionado who prefers vim over graphical editors. This is meant for people who normally use GUI editors (like VSCode), but sometimes need an editor that can run in a terminal.

So it probably not for many people here. But I like it although I use vim as IDE when doing remote development.

asicsp
0 replies
1d14h

See also: https://github.com/tombh/novim-mode (Plugin to make Vim behave more like a 'normal' editor)

anthk
0 replies
1d8h

I prefer vis. It has structural regexen, a la Sam in plan9, much better than the old s,foo,bar, syntax.

angvp
0 replies
1d14h

Oh man, I'll give you an E- for the effort.

agumonkey
0 replies
1d14h

I'm not sure modeless has meaning. It's just an initial mode map in a way.

adamtajti
0 replies
1d7h

Hilarious!

a-dub
0 replies
1d13h

this is violence. i never knew it was possible to emit a shitpost in the form of a github project, i am simultaneously disgusted and humbled.

MatthiasPortzel
0 replies
1d2h

I tried to create something equivalent to this for a long time. I’m used to normal text editing controls, so there’s no reason for me to learn Vim’s controls. But Neovim’s syntax highlighting and other features are best in class. (I was using Mac, and so wanted to use command instead of control, which requires cooperation from your terminal emulator, adding another layer of complexity.) I got extremely close; but there were constantly little things missing that I expect from native text fields.

I gave up and switched to Sublime Text, and haven’t looked back. The advantage of an “in-terminal” editor is really just not having to break flow to edit a text file, and Sublime is so fast and simple that it works great for editing files outside of a project. Even over SSH (with RemoteSubl) or for writing git commit messages. I can share config details if people are interested.

Aperocky
0 replies
1d3h

Even the church of emacs have never seen desecration like this.

Aaronmacaron
0 replies
1d12h

The config files in this repository turn vim into a modeless editor. Instead of remembering cryptic commands, you can use standard key binds, like Ctrl+S to save, select text using Shift+←/→/↑/↓, and copy/paste using Ctrl+C/V.

This configuration is not meant for the aficionado who prefers vim over graphical editors. This is meant for people who normally use GUI editors (like VSCode), but sometimes need an editor that can run in a terminal.

I think it's unrealistic to expect users who only occasionally use vim to edit the odd config file in the terminal to fiddle with a custom vim setup.

If you're really looking for a good editor that behaves like GUI editors I really recommend micro [1]. It has mouse support by default, syntax highlighting for many languages out of the box, most keybinds are the same as in GUI editors and copy/paste works like expected.

[1] https://github.com/zyedidia/micro