1. 35
  1.  

  2. 2

    I’m a Vim person and for a long time I would run gVim on windows for general purpose text editing (while most actual programming done in visual studio with the awesom vsVim plugin). But there’s a Vim mod for VSCode and I just run that now. Its definitely slower than raw Vim or Emacs but it works fast enough.

    1. 4

      There’s also a vim mod for emacs called Evil mode; it’s pretty good. Spacemacs is an emacs distribution which uses Evil mode really well.

      1. 1

        I guess YMMV, but I really can’t stand how slow vscode is compared to plain nvim. :)

        1. 1

          yeah, it is way slow, in cases of large files, like a big log file, i’m still using notepad++ for that stuff

      2. 1

        use emacs keybindings everywhere, in the shell, browser, you name it. On OS X, Karabiner mapped those bindings for me and now on linux laptop with GNOME it is a top-level feature.

        Does anyone know what GNOME feature the author is referring to here?

        1. 9

          Along with UI themes, icon themes and cursor themes, GNOME supports “key themes” which determine the keybindings used in text-entry fields.

          To see the current value, from the command-line:

          dconf read /org/gnome/desktop/interface/gtk-key-theme
          

          To set the theme to “Emacs”:

          dconf write /org/gnome/desktop/interface/gtk-key-theme "'Emacs'"
          

          (the double-quoting means it will be set as a string value)

          To reset to defaults:

          dconf reset /org/gnome/desktop/interface/gtk-key-theme
          

          There’s also a UI for this option, in the gnome-tweaks tool.

          1. 1

            Ahh right. Thanks for the explanation. I see there is an, “Emacs Input”, option in Tweak Tool now.

            1. 1

              Brilliant, I must try this, thanks!

          2. [Comment removed by author]

            1. 7

              If I find myself on a machine that doesn’t have my customized environment, my productivity drops and cognitive burden increases, as I try to remember how to do things the unaugmented way.

              Emacs tramp-mode makes it pretty easy to edit files on remote machines using your local config.

              I have to remember what I have installed and what I don’t.

              Most Emacs users keep their dotfiles in git, which makes it pretty easy to ensure that you’ve got the exact same setup on every machine you use. (It’s a little more complicated if you use package.el because it defaults to just installing the latest version every time, which is why I use git subtrees for all my dependencies; helps guarantee you’ve always got the exact same setup every time.)

              1. 1

                Most Emacs users keep their dotfiles in git, which makes it pretty easy to ensure that you’ve got the exact same setup on every machine you use.

                I doubt even 10% of Emacs users keep their dotfiles in git. Not to mention that it’s not exactly kosher to go downloading a repository of files onto every computer you happen to ssh into. My standards for what kind of code I allow myself to run and download and what kind of code I’d download onto an arbitrary production server are pretty different.

                (It’s a little more complicated if you use package.el because it defaults to just installing the latest version every time, which is why I use git subtrees for all my dependencies; helps guarantee you’ve always got the exact same setup every time.)

                Because every vim plugin I’ve come across was hosted in a git repository, I’ve switched to using git submodules for plugins. Only problem is that every time I go to clone my repository, I do a git clone, then remember I have forgotten the command to initialise all submodules, delete the clone, then clone again with --recurse-submodules.

                It also means I can clone without submodules to just get my .vimrc if I just need to do something simple. Although to be honest, I can get back to 90% of my productivity just by switching ; and :.

                1. 8

                  I doubt even 10% of Emacs users keep their dotfiles in git.

                  A bold claim. However, speculative.

                  Not to mention that it’s not exactly kosher to go downloading a repository of files onto every computer you happen to ssh into.

                  I think you’re misunderstanding how Emacs tramp-mode works. You can edit files over ssh just like you would on your local file system. No need to setup a remote Emacs config.

                  1. 1

                    A bold claim. However, speculative.

                    No, it’s not a bold claim, because it’s not a claim at all. On the other hand, ‘most Emacs users keep their dotfiles in git’ is a claim, and a very dubious one at that.

                    I think you’re misunderstanding how Emacs tramp-mode works. You can edit files over ssh just like you would on your local file system. No need to setup a remote Emacs config.

                    I wasn’t talking about tramp-mode. Obviously. I was talking about what I was directly responding to and what I directly quoted.

                    1. 4

                      I wasn’t talking about tramp-mode. Obviously. I was talking about what I was directly responding to and what I directly quoted.

                      I am quite sure that what @pab meant was that there is no need to to clone your dotfiles to every machine you ssh into, as long as you have tramp-mode at hand.

                  2. 3

                    I doubt even 10% of Emacs users keep their dotfiles in git.

                    I’m probably inclined to agree, when it comes to all Emacs users. It would probably be better to say that most modern and intermediate (or more advanced) users use git to manage their dotfiles (or just .emacs.d, in my case). Those using Emacs over 30 years probably already have a scheme and a strategy, and those still experimenting and learning will not find great value in using VC.

                    Not to mention that it’s not exactly kosher to go downloading a repository of files onto every computer you happen to ssh into.

                    I think that @technomancy is talking about workstations. As he mentioned, Emacs users use Tramp to connect to remote systems, while retaining their local configuration. At most, people usually use, eg mg instead of vi, but porting everything is usually not worth the effort.

                    1. 3

                      I doubt even 10% of Emacs users keep their dotfiles in git.

                      I don’t know about that. ~/.emacs.d/ has been a thing for many years now, and things like [Prelude}(https://github.com/bbatsov/prelude) & (I believe) spacemacs distribute themselves as git repos. Do more than 10% do this? I don’t know how I’d find out. But I think it’s common, and it is certainly useful to be able to roll back changes, merge them across work & personal machines &c.

                      Not to mention that it’s not exactly kosher to go downloading a repository of files onto every computer you happen to ssh into.

                      This is also common, e.g. with Oh My zsh, but note that with emacs one is far less likely to ssh into a remote machine and run emacs there: rather, one would just use TRAMP, e.g. to edit /ssh:remote-host:.config/foo/bar.

                      And of course an emacs user can do as you do, and jut schlep around a .emacs like you schlep around a .vimrc — but many (I hope more than 10%!) of us find a version-controlled repo is a better solution.

                      1. 0

                        But I think it’s common, and it is certainly useful to be able to roll back changes, merge them across work & personal machines &c.

                        There are of course many many version control systems that allow you to do all of this without being git.

                      2. 1

                        I do a git clone, then remember I have forgotten the command to initialise all submodules, delete the clone, then clone again with –recurse-submodules.

                        Why not run git submodule update --init?

                        1. 1

                          then remember I have forgotten the command to initialise all submodules

                          1. 2

                            Ah, sorry, I misread that as ‘forgotten to add the --recurse-submodules flag’.