This is the first explanation of the difference between vim and emacs I’ve ever seen that has actually helped me understand why I would want to use one over the other. Didn’t they have an old saying like, “Vim is an editor, emacs is an operating system.”
He's basically comparing vim without plugins to emacs with plugins. It's an unfair comparison. Vim has plenty of cool plugins as well. It is more limited though because elisp is more powerful than vimscript (Neovim has Lua now though) and vim is not GUI, so it can't show images and stuff. Vim is much more fast and lightweight though, is a much better editor by default (not counting emacs evil mode here obviously), and runs better in a terminal. There's a reason why DT uses doom emacs and not default emacs. Default emacs sucks and you need to write a loooong config file to turn it into something like doom emacs :)
@@maxarendorff6521 He actually mentioned that Emacs has a steep learning curve. Doom Emacs eases the process. One can learn vim in a week. But to really understand the power of emacs it takes months. But once you get there, emacs will feel much more powerful than vim.
@@maxarendorff6521 no, it is a fair comparing vim and Emacs. (And you couldn't bother learning Emacs, so just say that and don't make up excuses like "too slow", or doesn't run well in terminal or "pain to configure". Just admit, you are not the man up for the job. ;-D ) Because one argument of using vim is that it are in all Linux server. But then you need to copy the configuration between your servers. You can edit files on remote servers with Emacs without copy configuration to those servers, nor install Emacs. Just open the file /ssh:user@server:file will use ssh to open the file on server, as it was local. And with M-x shell you got a shell on that machine. Vimscript is less powerful, because you are not changing vim. When you write elisp extensions, you are actually changing Emacs. So no, vimscript isn't even comparable. That vim is faster and mire leightweight are debatable, so are to claim it is better by default. And no, it doesn't run better in terminal, actually there are no major difference between the running in terminal. Default Emacs IS the same Emacs as Doom Emacs, there would not be a Doom Emacs, if there was not a default Emacs. Just acknowledge, you are not the man to run Emacs, or configure Emacs to suit your workflow. You are not just up for the task, so you make lots of excuses. ;-) (And yes, Doom Emacs and Spacemacs are bloated ;-) ). Just go to System Crafter channel and read up on Emacs, I know you can learn Emacs too, if you want to.
What are the benefits of Emacs over Vim? *Is this some kind of a overcomplicated people's thing I'm too of a Nano user to understand?* Little update: I started learning really basic stuff about Vim and watching DT's _kind of_ obsession over Doom Emacs and ORG mode made me go back to graphical IDEs lmao
Tbh if you use nano it will be trivial for you to start using Vim to do literally everything that nano does. They're both CLIs, and the only thing you need to know is how to get into insert mode and out back to normal mode - which is as simple as hitting i then ESC - and how to save :w, close :q or ZQ, and save and close :wq or ZZ. After that it's basically the same as nano, but you'll realise there is no glass ceiling and you can use it in more and more advanced ways. I use Vim, so I don't know if you can jump into emacs with similar ease - I'll leave that for others to comment.
Master nano user here, who needs vim or eMacs those editors have so many features you’ll probably never use half of them … ill choose simplicity and elegance over those two.
I'm an Emacs user for more than 7 years now. Before that I used Vim for about 3 years. However, it's not Vim that I switched from to Emacs. It was actually Eclipse (I don't think it's even that relevant nowadays in the VSCode era). I used Eclipse as an IDE and Vim as an editor. I still use Vim for elementary editing on remote machines. And more or less that's the only thing that frustrates me in the Emacs world; tramp mode is slow.
@@grapesalt Yes but it is GUI? not CLI interpreter. VIM is CLI EDITOR. For me is important - VIM is not Graphical Editor/ I mean if in linux you;ll have error on X server (x.org) emacs will not start.
@Robert Pilgrim My point is - initially Emacs is GUI application? and Vim is cli editor. I'm not trying to convince that smth is better or not. If you install Emacs you have a Gui application.
@@mikesa7719 I believe emacs was written to run in the terminal initially. GUI emacs was developed much later. It is a software written in the 80s, GUI was not the primary environment for hackers.
I was using emacs before vim, but the main reason I switched to vim, is emacs is just slow sometimes. I mean painfully slow, and it's usually really easy for plugins to hang it or something. Vim is just fast, it either works or it doesn't, but it's never slow.
Vim can be slow, too. I switched to Emacs 5 years ago because Vim was starting and running agonizingly slowly with all the plugins I was using and due to the platform I was running on (Cygwin). Running Emacs in server mode was actually faster and gave me everything I wanted. Today, my Emacs config is over 10,000 lines, I use hundreds of packages, and I never experience performance issues.
smart guy ... the fan-boys will explain that you can always find and fix the slowdown, but why spend your time doing that ? the vim system - once you practice it - i cannot live without it. i use Emacs with evil-mode, but Emacs is more a pass-time than a productive entity. if you like to write elisp, than it has advantages - only than.
I use Emacs with evil-mode which I think can combine both pros. And the most important reason that I use Emacs is I really like Lisp, It’s elegant and powerful.
I actually don't like lisp all that much. Between having parentheses everywhere and having everything in infix notations it is very hard to read. I get that in lisp everything is a function call hence the syntax is perfectly logical, but I don't think it's doing itself any favors in terms of readability. I still do love Emacs. It's great to be able to do everything within one customizable environment using the same bindings everywhere, I just wish it was built on a an easier language to use.
I think you explained perfectly why I don't like emacs. If emacs is an environment in which I can do anything....why not just do that thing in Linux? Why add another layer of bloat on top of it?
Not to be that guy but I'm gonna be that guy. Its because Linux is just the kernel. Emacs can run on top of Linux kernel to be a desktop env, and pretty much everything else
@@KManAbout out of curiosity, have you used exwm? I want to know if it's practical to use emacs to that extreme, since if I am to use it I'd rather have it be my wm without any overhead
@@opposite342 I haven't used exwm, I know people who have and appreciate it though. I can't say I would recommend it, mostly because I am a stumpwm and commonlisp fan hhahha.
I was an emacs user for 5 years. But changed to vim and separate tools a few years ago. I tried to get back into emacs last year, but found I really couldn’t anymore.
I think it should be left to those who have complete freedom to setup things how they like otherwise the separate programs are just too hard to keep up with.
@@noyalmartin9729 in the end I found that I like simple tools and the flexibility they provide better than complex ones. After having used separate tools for some time, I can’t seem to wrap my head around all those integrated stuff in emacs anymore. It feels to monolithic to me. None of the tools in emacs were better than the separate ones. And org mode is so much its own ecosystem that it doesn’t integrate well with anything outside emacs. Living in emacs and org mode is all very well if you live behind your computer 24/7 and don’t use any other devices.
I used to use emacs for a few years. I think the issue I have with it is that I always always messing around with my configuration and not getting work done. As I've gotten older, I realise I much less stressed with minimal tools. Now I use neovim. I've got a focused configuration with just the right number of plugins and I don't have to mess with it. Emacs feels like I'm using VSCode or something. Just so much going on everywhere. It's not what I want. I just want a good text editor that can I move fast in. That's it. tmux and neovim. That's all I need.
@@darthvader1191 What would I bother with a Neovim simulcrum that runs slower if I can just use Neovim? Also, not a skill issue. I used it for three years in evil mode.
I love Org Mode as a DM. World building, campaign notes, character sheets. The uses of Org are endless. I have installed Emacs on any OS supported because of how good Org is.
Interesting. I used emacs for some years and loved the org-mode - as a task manager, as a PKM, as a journal, as an environment for literate programming. At first I used pain emacs, later on I fiddled around with evil-mode and spacemacs - and finally I ended up in doom. Then I asked myself why do I need that obstruction? With the help of the command line I can almost do everything I want. Thus I switched to vim and since approx two years are quite happy with kakoune.
we come back to the linux commandline. that is the mother and as everyone says ... the advantage is scripting. elisp is hardly an improvement over basic linux utilities.
I think the question is vim + other command line tools vs emacs. Like there are terminal basted productivity apps that are not part of vim like taskwarrior while org mode is part of emacs
I'm kind of interested in Emacs, however I haven't learnt it because I'm not sure it would be worth it for my needs. Vim serves my purposes well enough, and sometimes the learning curve is not proportional to the advantages it gives you. It may be something I'll look into at some point, but for the moment, there's other things that I will be better served by sinking my time into.
@@jaredsmith5826 I disagree. I saw some videos that showed the advantages of Vim over a standard text editor, and I thought that it would be worth learning it. Furthermore, to learn the basics of Vim takes half an hour or so, maybe even less. From there, if you need to do something but don't know how, a quick Google search is really all you need to do. From everything that I have been told about Emacs, it takes a lot longer to get as proficient with it, and the stuff that can be done beyond what Vim can do just isn't what I require.
@@JRCSalter if you only want to edit within Emacs, you can get going with the same time limit. Nothing strange there, and you don't need to handle the multi mode thing. And as with vim, everything from there is just a google away. So if you call that to be proficent in Emacs, then they are about the same. The different thing is that to contionu from there, vim has limits, serious limits. You have your set of settings, that is it. You have vimscript, but that is just what vim allows you to use through the API. You can't really change vim. Emacs your configuration is basically you rebuildning Emacs to suit you, you are making the program yours. All configuration you do, are actually changing the program. All the elisp code will be part of Emacs, no way of knowing that your additions are yours or coming from the developers of Emacs, because Emacs is built in elisp. So there are the most fundamental difference between vim and Emacs. There are no limits what you can change, compared to vim. That is why you have several adaptions of key vi key bindings to Emacs, and I have seen none for Vim. Because that isn't part of the API you are allowed to use. And no, I wouldn't recommend vim to new users, unless they are not able to learn the Emacs key bindings, which are as natural as vim. But in another plan, as they are not limited to the keyboard layout, they are "logical" in another way. You can switch keyboard layout and still be able to use Emacs as before. Not so much in vim, as it is based on keyboard layout (like the h, j, k ,l in one row to move cursor).
@@JRCSalter I'm an avid Emacs user, but I will say, it can be overwhelming to get into if you're not interested in having an essentially infinite feature set. If the necessary feature set is covered by Vim, there's no reason you need to learn Emacs, unless you want to learn it for fun. For me, Org mode, Calc, and Magit are all irreplaceable to me. They looked amazing. That's why I personally switched.
I started out using vim, and I really love the modal editing and memorable shortcuts. Whenever I need to use another editor/IDE, the first thing I do is install vim keybindings. At some point, I had to use Emacs for an AI class at university, and, as usually, I installed vim keybindings and fell in love. So now, I use Emacs with vim keybindings, and it's amazing. I'm currently in the process of moving all my todos and schedules into org-mode and org-roam and it's very promising. In conclusion, there really is no reason to chose between vim and Emacs. You can have the best of both. The only time I still use vi(m) is when I have to edit a file on a remote server because stock Emacs is pretty unusable to me if its even installed.
Im glad I found this comment after seeing the one with almost 800 likes of people just hating on Emacs. If everything said in the video is true, it just makes sense to figure out how to get vim binding to work with Emacs so you can get the best of both worlds.
I've been "using" emacs for about 2 months now. I say "using" because I'm still learning. I think it escapes definition because it is developed in multiple directions: as a platform for running elisp (write your scripts in elisp, not bash), as an elisp IDE (debug code, inspect values), as a UI framework (it is much more developed in how it interprets keys than vim), and as a text editor (ie, it has a rich elisp API for editing text); it can even be your tmux and your window manager (through EXWM). If you just want to edit text with no fuss, vim is better, but if you're like me and liked all the plugins and extra functionality vim acquired recently, I advise you to not waste time and start learning emacs. You're writing all that Lua to get vim to be just perfect, but eventually you'll hit ceilings. Emacs has a taller ceiling, you won't be as limited, but you need to invest a lot of time into it to pay off.
Hey DT. It was your channel that a few years back convinced me to take the plunge and learn VIM. I love VIM now and just don't want to change and learn something new all over again. Even with using VIM bindings in Emacs. Just don't care. My Linux setups are how I like them and my VIM is set up with a dozen plugins and tweaked to IMO PERFECTION. I think emacs is interesting and the thought of using it as the entire window manager and os seems like it would be fun to experiment with but I just don't want to take the time. There is just other fun to be had.
I don't need to get Emacs, there is no function that it can fill that is missing from my workflow or that isn't being done well enough by existing tools. I am sure to those that use it, it's a very good application, but I will still give it a pass.
@@teunissenstefanYeah, it doesn't seem quite like it... It feels too monolithic, it is trying to be so many things at once... Vim follows better the unix philosophy, you have a simple shell of an text editor and you simply extend it with the things you need, it does not come pre-bloated for you, you use what you need
I've used many different editors on and off over the last decade or so. I'm a programmer and have worked on many solo projects, within teams, in many different contexts, many different languages, with many different goals. I've used everything you can think of for years at a time. Vim, Emacs, even VS Code for a few years, Kakoune editor... I "editor" hop even more than I window manager hop. Emacs is great, and of the one's I listed, it's the most powerful by far. But my issue with it is that it can get slow. I can't easily justify that or have patience for that when there are other tools in my environment and I'm already using a tiling window manager. I don't need my git client to be in the same window as my editor, because my entire desktop is my workspace. Emacs is amazing, but the slowness, even just a little bit of slowness, kills it for me.
Me too. Even neovim is slow sometimes especially with async plugins and LSPs. Somehow Helix didn't seem to have that problem for me but it's a bit less configurable and I miss easy motions and other plugins.
@@wafficuslives6701 it's just a famous quote I find amusing I don't use either day to day and live most of the time in Sublime Text. Edited for reduced grumpiness,with apologies
Here are ways to accomplish some of those things in vim. 1. You can run any line of code from any filetype in vim as shown in 11:40. For example to evaluate the expression '3 * 4 + 12', type :.!bc The colon enters ex mode The dot specifies the current line The exclamation sends a command to the terminal bc is a terminal calculator. You're not limited to sending to the calculator. You can send it to any arbitrary program like python or ruby or elisp. You can also get this kind of evaluation by using LSP and autocompletion. The autocompletion will result in the expression "3 * 4 + 12 = 24" 2. Autoformatting of tables is provided by the plugin: vim-table-mode 3. You can export with pandoc using vim-pandoc. Admittedly, you have to remember more of the pandoc commands or set up commands to export per filetype in your configuration manually. 4. Vim also well-documented. Type :h to initiate help 5. Whichkey is also available for vim. folke/which-key.nvim, liuchengxu/vim-which-key You can also see all mappings that have been set with ':verbose map', :nmap for normal mode mappings :vmap for visual mode mappings :imap for insert mode mappings 6. Magit is also available as a plugin. jreybert/vimagit However, I prefer tpope/vim-fugitive. I don't think the following things are possible in vim. (or at least I don't know how) 1. The tangle feature of emacs 2. Multiple different fonts in a single file 3. Image preview in vim.
I tried Spacemacs for a few years but.. though org mode was cool, other stuff like web browsing or email work kind of like your example in this video opening a site. The consistency of a pure lisp environment is great but in the end it is a text editor and coming back to Vim brought me a great feeling of being back home 🤷♂️
this is my last comment here ... by accident or no, the vi system - extended with vim is close to an AI created scheme for keyboard manipulation of text. once you learn it you hate using the mouse, though i tolerate the mouse for everything else.
"Emacs is an emacs lisp interpreter." This flipped a switch in my head. I realized that emacs is an emacs lisp interpreter initially configured as a text editor. I also realized after watching another Emacs video that the Vim editing model is more coherent at the fundamental editing level. These two combined, i.e. Emacs with Evil mode makes a ton of sense to me. Vim has been helpful in providing a coherent keyboard based editing system while emacs provides all the higher order features that a crucial to any workflow beyond editing. Thank you for your clarifying presentation.
This is the best pitch for Emacs I've seen so far. Whenever contemplating on whether or not I should take a leap into Emacs and see the steep learning curve, I turn away not because of fear. I don't dive through because it usually fails my internal cost-benefit analysis. If I don't really understand what I can get out of it, why would I bother to take the time to learn it?
same. I also go like 'vim does a lot for me, and it runs on the terminal which is very close to the shell which means I have access to all my scripts and other powerful apps, also being lightning fast at the same time' and I skip on emacs.
Same. Nowadays many projects are excellent, but without a good pitch and good documentation it's going to be hard to get/maintain traction. "What's the value proposition of my/our project and how should we communicate that in a video?" should be a key question to be asked in my opinion.
there is likely no "real benefit" if you are already invested in vim. certainly the jump from something like nano to either vim or emacs is not going to be found from going from vim to emacs. i will however say that there is something to the gnu philosophy that people living in the linux world are generally blind to and emacs is the only real way to learn it. i have spent years in vim and went down the configuring it, etc., rabbit hole and felt like it was perfect. on a whim a year or so ago I spent about 5 months (while i was doing some pretty low urgency web dev) in emacs (vanilla) and it was pretty insightful. that being said, my take basically was that both vim and emacs have the whole editing thing wrong for ideological reasons and have since moved to acme (plan9)
One of the reasons why I stick with vim is that it is just a text editor that runs on the terminal. This allows me to quickly open files and write to them while I am moving things around in my terminal. If I am coding, I prefer using visual studio or vs code.
And I use Emacs for editing files, both on my machine and on remote machines. I use it for editing programs and manage them with Magit and with eglot so I can use lsp-programs to refactor programs easier. I also use it to moving things around in the file system. And when I occasional want to write things in the command prompt, I use Emacs for that to. I has been using Emacs to NetNews and mail. I thinking of going back to reading mail in Emacs too. I also use it for literal programming in Org-mode and Babel. I also write reports and papers in Emacs using LaTeX and Org-mode (thinking of moving that over to Org-mode). And yes, if I would like to use IRC I can use Emacs for that too. And extensions are added with Emacs package manager, so it is easy to download new versions of those, and also configure them in the same place. Quite neat, actually. I am thinking of installing a web browser that show up in a Emacs buffer, but I have not tried that yet. So yes, I can do what you do, but in Emacs, and I can select to use other programs, like the programs you use, when I like.
While regular vim or vscode users get excited when they use their editors as an IDE, emacs users get excited when they use their editor as an entire operating system.
Yeah, because when I'm editing a project in six different windows on 6 different servers in six different languages in vim with everything just autoformatting perfectly, it really sucks that I can't play tetris right then and there. ;)
I was skeptical at first. But ever since using Doom Emacs, I actually look up extensions to Doom Emacs rather than looking up independent terminal applications. Besides, I still have Doom Emacs and neovim installed in parallel, as I use nnn file browser, and vim is vital to the bulk renaming feature. I don't endorse editor wars. Both are brilliant editors in their own right. Use them both, love them both.
@@SenthilBabuji Yes, I assume you can. I haven't looked deeply into dired yet. I'm pretty comfortable using nnn, a terminal-based file manager written in C. And that one uses vim for its bulk rename feature.
@@marioschroers7318 if you open a dired window, you can make it writable, so any change you make in a file name i the buffer will be done on the files. And if you do use the multi cursor commands, you can easy make parallell edition for masive renaming in dired. Look up EmacsRock channel, where the author of that package are and has some demonstrations on how it works.
Good luck, man. Magit is really good. You can do everything the git command can do, only this time with single keystrokes. It's the fastest way to use git. Also, it's hands-down the fastest way to commit only parts of changes. Tab-open the changed file to see the diff, mark the part of the diff you want to stage and press 's' to stage. Done. Also, forget about what people say about having to live in emacs. It's not required. It all depends on your needs. Right now I myself am perfectly happy using emacs just for org mode and magit and coding in VSCode. That being said, I did spend quite some time learning Emacs and getting it configured the way I wanted. There's no way around that. But it will pay dividends in the end.
I went back to Neovim after using Emacs for a while. It is powerful, but it is a pain trying to force Emacs into being something it is not, like with Evil, but without Evil, it is unusable. Neovim ist fast and lightweight, easier to configure and works better in a terminal, which is my preferred way of doing things. And now with lua integration, Neovim is more powerful than ever. Org is cool, but I didn't really use most of it's advanced features so pandoc+markdown+neovim works really well for me.
I was thinking about start learning Emacs for some time, but I was reluctant because I know nothing about lisp/elisp and I'm fairly new to both Linux and Programming, but after this video, I think I'll learn how to use Emacs and get used to list/elisp. Dude, I really love this channel, keep up the good work DT, I still have a lot to learn from you!!
@@saravananm2280 For what it's worth, I now use emacs for almost everything. The video was a bad introduction to what is otherwise an awesome piece of software for certain types of people. Give emacs a try if you're interested.
I just need a text editor. I don't code. I don't need an IDE. I don't even care what language is anything written in. I don't need my text editor to run packages. Nor to run any kind of code. I need a text editor. One that has some advanced text manipulation features, because I'll use it to edit text! I don't care if emacs can do everything I can dream of. I just need to edit text and do it efficiently and then close it, and continue with my job and my life. So I use vim. Thanks anyway, now I know I don't ever need to worry if I would be better using emacs, now I know I won't.
I think the real question is Emacs vs Terminal Emulators. The thing is... I don't need a full operating system installed on top of my operating system. I write code, and Vim allows me to do that efficiently and its awesome. I'm sure Emacs is awesome too... but is i really worth the learning curve? I doubt it for my needs. I haven't even reached the full depth of what vim can do after 6 years of using it, i don't think I need something deeper.
Yes, it is worth the learning curve. Is Emacs needed for what you do, I don't know. But it will defenitly add and change what you do on your computer and in your workflow. And of course, you can do the same thing in Emacs, as it has access to several terminal emulators in Emacs, unless you want to run Emacs or Vim in them... ;-)
I've used VIM for 18 years now and I honestly still don't get Emacs. I have long ago come to the conclusion that life is simply to short to spend six months learning something with the complexity of an operating system to edit a text file. Einstein said that nothing is so complex that it cannot be explained simply but that was long before Emacs.
I use pure Emacs in terminal for about a year and I am super productive. I would say Emacs shines in it's flexibility and customizability. You basically write your own ide on base of Emacs. Very convenient. I use use-package and daemon mode to start it quickly. I use it for c++/go/python/rust/shell/clojure/lisp programming, you name it. Most of all I like it's buffer management and key bindings. I should admit learning Emacs is hard but absolutely worth it! One down side is that Emacs is not pre installed on most Linux distros, so I always compile it from sources and make install the latest version
It doesn't come installed on every machine isn't a real problem, as long as you have it installed on your machine. Just use TRAMP and you can edit files in your Emacs in any machine you have ssh access to.
Vim bigot here! I am 15 years fluent in vim, yet wouldn't call me fully learned. The help text for vim is over 200k lines. I used emacs at university , and wrangled my fingers with all Meta-this/Meta-that. There are some great git plugins for vim that does the same thing as you did in emacs (I use the terminal git commands anyway). If you mostly _edit_ code, I think vim is better (if you learn vim fluent). If you _write_ text, both would probably work. Anyway, I must say the table autoformatting you show is a big thumbs up. Good for you that you like emacs. Emacs is probably very competent for what it aims to be.
I gave emacs and vim a fair clean-slate when I had to choose a new "text"(source code) editor. I fell in love with vim's style before I got out of syntax-highlighting. The very important thing is modal vs chording, I think. EMACS rocks, but so does VIM.
I can't stand the modal thing in vim. So that is why I can't stand working in vim. And I have it configured to work well for me, nothing I could come close to in vim. Because when you edit Emacs configuration, you are actually changing Emacs. When you configure vim, you change some configurations and you add some scripts that can only use the allowed API. You don't change vim. This is a bit strange, when I think about it. Because I can't stand KDE, because of all the configuration you can, and have to, do to make it work.
3 года назад+2
I'm trying to get into Doom Emacs, but man is it hard to get a grip on which packages are installed by default, which ones need additional configuration (Projectile does, for instance) and a short list of the basic things you can do. Then there's figuring out the millions of keybindings, but which-key is a big help on that front.
Recommend System Crafters if you want to know more about what to do to configure Emacs and the work flow. Are building some configure files for Vanilla Emacs right now (vanilla as in plain default), which is nice if you don't want the overhead from Doom Emacs.
It all ends up overly complicated and feels bloated to me, I know it technically isn't,but I still rather use my shell to do the integrations and automations and have a light and snappy editor on vim, but if I didn't have that workflow, Emacs would be a cool centralised option.
I've been watching the channel for almost 3 months. Most of the time I keep DT's video open as a background sound while working. Now I even watch it on bed before sleeping. My girlfriend started to question me: Is this bald man that interesting? Guys, how should I response?
I think that neovim is heading in the emacs direction with lua rather than e-lisp. There are also some aspects of the design of neovim that are better than emacs in that there are aspects of emacs that are hacks ontop of hacks. Both are great but for the moment I am looking forward to the advances in neovim more than emacs. I spent a chunk of time in emacs before returning to neovim.
Hack upon hack? Don't agree, except for my own configuration. And when you set up your configuration and hack your setup, you actually make that part of Emacs, you are actually changing Emacs. vim and vimscript are just you talking to the vim program. You are not allowed to do anything there are not a API for. That is the most fundamental different between Emacs and Vim.
@@noname-dt6sv write an email client in vim. Write an web browser in vim. Write Tramp in vim, write Org-mode in vim. etc etc etc. That is not how vim works, so no, you can't. Emacs is designed to be expandable, by execute code in the program, to have a REPL in it from the beginning. Where you by execute code change the program you are running. That is is so good documented so it actually makes ordinary non programmers able to write non trivial expansions to Emacs. By try out the expansion while they write it. Yes, vim have a nice set of key bindings, IF you can manage the multiple mode settings, which is origin because of older editors run on computers that didn't had the power to run in "video mode". That is why you have the different modes in vim, by accident it was quite ok. Yes you could retrofit most of the extensions into vim, but that is just hacks made after they have been developed in other tools, like in Emacs. Sorry, but that is what vim are. Some nice key bindings on on rather simple editor. Compared to Emacs. Yes, that might be the tool for you, and then I am happy for you. But don't try to make vim into something it clearly isn't because you want stuff that are in Emacs, but not in vim.
@@noname-dt6sv yes, you probably will claim that vim also have an expansion language, or several. But you know, that is just an after thought, and not as good as the Lisp repl that is Emacs.
My text editing needs are modest. I use nano or micro for editing config files, and a graphical word processor for everything else. I have tinkered with both Vim and Emacs(I had a lecturer that wanted us to use Emacs on a programming course), but I didn't see enough of an advantage for me to persevere with them.
Been using Vim, mostly Neovim but here the passed..three months or so..I've used plain Vim and really got into extending it. Loved the lessons it taught me and especially with needing to learn how to properly compile on the terminal. Dabbled in Emacs for a bit off and on, but here the last month I've gotten into C and now C++ snd emacs for me is more suitable for the C languages and the workflow I'm after. The Emacs Development Environment is what really sold me on it; having IDE features without all the fiddling around with linkers and the true bloat that comes with modern software in that field. Lookimg foward to my journey with Emacs and C++!
that has a simple solution, doom emacs as a emacs-server then it will start faster than vim. and that also tells me you are running either mac or windows, because emacs in Linux is so damn fast, even with spacemacs starts fast.
@@lupuscanis4370 wow, you have some socializing issues don't you lol from your comments, I can tell you are probably not even good at coding, with all your big assumptions ;p
doesn't change the fundamentals though, emacs and vim are the literal opposites. vim is a text editor with an extension language slapped on top, emacs is a programming language with a text editor slapped on top
@@ricknaam5658 It's an arbitrary distinction. DT is such an Emacs fanboy, but even he doesn't use default Emacs because that is also just a text editor (and not a very good one). If you want all the fancy features, you have to install doom emacs or write thousands of lines of config yourself to turn emacs into something more than a text editor.
My biggest gripe with Emacs is the high usage of the control key. I am a total noob tho so I'm probably missing something. Vim is very intuitive and fast for me.
Thanks DT! I've been a windows coder for far too long, and I suppose for this side of the pond I'm relatively rare in that I do a lot of my windows coding in Notepad++ and even midnight commander! But, recently I've really been getting the urge to do more Open development and have been watching people like your good self and @Tsoding using Emacs like absolute champions ... and so I thank you for this intro, it gives me a lot more confidence, I think I can do this - and make the switch! Can't wait to see what more Magic is to be revealed ... and if noting else, a decent game of bubble 😀
Sold. I've been using vim for coding and logseq for taking notes(similar to notion, but opensource). I really like that you can do everything in one place. I'm gonna start using emacs right now.
I might be a noob but at first when I heard about Emacs I was thinking of that one apple computer aimed at the education market. This makes a lot more sense why people mention emacs on linux and not running linux on an E Mac lol. Pretty helpful video!
You should be in marketing - if opensource was about marketing. Dude, what a mind-blowing revelation-kind-of-thingy that was. I‘ll hit startpage quite hard on how to re-re-mess up my workflows again. Thanks!
Ahem ... Doom Emacs (and all the rest) **IS** GNU Emacs. It's just been configured to work a certain way. Just like my own GNU Emacs is still GNU Emacs even though it has had more than a decade of me messing with its configuration.
It seems to me like Emacs goes against the Unix Philosophy, trying to do everything at once. I think I prefer using NeoVim for editing and other tools for other things rather than squeezing everything into emacs. I can't deny that it is very cool though.
@@exnihilonihilfit6316 lol nope I am just finishing reading a book on Emacs and trying to use it on day to day editing but it's not muscle memory yet 🤪
I am used to be a vim user, but I dislike emacs because of the most commonly stated reason: too much stuff is built there... It reminds me vscode which can be anything with extensions, but emacs is anything even without extensions! I just get lost and defocused with such a variety of features that I did not want to install. But emacs is a great text editor anyway, I like the way it manages navigation, key bindings, commands and even clipboard. Kill-Ring is what I always wanted in a text editor since I always worry about what I've cut/copied and carrying around while coding. Learning is not bad. But why do I have to learn so much about my most common tools? When do I start working?
Well, vi, historically, was always included (in every distro I have worked with since the 90s and as far as I can tell, it's still generally included) to use in a rescue situation when you boot to single user mode to fix something, so (at least in my case), from an admin perspective, I made the investment in Vim. I guess it depends upon your use case. Heck, I even struggle with Nano nowadays, because the muscle memory is :wq!... I'm not knocking Emacs, I just never had a use case where there was a compelling reason to invest in learning it. To each their own. DT likes Emacs? Good on him and rock on Good Sir. I suppose an obligatory "get off mah lawn" is warranted here?
Well, since the end of 1990:th, there have been the package Tramp in Emacs. Which basically means that you can remove all editors in servers you are managing, as long as you have ssh access to the server. Just open the file /ssh:user@machine:file will login as user at machine and edit the file as it was open local. And if you open a shell from that buffer, you get a remote shell to the same user@machine. So no need to have the right editor installed in all servers, as you never move from your local machine where you have Emacs and your configuration.
@@AndersJackson vim can also edit remote files over ssh, that's a basic feature nowadays, heck even vscode and intellij and can do that natively. You can actually do it on any other editor, if you just mount sftp
@@Pumpkin-Link you don't understand. But as DT written, vim users usually don't understand Emacs. That is why they claim "vim can too". Of course you can ssh into the server and start the editor there. But emacs can open the file for you, without you manually ssh into the machine and start the editor in that machine. You could do that too, because Emacs can run graphically over SSH or run in text moder, like vim. And do MacOSX and MS Windows have support for sftp file system? Using sftp file system are not have support in the program, its in the OS you run the program from.
@@AndersJackson no, you're the one not getting it, vim itself has an ssh client built-in, its called netrw. You just need to pass hostname, path and credentials and vim will log you in and start editing remotely, as I said this is a pretty standard feature nowadays and intellij and vscode also come with ssh plugins natively
First time I used Emacs was at school back in 1986. The machine was a Pr1me 750 and the operating system was Primos. The same computer also had another updating system installed, called Primix, which was basically Unix, but it was written in Fortran so they weren't allowed to call it Unix. The school later, I think in 1988, replaced that computer with a physically much smaller one (fitting na relatively small room) running UNIX, both Berkeley and System V, and I remember the Emacs version was a little bit different, maybe a newer version or just pre-configured differently. Vi or maybe Vim was also installed, but since I was used to use Emacs I never learnt them. I didn't only write code in Emacs, I also played MUD and used IRC. Emacs made that so much more convenient. Much later I bought my first computer and it had Windows 98. It was a disappointment from day 1. I just wanted to use Unix like in the old days but it wasn't until the early 2000s that I even heard of Linux for the first time and I didn't install it until 2007. Since then I use Windows only at work, since that's what they gave me. But I never went back to Emacs. I just don't need it anymore, but my memories of it are very positive.
i really like the matrix metaphor because it was like that with me. i installed spacemacs (like a doom emacs it is ready-to-go version). from the get go i knew it was the best editor i used (and i used it all, some prehistoric stuff, than sublime, atom, vscode) but i used it it like a normal editor, only after 6+ months something clicked, and i realized emacs is more of a living organism than normal program, since then i'm in a huge rabithole. emacs really shines when you start to be intimate with it. the really big thing is how easy it is to change it, and i don't mean configs (but this is huge too). everything in emas is just a function operating on other functions. that means writing your own function (think small plugin) is as easy as writing a function in python. every other piece of software feels like a software written by someone else that you don't have impact on. emacs feels different.
Very polished version of that topic, well done! I remember my time of resistance, 15 years or so, where I was watching those show offs and my brain: "yeah, can do that in vim", "yeah, that as well...somehow", "that should also work", ..."could also work", "there is a plugin for this", "there should be a plugin", "there might be a plugin", "theoretically some insider could program that", "...could do that via remote controlling the buffer and some integration with that other tool" (...) but you invevitably, some day in your carrier if you are into "I want the fckng best tool for the jobs" you hit the wall and start giving it a *real* chance.
its confusing at first but so good once you have your own theme, key bindings and desired packages installed. if you come from VS code or some fancy ide it will seem basic but it grows on you
Org mode has an exporter that uses pandoc (ox-pandoc, I belive is it's name), but it doesn't use it by default. Each exporter uses emacs-lisp to generate the output (with intermediary output, like LaTeX). The pandoc exporter (ox-pandoc)is good, but it has some incompatibilities with org-mode format, because it uses Markdown as intermediary output. Even when you instruct it to not generate a Markdown document, it uses pandoc internal representation in memory, which is not 100% compatible with many aspects of org-mode. That's why I don't use it. But, as I said, org-mode DON'T use pandoc. It uses emacs-lisp.
3 года назад+2
It is true, I took me about 6 months deliberately trying to do all my editing and work in emacs until I got to the point that I made Emacs my default editor because my mucle memory was just doing things without thinking. Tricks like exiting Emacs with Ctrl-Z to get back to command prompt to do things I need there and running fg to get back to emacs environment. It is similar workflow that I was used in Windows/DOS with Norton Commander/Far Manager where I would press Ctrl-O to have full screen command line and back.
You might like to try M-x shell in Emacs. And use M-p and M-n to get previous commands in history. *edit* Also use C-x o to change active window and C-x b to change buffer in active window. Then you don't need to use C-z. But if using C-z gives you a nice workflow, then all power to you for that! *edit
Ctrl-Z and fg are native to *nix terminals. The same trick would work in pico. Both Vim and Emacs have various terminal modes that you can pop into, especially if what you're doing in the terminal has a direct bearing on what you're editing. There's something to be said for seeing it the edited file and the terminal in the same window.
2 года назад+1
It makes more sense to me to Ctrl-z from Emacs than pico or vim, because I use Emacs for large projects where I have multiple files open in multiple Emacs buffers. I would split the screen with Ctrl-x 3, Switch panes with Ctrl-x o, Open DireED mode with Ctrl-x f Enter. Since DirED acts like a an editor, I can mark everything, that matters to me, then copy/paste in to the text that I am editing, and so on. It could be that same is possible with Vim, but to be honest, after learning Emacs, I prefer Emacs when working with large projects.
@ Yes, agree. And C-z works equally well in GUI as in Terminal. In GUI you just do a C-x 5 3 and C-x 5 o and C-x 5 0 (that is C-x 5 is prefix for Frame (aka Windows in newer programs) as C-x is prefix for Windows (aka frame commands, like C-x 0, C-x 1, C-x 2, C-x 3, C-x o etc). It is consistent.
I think I used emacs a few times but when you go from ed->ex->vi and then vim it is strange to use something else and since I use vi to manipulate data and I like my code light I am happy with vi.
One side effect of using emacs for more and more things over the last couple years, is that I stopped using tiling window managers since emacs already internally tiles everything that I want to tile. I have also seen several other emacs users reach the same conclusion. I wonder what @DistroTube 's thoughts are on this issue, as he still clearly prefers a tiling wm alongside emacs.
I think the problem is that Emacs is very capable of tiling window management but it’s relatively hard to learn and configure well. There is a lot of nuance with window parameters, frame parameters, the display-buffer mechanism, buffer-local variables, hooks, etc... It’s a slog to get something nice, but at least when you get there, you’re an expert, so you can solve any issues that arise. The only thing that’s missing IMO is nice window-specific tabs, as I am not a fan of stock tab-line functionality. I have developed a package that brings them closer to what you’d typically see in other tabbed tiling window applications, but there are still some minor bugs to shake out before I contribute to MELPA. Despite its flaws, I have been daily-driving my hack for 4-ish months and now I can’t imagine not using it. Really want to get it out there this year.
I still don't get it tbh, there's a lot of other programs out there that could do what emacs has to offer but better, so why use it? Vim and Noevim offers vim motions which is the most optimised way of navigating code without the use of a mouse, it is one of the main reasons why most people use them, it also offers various plugins that can do what emacs has to offer as well, so what advantage does it truly have? I kinda want to see the coding workflow of emacs to see if it's better than the coding workflow of vim/Neovim. If I can code better and faster in emacs compared to Neovim, then I'll gladly migrate to emacs.
I don't hate emacs, it's just redundant because I already have an operating system to run apps inside of. In 2021 apps can talk to each other through the OS and don't need to be manually integrated by a team of developers the way emacs plugins are. Vim, on the other hand, I _do_ hate. It's so unbelievably obtuse. So when I need to edit text files in a terminal, I use nano, because it's easy to use unlike Vim, and it hasn't suffered from decades of requirements-creep unlike emacs.
I use vim just because I don't do much proper programming, I mainly use it as a text editor for config files and minor scripting, and vi or vim is available on all the headless servers that I ssh into. The learning curves are a big factor in my decision, I don't even bother with plug-ins or even much custom config. (I would need to config every machine.)
1) The larning curve are not worse then vim. Not if you just want to use it out of the box. 2) You don't need to install Emacs on all machines if you just want to edit files and run some scripts/commands. Use TRAMP mode, and you can load and edit the file locally on your macihe. And start a shell, and you will start that from the same place the file is. Just open with /ssh:user@machine:file will open file on machine as user on your machine. And when you save it, it will be stored back. And if you open the shell M-x shell, that will open through ssh. So, configure your local machines Emacs as much as you want, you will have that configuration when you edit the files on other machines, and you can uninstall the editor on that machin, it you want to. As long as you have ssh access and a shell there.
@@AndersJackson Totally out of touch aren't you? Any learning curve is more than zero learning curve. I already know enough VIM. I don't do all admin work from a single personalized workstation.
I had two attempts to switch to emacs. I was enough for 2 months. For me, emacs is a pain in the wrists due to keyboard shortcuts (even with evilmode). I also think emacs is an attempt to make a Swiss knife out of a text editor. Only vim gives me peace and harmony.
hackers stole 10gb of proprietary elisp code. Luckily it was the end of the file and only the closing parentheses were stolen
Ahaha
Classic
What! They can know how many functions/data/lists are in the file! NOOOOOOOOOOO!
time for an amazon ebook of emacs jokes
@@TheSulross I would buy that. But not a vim book about that. Yes, I use Emacs for most things.
@@TheSulross That's actually more of a lisp joke. They all boil down to "haha, look at the parentheses."
Finally an excellent explanation of what emacs is that allows me to make the aducated decision of staying with vim.
*educated
@@r0b0t1cRabb1t Lol, typo.
Status: Won't fix
Reason: Breaks comments context
@@danieldantur2719 Ship It!
Yes, why we have to make it more complicated. Make it quick and simple with vim (neo im)
dude really.. i'm a vim user too and after i saw this video, my relation with vim got stronger.
just saying. you never see dt and luke smith in the same room.
But they are in the same boomer backyard.
Luke Smith !
This is the first explanation of the difference between vim and emacs I’ve ever seen that has actually helped me understand why I would want to use one over the other. Didn’t they have an old saying like, “Vim is an editor, emacs is an operating system.”
"Lacking only a decent editor" was the full joke, i think
He's basically comparing vim without plugins to emacs with plugins. It's an unfair comparison. Vim has plenty of cool plugins as well. It is more limited though because elisp is more powerful than vimscript (Neovim has Lua now though) and vim is not GUI, so it can't show images and stuff. Vim is much more fast and lightweight though, is a much better editor by default (not counting emacs evil mode here obviously), and runs better in a terminal. There's a reason why DT uses doom emacs and not default emacs. Default emacs sucks and you need to write a loooong config file to turn it into something like doom emacs :)
@@maxarendorff6521 He actually mentioned that Emacs has a steep learning curve. Doom Emacs eases the process. One can learn vim in a week. But to really understand the power of emacs it takes months. But once you get there, emacs will feel much more powerful than vim.
@@SenthilBabuji I tried Emacs, but switched back to Neovim. It's not for me. Too slow, doesn't run well in a terminal, huge pain to configure...
@@maxarendorff6521 no, it is a fair comparing vim and Emacs. (And you couldn't bother learning Emacs, so just say that and don't make up excuses like "too slow", or doesn't run well in terminal or "pain to configure". Just admit, you are not the man up for the job. ;-D )
Because one argument of using vim is that it are in all Linux server. But then you need to copy the configuration between your servers.
You can edit files on remote servers with Emacs without copy configuration to those servers, nor install Emacs. Just open the file /ssh:user@server:file will use ssh to open the file on server, as it was local. And with M-x shell you got a shell on that machine.
Vimscript is less powerful, because you are not changing vim. When you write elisp extensions, you are actually changing Emacs. So no, vimscript isn't even comparable.
That vim is faster and mire leightweight are debatable, so are to claim it is better by default. And no, it doesn't run better in terminal, actually there are no major difference between the running in terminal.
Default Emacs IS the same Emacs as Doom Emacs, there would not be a Doom Emacs, if there was not a default Emacs.
Just acknowledge, you are not the man to run Emacs, or configure Emacs to suit your workflow. You are not just up for the task, so you make lots of excuses. ;-)
(And yes, Doom Emacs and Spacemacs are bloated ;-) ). Just go to System Crafter channel and read up on Emacs, I know you can learn Emacs too, if you want to.
What are the benefits of Emacs over Vim?
*Is this some kind of a overcomplicated people's thing I'm too of a Nano user to understand?*
Little update: I started learning really basic stuff about Vim and watching DT's _kind of_ obsession over Doom Emacs and ORG mode made me go back to graphical IDEs lmao
no.
I think the best thing you can do is using whatever application best suits your workflow irrespective of who says what.
Give micro a try too.
Tbh if you use nano it will be trivial for you to start using Vim to do literally everything that nano does. They're both CLIs, and the only thing you need to know is how to get into insert mode and out back to normal mode - which is as simple as hitting i then ESC - and how to save :w, close :q or ZQ, and save and close :wq or ZZ. After that it's basically the same as nano, but you'll realise there is no glass ceiling and you can use it in more and more advanced ways. I use Vim, so I don't know if you can jump into emacs with similar ease - I'll leave that for others to comment.
Master nano user here, who needs vim or eMacs those editors have so many features you’ll probably never use half of them … ill choose simplicity and elegance over those two.
Emacs is more of an environment vs vim is an editor.
Exactly !
When you just want to have an editor that deels well with your terminal, you don't need more than vim
Right! „Emacs is a great operating system, lacking only a decent editor.“ is the saying.
My environment is GNU/Linux, the operating system.
@@thingsiplay in that case you should install an editor asap ;).
@@vesder819 It comes pre-installed with many editor tools.
I'm an Emacs user for more than 7 years now. Before that I used Vim for about 3 years. However, it's not Vim that I switched from to Emacs. It was actually Eclipse (I don't think it's even that relevant nowadays in the VSCode era). I used Eclipse as an IDE and Vim as an editor. I still use Vim for elementary editing on remote machines. And more or less that's the only thing that frustrates me in the Emacs world; tramp mode is slow.
Thanks finally somebody big articulate this correctly - THIS IS AN ELISP ENTERPRETER
You forget to add GUI - i.e. It's a GUI LISP INTERPRETER.
it's Interpreter
@@grapesalt Yes but it is GUI? not CLI interpreter. VIM is CLI EDITOR. For me is important - VIM is not Graphical Editor/ I mean if in linux you;ll have error on X server (x.org) emacs will not start.
@Robert Pilgrim My point is - initially Emacs is GUI application? and Vim is cli editor. I'm not trying to convince that smth is better or not. If you install Emacs you have a Gui application.
@@mikesa7719 I believe emacs was written to run in the terminal initially. GUI emacs was developed much later. It is a software written in the 80s, GUI was not the primary environment for hackers.
I don't understand the emacs vs. vim war. Such a waste of energy. The most important thing is that they aren't using garbage from microsoft.
echos from the great neckbeard wars of the early 90's
I was using emacs before vim, but the main reason I switched to vim, is emacs is just slow sometimes. I mean painfully slow, and it's usually really easy for plugins to hang it or something. Vim is just fast, it either works or it doesn't, but it's never slow.
Thats because you generally want to run it as a daemon
Vim can be slow, too. I switched to Emacs 5 years ago because Vim was starting and running agonizingly slowly with all the plugins I was using and due to the platform I was running on (Cygwin). Running Emacs in server mode was actually faster and gave me everything I wanted. Today, my Emacs config is over 10,000 lines, I use hundreds of packages, and I never experience performance issues.
smart guy ... the fan-boys will explain that you can always find and fix the slowdown, but why spend your time doing that ? the vim system - once you practice it - i cannot live without it. i use Emacs with evil-mode, but Emacs is more a pass-time than a productive entity. if you like to write elisp, than it has advantages - only than.
I use Emacs with evil-mode which I think can combine both pros. And the most important reason that I use Emacs is I really like Lisp, It’s elegant and powerful.
well said Mob!
If you would show this comment to a Victorian child in the Industrial Revolution they would’ve spontaneosuly combusted into thin-air
I actually don't like lisp all that much. Between having parentheses everywhere and having everything in infix notations it is very hard to read.
I get that in lisp everything is a function call hence the syntax is perfectly logical, but I don't think it's doing itself any favors in terms of readability.
I still do love Emacs. It's great to be able to do everything within one customizable environment using the same bindings everywhere, I just wish it was built on a an easier language to use.
you got it. god bless you. anyone who does not want to learn and write elisp will find zero real advantages in Emacs over better ide's.
I think you explained perfectly why I don't like emacs. If emacs is an environment in which I can do anything....why not just do that thing in Linux? Why add another layer of bloat on top of it?
Not to be that guy but I'm gonna be that guy. Its because Linux is just the kernel. Emacs can run on top of Linux kernel to be a desktop env, and pretty much everything else
@@KManAbout hey whatever works best for you is the best solution :)
@@bardus_hobus truer words have hardly been said.
@@KManAbout out of curiosity, have you used exwm? I want to know if it's practical to use emacs to that extreme, since if I am to use it I'd rather have it be my wm without any overhead
@@opposite342 I haven't used exwm, I know people who have and appreciate it though. I can't say I would recommend it, mostly because I am a stumpwm and commonlisp fan hhahha.
That quote at the bottom "I showed you my source code, pls respond" I love it.
I was an emacs user for 5 years. But changed to vim and separate tools a few years ago. I tried to get back into emacs last year, but found I really couldn’t anymore.
I think it should be left to those who have complete freedom to setup things how they like otherwise the separate programs are just too hard to keep up with.
why ?, Is it because you loves vim more than emacs?
@@noyalmartin9729 in the end I found that I like simple tools and the flexibility they provide better than complex ones. After having used separate tools for some time, I can’t seem to wrap my head around all those integrated stuff in emacs anymore. It feels to monolithic to me. None of the tools in emacs were better than the separate ones. And org mode is so much its own ecosystem that it doesn’t integrate well with anything outside emacs. Living in emacs and org mode is all very well if you live behind your computer 24/7 and don’t use any other devices.
@@mke7605 helpful, thanks for sharing
@@mke7605 also, emacs doesnt have a decent terminal emulator, which i would really miss considering i have a shortcut for popping a terminal in neovim
I used to use emacs for a few years. I think the issue I have with it is that I always always messing around with my configuration and not getting work done. As I've gotten older, I realise I much less stressed with minimal tools. Now I use neovim. I've got a focused configuration with just the right number of plugins and I don't have to mess with it. Emacs feels like I'm using VSCode or something. Just so much going on everywhere. It's not what I want. I just want a good text editor that can I move fast in. That's it. tmux and neovim. That's all I need.
@@darthvader1191so the fix for emacs is actually called evil.
@@darthvader1191 What would I bother with a Neovim simulcrum that runs slower if I can just use Neovim? Also, not a skill issue. I used it for three years in evil mode.
I love Org Mode as a DM. World building, campaign notes, character sheets. The uses of Org are endless. I have installed Emacs on any OS supported because of how good Org is.
Interesting. I used emacs for some years and loved the org-mode - as a task manager, as a PKM, as a journal, as an environment for literate programming. At first I used pain emacs, later on I fiddled around with evil-mode and spacemacs - and finally I ended up in doom.
Then I asked myself why do I need that obstruction? With the help of the command line I can almost do everything I want. Thus I switched to vim and since approx two years are quite happy with kakoune.
org-mode in terminal? how?
we come back to the linux commandline. that is the mother and as everyone says ... the advantage is scripting. elisp is hardly an improvement over basic linux utilities.
I think the question is vim + other command line tools vs emacs. Like there are terminal basted productivity apps that are not part of vim like taskwarrior while org mode is part of emacs
use the tool only if you need it
I won't understand it for 6 months? Sounds very appealing.
I'm kind of interested in Emacs, however I haven't learnt it because I'm not sure it would be worth it for my needs. Vim serves my purposes well enough, and sometimes the learning curve is not proportional to the advantages it gives you. It may be something I'll look into at some point, but for the moment, there's other things that I will be better served by sinking my time into.
One one hand that could very possibly be true, OTOH by that logic you probably shouldn't have learned vim in the first place.
@@jaredsmith5826 I disagree. I saw some videos that showed the advantages of Vim over a standard text editor, and I thought that it would be worth learning it. Furthermore, to learn the basics of Vim takes half an hour or so, maybe even less. From there, if you need to do something but don't know how, a quick Google search is really all you need to do. From everything that I have been told about Emacs, it takes a lot longer to get as proficient with it, and the stuff that can be done beyond what Vim can do just isn't what I require.
I have one doubt, can we do global searches in vim for all the files in the directory? Like how we use ctrl+shift+F in VScode.
@@JRCSalter if you only want to edit within Emacs, you can get going with the same time limit. Nothing strange there, and you don't need to handle the multi mode thing.
And as with vim, everything from there is just a google away.
So if you call that to be proficent in Emacs, then they are about the same. The different thing is that to contionu from there, vim has limits, serious limits. You have your set of settings, that is it. You have vimscript, but that is just what vim allows you to use through the API. You can't really change vim.
Emacs your configuration is basically you rebuildning Emacs to suit you, you are making the program yours. All configuration you do, are actually changing the program. All the elisp code will be part of Emacs, no way of knowing that your additions are yours or coming from the developers of Emacs, because Emacs is built in elisp.
So there are the most fundamental difference between vim and Emacs. There are no limits what you can change, compared to vim.
That is why you have several adaptions of key vi key bindings to Emacs, and I have seen none for Vim. Because that isn't part of the API you are allowed to use. And no, I wouldn't recommend vim to new users, unless they are not able to learn the Emacs key bindings, which are as natural as vim. But in another plan, as they are not limited to the keyboard layout, they are "logical" in another way. You can switch keyboard layout and still be able to use Emacs as before. Not so much in vim, as it is based on keyboard layout (like the h, j, k ,l in one row to move cursor).
@@JRCSalter I'm an avid Emacs user, but I will say, it can be overwhelming to get into if you're not interested in having an essentially infinite feature set. If the necessary feature set is covered by Vim, there's no reason you need to learn Emacs, unless you want to learn it for fun.
For me, Org mode, Calc, and Magit are all irreplaceable to me. They looked amazing. That's why I personally switched.
I started out using vim, and I really love the modal editing and memorable shortcuts. Whenever I need to use another editor/IDE, the first thing I do is install vim keybindings. At some point, I had to use Emacs for an AI class at university, and, as usually, I installed vim keybindings and fell in love. So now, I use Emacs with vim keybindings, and it's amazing. I'm currently in the process of moving all my todos and schedules into org-mode and org-roam and it's very promising.
In conclusion, there really is no reason to chose between vim and Emacs. You can have the best of both. The only time I still use vi(m) is when I have to edit a file on a remote server because stock Emacs is pretty unusable to me if its even installed.
Im glad I found this comment after seeing the one with almost 800 likes of people just hating on Emacs.
If everything said in the video is true, it just makes sense to figure out how to get vim binding to work with Emacs so you can get the best of both worlds.
Seriously I found this comment very insightful.
I've been "using" emacs for about 2 months now. I say "using" because I'm still learning. I think it escapes definition because it is developed in multiple directions: as a platform for running elisp (write your scripts in elisp, not bash), as an elisp IDE (debug code, inspect values), as a UI framework (it is much more developed in how it interprets keys than vim), and as a text editor (ie, it has a rich elisp API for editing text); it can even be your tmux and your window manager (through EXWM).
If you just want to edit text with no fuss, vim is better, but if you're like me and liked all the plugins and extra functionality vim acquired recently, I advise you to not waste time and start learning emacs. You're writing all that Lua to get vim to be just perfect, but eventually you'll hit ceilings. Emacs has a taller ceiling, you won't be as limited, but you need to invest a lot of time into it to pay off.
Hey DT. It was your channel that a few years back convinced me to take the plunge and learn VIM. I love VIM now and just don't want to change and learn something new all over again. Even with using VIM bindings in Emacs. Just don't care. My Linux setups are how I like them and my VIM is set up with a dozen plugins and tweaked to IMO PERFECTION. I think emacs is interesting and the thought of using it as the entire window manager and os seems like it would be fun to experiment with but I just don't want to take the time. There is just other fun to be had.
I don't need to get Emacs, there is no function that it can fill that is missing from my workflow or that isn't being done well enough by existing tools. I am sure to those that use it, it's a very good application, but I will still give it a pass.
I agree with you. I also think that Emacs doesn't actually follow the Unix philosophy.
@@teunissenstefanYeah, it doesn't seem quite like it... It feels too monolithic, it is trying to be so many things at once... Vim follows better the unix philosophy, you have a simple shell of an text editor and you simply extend it with the things you need, it does not come pre-bloated for you, you use what you need
I've used many different editors on and off over the last decade or so. I'm a programmer and have worked on many solo projects, within teams, in many different contexts, many different languages, with many different goals. I've used everything you can think of for years at a time. Vim, Emacs, even VS Code for a few years, Kakoune editor... I "editor" hop even more than I window manager hop. Emacs is great, and of the one's I listed, it's the most powerful by far. But my issue with it is that it can get slow. I can't easily justify that or have patience for that when there are other tools in my environment and I'm already using a tiling window manager. I don't need my git client to be in the same window as my editor, because my entire desktop is my workspace. Emacs is amazing, but the slowness, even just a little bit of slowness, kills it for me.
Then look at Emacs 28, which have JIT compilation to native code.
Me too. Even neovim is slow sometimes especially with async plugins and LSPs. Somehow Helix didn't seem to have that problem for me but it's a bit less configurable and I miss easy motions and other plugins.
"emacs is a fine operating system in need of a good editor"
@@wafficuslives6701 it's just a famous quote I find amusing
I don't use either day to day and live most of the time in Sublime Text.
Edited for reduced grumpiness,with apologies
Which could prolly be written in elisp. The gift that keeps on giving.... ah, Emacs.
It's a great quote because it must have been said by somebody who really understands emacs.
Which is why I use spacemacs with vim key bindings.
Evil mode comes close!
Both are masterpiece, it's your freedom to choose one.
I chose mode
The only based answer in this cringe comment thread
Here are ways to accomplish some of those things in vim.
1. You can run any line of code from any filetype in vim as shown in 11:40. For example to evaluate the expression '3 * 4 + 12', type :.!bc
The colon enters ex mode
The dot specifies the current line
The exclamation sends a command to the terminal
bc is a terminal calculator.
You're not limited to sending to the calculator. You can send it to any arbitrary program like python or ruby or elisp.
You can also get this kind of evaluation by using LSP and autocompletion. The autocompletion will result in the expression "3 * 4 + 12 = 24"
2. Autoformatting of tables is provided by the plugin: vim-table-mode
3. You can export with pandoc using vim-pandoc. Admittedly, you have to remember more of the pandoc commands or set up commands to export per filetype in your configuration manually.
4. Vim also well-documented. Type :h to initiate help
5. Whichkey is also available for vim. folke/which-key.nvim, liuchengxu/vim-which-key
You can also see all mappings that have been set with ':verbose map',
:nmap for normal mode mappings
:vmap for visual mode mappings
:imap for insert mode mappings
6. Magit is also available as a plugin. jreybert/vimagit However, I prefer tpope/vim-fugitive.
I don't think the following things are possible in vim. (or at least I don't know how)
1. The tangle feature of emacs
2. Multiple different fonts in a single file
3. Image preview in vim.
I tried Spacemacs for a few years but.. though org mode was cool, other stuff like web browsing or email work kind of like your example in this video opening a site. The consistency of a pure lisp environment is great but in the end it is a text editor and coming back to Vim brought me a great feeling of being back home 🤷♂️
this is my last comment here ... by accident or no, the vi system - extended with vim is close to an AI created scheme for keyboard manipulation of text. once you learn it you hate using the mouse, though i tolerate the mouse for everything else.
"Emacs is an emacs lisp interpreter." This flipped a switch in my head. I realized that emacs is an emacs lisp interpreter initially configured as a text editor. I also realized after watching another Emacs video that the Vim editing model is more coherent at the fundamental editing level. These two combined, i.e. Emacs with Evil mode makes a ton of sense to me. Vim has been helpful in providing a coherent keyboard based editing system while emacs provides all the higher order features that a crucial to any workflow beyond editing. Thank you for your clarifying presentation.
This is the best pitch for Emacs I've seen so far.
Whenever contemplating on whether or not I should take a leap into Emacs and see the steep learning curve, I turn away not because of fear. I don't dive through because it usually fails my internal cost-benefit analysis. If I don't really understand what I can get out of it, why would I bother to take the time to learn it?
same. I also go like 'vim does a lot for me, and it runs on the terminal which is very close to the shell which means I have access to all my scripts and other powerful apps, also being lightning fast at the same time' and I skip on emacs.
Same. Nowadays many projects are excellent, but without a good pitch and good documentation it's going to be hard to get/maintain traction. "What's the value proposition of my/our project and how should we communicate that in a video?" should be a key question to be asked in my opinion.
there is likely no "real benefit" if you are already invested in vim.
certainly the jump from something like nano to either vim or emacs is not going to be found from going from vim to emacs.
i will however say that there is something to the gnu philosophy that people living in the linux world are generally blind to and emacs is the only real way to learn it. i have spent years in vim and went down the configuring it, etc., rabbit hole and felt like it was perfect. on a whim a year or so ago I spent about 5 months (while i was doing some pretty low urgency web dev) in emacs (vanilla) and it was pretty insightful.
that being said, my take basically was that both vim and emacs have the whole editing thing wrong for ideological reasons and have since moved to acme (plan9)
@@peacemekka M-x shell give you access to all your scripts from Emacs too. But you probably do way more stuff from Emacs anyway.
@@viardent8823 acme, it that like Wily, an Linux implementation of a Gui editor? Wily is nice, and you build it around script you run from Wily.
Neovim is getting there, we already have magit on neovim and some prototypes on org mode
DT: _What Are The Benefits Of Emacs Over Vim?_
Unaboomer: _What Are The Benefits Of Vim Over Everything?_
What are the benefits of emacs over vim? - People don't understand emacs and don't know all the keybindings, it's too hard.
Ok.jpg
Use Emacs with Evil Mode, give the Operating System the Editor it deserves.
One of the reasons why I stick with vim is that it is just a text editor that runs on the terminal. This allows me to quickly open files and write to them while I am moving things around in my terminal. If I am coding, I prefer using visual studio or vs code.
And I use Emacs for editing files, both on my machine and on remote machines. I use it for editing programs and manage them with Magit and with eglot so I can use lsp-programs to refactor programs easier. I also use it to moving things around in the file system. And when I occasional want to write things in the command prompt, I use Emacs for that to. I has been using Emacs to NetNews and mail. I thinking of going back to reading mail in Emacs too. I also use it for literal programming in Org-mode and Babel. I also write reports and papers in Emacs using LaTeX and Org-mode (thinking of moving that over to Org-mode). And yes, if I would like to use IRC I can use Emacs for that too. And extensions are added with Emacs package manager, so it is easy to download new versions of those, and also configure them in the same place. Quite neat, actually. I am thinking of installing a web browser that show up in a Emacs buffer, but I have not tried that yet.
So yes, I can do what you do, but in Emacs, and I can select to use other programs, like the programs you use, when I like.
While regular vim or vscode users get excited when they use their editors as an IDE, emacs users get excited when they use their editor as an entire operating system.
Or at least as a Tilled Window manager. 🙂
Yeah, because when I'm editing a project in six different windows on 6 different servers in six different languages in vim with everything just autoformatting perfectly, it really sucks that I can't play tetris right then and there. ;)
my friend, it is an illness. ... i need a therapist.
I was skeptical at first. But ever since using Doom Emacs, I actually look up extensions to Doom Emacs rather than looking up independent terminal applications.
Besides, I still have Doom Emacs and neovim installed in parallel, as I use nnn file browser, and vim is vital to the bulk renaming feature.
I don't endorse editor wars. Both are brilliant editors in their own right. Use them both, love them both.
You could bulk rename in a dired buffer too. Am I missing something. Just curious why vim is better in bulk renaming.
@@SenthilBabuji Yes, I assume you can. I haven't looked deeply into dired yet. I'm pretty comfortable using nnn, a terminal-based file manager written in C. And that one uses vim for its bulk rename feature.
@@marioschroers7318 if you open a dired window, you can make it writable, so any change you make in a file name i the buffer will be done on the files. And if you do use the multi cursor commands, you can easy make parallell edition for masive renaming in dired. Look up EmacsRock channel, where the author of that package are and has some demonstrations on how it works.
Woah! You just blew my mind with all of that git stuff! I'm going to have to try doing my git stuff in emacs now! Totally cool!
Good luck, man. Magit is really good. You can do everything the git command can do, only this time with single keystrokes. It's the fastest way to use git. Also, it's hands-down the fastest way to commit only parts of changes. Tab-open the changed file to see the diff, mark the part of the diff you want to stage and press 's' to stage. Done.
Also, forget about what people say about having to live in emacs. It's not required. It all depends on your needs. Right now I myself am perfectly happy using emacs just for org mode and magit and coding in VSCode.
That being said, I did spend quite some time learning Emacs and getting it configured the way I wanted. There's no way around that. But it will pay dividends in the end.
I went back to Neovim after using Emacs for a while. It is powerful, but it is a pain trying to force Emacs into being something it is not, like with Evil, but without Evil, it is unusable. Neovim ist fast and lightweight, easier to configure and works better in a terminal, which is my preferred way of doing things. And now with lua integration, Neovim is more powerful than ever. Org is cool, but I didn't really use most of it's advanced features so pandoc+markdown+neovim works really well for me.
I was thinking about start learning Emacs for some time, but I was reluctant because I know nothing about lisp/elisp and I'm fairly new to both Linux and Programming, but after this video, I think I'll learn how to use Emacs and get used to list/elisp. Dude, I really love this channel, keep up the good work DT, I still have a lot to learn from you!!
Check out System Crafters, as there are lots of videos about setting up Emacs for different tasks.
All hail Saint IGNUcius, of the Church of Emacs!
No, I don't like RMS.
@@vorrnth8734 then stop using linux.
@@rizkyadiyanto7922 I can't even though I indeed prefer FreeBSD.
*pulls the alpine linux copypasta*
@@aldotovar9231 I use Alpine with GNU coreutils :)
That's okay. As a Nano user, i understand neither of those two. ;-)
The virgin Emacs and vim users vs the Chad nano user
You should totally do an emacs beginners series. Like configuring it completely from scratch and such.
Try the System Crafters Chanel if you want to start configure Emacs from scratch.
He did a livestream where he configured Emacs from scratch. The video is called "Leaving Doom Emacs For GNU Emacs? - DT Live!" :)
I've never been so deterred from using emacs... Thanks. 👍
💯🤣
@@saravananm2280 For what it's worth, I now use emacs for almost everything. The video was a bad introduction to what is otherwise an awesome piece of software for certain types of people.
Give emacs a try if you're interested.
I just need a text editor.
I don't code. I don't need an IDE.
I don't even care what language is anything written in.
I don't need my text editor to run packages. Nor to run any kind of code.
I need a text editor.
One that has some advanced text manipulation features, because I'll use it to edit text! I don't care if emacs can do everything I can dream of. I just need to edit text and do it efficiently and then close it, and continue with my job and my life.
So I use vim.
Thanks anyway, now I know I don't ever need to worry if I would be better using emacs, now I know I won't.
Mee toooo
You might as well keep drooling and use Gedit. There's no hope for you.
Came here to just read the comments ...
Getting back to NeoVim again with more confidence
_Oh I forgot to show tetris in Emacs!_
You got me there, DT
I think the real question is Emacs vs Terminal Emulators. The thing is... I don't need a full operating system installed on top of my operating system. I write code, and Vim allows me to do that efficiently and its awesome. I'm sure Emacs is awesome too... but is i really worth the learning curve? I doubt it for my needs. I haven't even reached the full depth of what vim can do after 6 years of using it, i don't think I need something deeper.
Yes, it is worth the learning curve. Is Emacs needed for what you do, I don't know. But it will defenitly add and change what you do on your computer and in your workflow.
And of course, you can do the same thing in Emacs, as it has access to several terminal emulators in Emacs, unless you want to run Emacs or Vim in them... ;-)
I've used VIM for 18 years now and I honestly still don't get Emacs. I have long ago come to the conclusion that life is simply to short to spend six months learning something with the complexity of an operating system to edit a text file. Einstein said that nothing is so complex that it cannot be explained simply but that was long before Emacs.
It took me 20 seconds to learn how to edit anything text file in emacs. Not sure where you went wrong 18 years ago...
I use pure Emacs in terminal for about a year and I am super productive. I would say Emacs shines in it's flexibility and customizability. You basically write your own ide on base of Emacs. Very convenient. I use use-package and daemon mode to start it quickly. I use it for c++/go/python/rust/shell/clojure/lisp programming, you name it. Most of all I like it's buffer management and key bindings. I should admit learning Emacs is hard but absolutely worth it! One down side is that Emacs is not pre installed on most Linux distros, so I always compile it from sources and make install the latest version
It doesn't come installed on every machine isn't a real problem, as long as you have it installed on your machine. Just use TRAMP and you can edit files in your Emacs in any machine you have ssh access to.
Totally agree, atleast few months are needed to get some idea of what emacs can potentially do.
Vim bigot here! I am 15 years fluent in vim, yet wouldn't call me fully learned. The help text for vim is over 200k lines.
I used emacs at university , and wrangled my fingers with all Meta-this/Meta-that. There are some great git plugins for vim that does the same thing as you did in emacs (I use the terminal git commands anyway).
If you mostly _edit_ code, I think vim is better (if you learn vim fluent). If you _write_ text, both would probably work.
Anyway, I must say the table autoformatting you show is a big thumbs up. Good for you that you like emacs. Emacs is probably very competent for what it aims to be.
There is actually a vim plugin called table mode or something. Have been using that for a while, mostly for markdown.
I gave emacs and vim a fair clean-slate when I had to choose a new "text"(source code) editor. I fell in love with vim's style before I got out of syntax-highlighting. The very important thing is modal vs chording, I think. EMACS rocks, but so does VIM.
I can't stand the modal thing in vim. So that is why I can't stand working in vim. And I have it configured to work well for me, nothing I could come close to in vim. Because when you edit Emacs configuration, you are actually changing Emacs. When you configure vim, you change some configurations and you add some scripts that can only use the allowed API. You don't change vim.
This is a bit strange, when I think about it. Because I can't stand KDE, because of all the configuration you can, and have to, do to make it work.
I'm trying to get into Doom Emacs, but man is it hard to get a grip on which packages are installed by default, which ones need additional configuration (Projectile does, for instance) and a short list of the basic things you can do. Then there's figuring out the millions of keybindings, but which-key is a big help on that front.
Recommend System Crafters if you want to know more about what to do to configure Emacs and the work flow.
Are building some configure files for Vanilla Emacs right now (vanilla as in plain default), which is nice if you don't want the overhead from Doom Emacs.
It all ends up overly complicated and feels bloated to me, I know it technically isn't,but I still rather use my shell to do the integrations and automations and have a light and snappy editor on vim, but if I didn't have that workflow, Emacs would be a cool centralised option.
I've been watching the channel for almost 3 months. Most of the time I keep DT's video open as a background sound while working. Now I even watch it on bed before sleeping. My girlfriend started to question me: Is this bald man that interesting? Guys, how should I response?
Yes, yes he is.
Yes
Don't respond, she is a hallucination.
If you respond, you'll make the illness stronger.
And in case you're wondering how could I be sure that your "girlfriend" is a hallucination: um, you're on a video dealing with emacs vs. vim...
I think that neovim is heading in the emacs direction with lua rather than e-lisp. There are also some aspects of the design of neovim that are better than emacs in that there are aspects of emacs that are hacks ontop of hacks. Both are great but for the moment I am looking forward to the advances in neovim more than emacs. I spent a chunk of time in emacs before returning to neovim.
Hack upon hack? Don't agree, except for my own configuration.
And when you set up your configuration and hack your setup, you actually make that part of Emacs, you are actually changing Emacs. vim and vimscript are just you talking to the vim program. You are not allowed to do anything there are not a API for.
That is the most fundamental different between Emacs and Vim.
@@AndersJackson Genuinely curius, what's something I couldn't do in vim because there's no API for it?
@@noname-dt6sv write an email client in vim. Write an web browser in vim. Write Tramp in vim, write Org-mode in vim. etc etc etc.
That is not how vim works, so no, you can't.
Emacs is designed to be expandable, by execute code in the program, to have a REPL in it from the beginning. Where you by execute code change the program you are running. That is is so good documented so it actually makes ordinary non programmers able to write non trivial expansions to Emacs. By try out the expansion while they write it.
Yes, vim have a nice set of key bindings, IF you can manage the multiple mode settings, which is origin because of older editors run on computers that didn't had the power to run in "video mode". That is why you have the different modes in vim, by accident it was quite ok.
Yes you could retrofit most of the extensions into vim, but that is just hacks made after they have been developed in other tools, like in Emacs.
Sorry, but that is what vim are. Some nice key bindings on on rather simple editor. Compared to Emacs.
Yes, that might be the tool for you, and then I am happy for you. But don't try to make vim into something it clearly isn't because you want stuff that are in Emacs, but not in vim.
@@noname-dt6sv yes, you probably will claim that vim also have an expansion language, or several. But you know, that is just an after thought, and not as good as the Lisp repl that is Emacs.
Neovim with some plugins/env may already offer it's alternatives though:
1) orgmode? -> nvim-orgmode + plugins for appearance & code evaluation
2) magit? -> vim-fugitive or similar plugins
3) images? -> nvim + kitty graphics protocol + hologram.nvim, etc
4) web browser? -> nvim + kitty graphics protocol + awrit
5) remote session? -> nvim with scp
6) which key? -> which-key.nvim
7) search anything? -> telescope with its plugins
I am a programmer and I use emacs for long time it is quite good system just one thing are still missing, yes it is a good text editor!
My text editing needs are modest. I use nano or micro for editing config files, and a graphical word processor for everything else. I have tinkered with both Vim and Emacs(I had a lecturer that wanted us to use Emacs on a programming course), but I didn't see enough of an advantage for me to persevere with them.
Been using Vim, mostly Neovim but here the passed..three months or so..I've used plain Vim and really got into extending it. Loved the lessons it taught me and especially with needing to learn how to properly compile on the terminal.
Dabbled in Emacs for a bit off and on, but here the last month I've gotten into C and now C++ snd emacs for me is more suitable for the C languages and the workflow I'm after. The Emacs Development Environment is what really sold me on it; having IDE features without all the fiddling around with linkers and the true bloat that comes with modern software in that field. Lookimg foward to my journey with Emacs and C++!
I love both, but the only reason I use vim is the slow startup time if emacs stresses me to death.
that has a simple solution, doom emacs as a emacs-server then it will start faster than vim.
and that also tells me you are running either mac or windows, because emacs in Linux is so damn fast, even with spacemacs starts fast.
@@lupuscanis4370 oh cool! I havnt used anything but linux the past 10 years though. Maybe because I had a lot of configuration on emacs.
@@12kenbutsuri and I have used linux for 22 years, so what.
@@lupuscanis4370 wow, you have some socializing issues don't you lol from your comments, I can tell you are probably not even good at coding, with all your big assumptions ;p
@@12kenbutsuri well you are so slow or why would you assume I'm here to socialize, I'm using a disposable account, seriously.
Neovim with lua support now probably opens up much more options
doesn't change the fundamentals though, emacs and vim are the literal opposites. vim is a text editor with an extension language slapped on top, emacs is a programming language with a text editor slapped on top
@@ricknaam5658 It's an arbitrary distinction. DT is such an Emacs fanboy, but even he doesn't use default Emacs because that is also just a text editor (and not a very good one). If you want all the fancy features, you have to install doom emacs or write thousands of lines of config yourself to turn emacs into something more than a text editor.
Man, I can see how someone could reach a point of no return on that thing. Great video, thx.
My biggest gripe with Emacs is the high usage of the control key. I am a total noob tho so I'm probably missing something. Vim is very intuitive and fast for me.
Emacs can be extended in elisp, neovim can be extended in any language
Thanks DT! I've been a windows coder for far too long, and I suppose for this side of the pond I'm relatively rare in that I do a lot of my windows coding in Notepad++ and even midnight commander!
But, recently I've really been getting the urge to do more Open development and have been watching people like your good self and @Tsoding using Emacs like absolute champions ... and so I thank you for this intro, it gives me a lot more confidence, I think I can do this - and make the switch! Can't wait to see what more Magic is to be revealed ... and if noting else, a decent game of bubble 😀
Sold. I've been using vim for coding and logseq for taking notes(similar to notion, but opensource). I really like that you can do everything in one place. I'm gonna start using emacs right now.
I might be a noob but at first when I heard about Emacs I was thinking of that one apple computer aimed at the education market. This makes a lot more sense why people mention emacs on linux and not running linux on an E Mac lol. Pretty helpful video!
You should be in marketing - if opensource was about marketing. Dude, what a mind-blowing revelation-kind-of-thingy that was. I‘ll hit startpage quite hard on how to re-re-mess up my workflows again. Thanks!
DT emacs video drinking game:
take a shot every time he says "emacs"
Moonshine is gone, but got one hell of a fro. Luke Smith just arrived to make me use bash
Thanks, I'm glad they have wifi in the hospital while I'm treated for alcohol poisoning and getting my stomach pumped. 🙃
@@mikereynolds1368 you must live above the Mason-Dixon Line.
Alcoholism is bad mmkay
@@leviticus8930 why do jokes work differently up north? :)
The only thing needed in emacs is a user friendly text editor
Ahem ... Doom Emacs (and all the rest) **IS** GNU Emacs. It's just been configured to work a certain way. Just like my own GNU Emacs is still GNU Emacs even though it has had more than a decade of me messing with its configuration.
Okay, ORG mode got my attention, i`ll add to my list of stuff to study
It seems to me like Emacs goes against the Unix Philosophy, trying to do everything at once. I think I prefer using NeoVim for editing and other tools for other things rather than squeezing everything into emacs. I can't deny that it is very cool though.
Sold, I am going to spend the time needed to learn EMACS to replace my current code editor, thank you for the inspiration DT :)
How long did your inspiration last? Over 40 minutes? I'd be surprised...
@@exnihilonihilfit6316 lol nope I am just finishing reading a book on Emacs and trying to use it on day to day editing but it's not muscle memory yet 🤪
I'm starting in emacs, pretty cool so far
I got forced into using emacs for work, and your videos have helped me keep my head above water. Thank you.
hows emacs treating you nowadays?
I am used to be a vim user, but I dislike emacs because of the most commonly stated reason: too much stuff is built there...
It reminds me vscode which can be anything with extensions, but emacs is anything even without extensions!
I just get lost and defocused with such a variety of features that I did not want to install.
But emacs is a great text editor anyway, I like the way it manages navigation, key bindings, commands and even clipboard.
Kill-Ring is what I always wanted in a text editor since I always worry about what I've cut/copied and carrying around while coding.
Learning is not bad. But why do I have to learn so much about my most common tools? When do I start working?
Well, vi, historically, was always included (in every distro I have worked with since the 90s and as far as I can tell, it's still generally included) to use in a rescue situation when you boot to single user mode to fix something, so (at least in my case), from an admin perspective, I made the investment in Vim. I guess it depends upon your use case. Heck, I even struggle with Nano nowadays, because the muscle memory is :wq!... I'm not knocking Emacs, I just never had a use case where there was a compelling reason to invest in learning it. To each their own. DT likes Emacs? Good on him and rock on Good Sir. I suppose an obligatory "get off mah lawn" is warranted here?
Well, since the end of 1990:th, there have been the package Tramp in Emacs. Which basically means that you can remove all editors in servers you are managing, as long as you have ssh access to the server. Just open the file /ssh:user@machine:file will login as user at machine and edit the file as it was open local. And if you open a shell from that buffer, you get a remote shell to the same user@machine. So no need to have the right editor installed in all servers, as you never move from your local machine where you have Emacs and your configuration.
The use case argument is acceptable, but you can get the vi modal editing easily on emacs too...
@@AndersJackson vim can also edit remote files over ssh, that's a basic feature nowadays, heck even vscode and intellij and can do that natively. You can actually do it on any other editor, if you just mount sftp
@@Pumpkin-Link you don't understand. But as DT written, vim users usually don't understand Emacs. That is why they claim "vim can too".
Of course you can ssh into the server and start the editor there.
But emacs can open the file for you, without you manually ssh into the machine and start the editor in that machine.
You could do that too, because Emacs can run graphically over SSH or run in text moder, like vim.
And do MacOSX and MS Windows have support for sftp file system? Using sftp file system are not have support in the program, its in the OS you run the program from.
@@AndersJackson no, you're the one not getting it, vim itself has an ssh client built-in, its called netrw. You just need to pass hostname, path and credentials and vim will log you in and start editing remotely, as I said this is a pretty standard feature nowadays and intellij and vscode also come with ssh plugins natively
First time I used Emacs was at school back in 1986. The machine was a Pr1me 750 and the operating system was Primos. The same computer also had another updating system installed, called Primix, which was basically Unix, but it was written in Fortran so they weren't allowed to call it Unix.
The school later, I think in 1988, replaced that computer with a physically much smaller one (fitting na relatively small room) running UNIX, both Berkeley and System V, and I remember the Emacs version was a little bit different, maybe a newer version or just pre-configured differently. Vi or maybe Vim was also installed, but since I was used to use Emacs I never learnt them.
I didn't only write code in Emacs, I also played MUD and used IRC. Emacs made that so much more convenient.
Much later I bought my first computer and it had Windows 98. It was a disappointment from day 1. I just wanted to use Unix like in the old days but it wasn't until the early 2000s that I even heard of Linux for the first time and I didn't install it until 2007. Since then I use Windows only at work, since that's what they gave me.
But I never went back to Emacs. I just don't need it anymore, but my memories of it are very positive.
i really like the matrix metaphor because it was like that with me. i installed spacemacs (like a doom emacs it is ready-to-go version). from the get go i knew it was the best editor i used (and i used it all, some prehistoric stuff, than sublime, atom, vscode) but i used it it like a normal editor, only after 6+ months something clicked, and i realized emacs is more of a living organism than normal program, since then i'm in a huge rabithole. emacs really shines when you start to be intimate with it.
the really big thing is how easy it is to change it, and i don't mean configs (but this is huge too). everything in emas is just a function operating on other functions. that means writing your own function (think small plugin) is as easy as writing a function in python. every other piece of software feels like a software written by someone else that you don't have impact on. emacs feels different.
Very polished version of that topic, well done!
I remember my time of resistance, 15 years or so, where I was watching those show offs and my brain: "yeah, can do that in vim", "yeah, that as well...somehow", "that should also work", ..."could also work", "there is a plugin for this", "there should be a plugin", "there might be a plugin", "theoretically some insider could program that", "...could do that via remote controlling the buffer and some integration with that other tool" (...) but you invevitably, some day in your carrier if you are into "I want the fckng best tool for the jobs" you hit the wall and start giving it a *real* chance.
I totally get the benefits of emacs
I just dont get the benefits thats worth getting the emacs pinky over
its confusing at first but so good once you have your own theme, key bindings and desired packages installed.
if you come from VS code or some fancy ide it will seem basic but it grows on you
>why should I switch to emacs?
you shouldn't.
Org mode has an exporter that uses pandoc (ox-pandoc, I belive is it's name), but it doesn't use it by default. Each exporter uses emacs-lisp to generate the output (with intermediary output, like LaTeX). The pandoc exporter (ox-pandoc)is good, but it has some incompatibilities with org-mode format, because it uses Markdown as intermediary output. Even when you instruct it to not generate a Markdown document, it uses pandoc internal representation in memory, which is not 100% compatible with many aspects of org-mode. That's why I don't use it.
But, as I said, org-mode DON'T use pandoc. It uses emacs-lisp.
It is true, I took me about 6 months deliberately trying to do all my editing and work in emacs until I got to the point that I made Emacs my default editor because my mucle memory was just doing things without thinking. Tricks like exiting Emacs with Ctrl-Z to get back to command prompt to do things I need there and running fg to get back to emacs environment. It is similar workflow that I was used in Windows/DOS with Norton Commander/Far Manager where I would press Ctrl-O to have full screen command line and back.
You might like to try M-x shell in Emacs. And use M-p and M-n to get previous commands in history.
*edit*
Also use C-x o to change active window and C-x b to change buffer in active window. Then you don't need to use C-z. But if using C-z gives you a nice workflow, then all power to you for that!
*edit
Ctrl-Z and fg are native to *nix terminals. The same trick would work in pico.
Both Vim and Emacs have various terminal modes that you can pop into, especially if what you're doing in the terminal has a direct bearing on what you're editing. There's something to be said for seeing it the edited file and the terminal in the same window.
It makes more sense to me to Ctrl-z from Emacs than pico or vim, because I use Emacs for large projects where I have multiple files open in multiple Emacs buffers. I would split the screen with Ctrl-x 3, Switch panes with Ctrl-x o, Open DireED mode with Ctrl-x f Enter. Since DirED acts like a an editor, I can mark everything, that matters to me, then copy/paste in to the text that I am editing, and so on. It could be that same is possible with Vim, but to be honest, after learning Emacs, I prefer Emacs when working with large projects.
@ Yes, agree. And C-z works equally well in GUI as in Terminal. In GUI you just do a C-x 5 3 and C-x 5 o and C-x 5 0 (that is C-x 5 is prefix for Frame (aka Windows in newer programs) as C-x is prefix for Windows (aka frame commands, like C-x 0, C-x 1, C-x 2, C-x 3, C-x o etc). It is consistent.
@ Yeah, The same is true in Vim, although in both cases I prefer to stay in my environment rather than backgrounding the whole thing.
That org mode looks very cool. With respect to the introduction and Vim, neovim 0.5.0 and lua, etc.
There is a nvim plugin for org mode
I think I used emacs a few times but when you go from ed->ex->vi and then vim it is strange to use something else and since I use vi to manipulate data and I like my code light I am happy with vi.
Thanks for the explanation. Yes, I definitely won't use Emacs.
One side effect of using emacs for more and more things over the last couple years, is that I stopped using tiling window managers since emacs already internally tiles everything that I want to tile. I have also seen several other emacs users reach the same conclusion. I wonder what @DistroTube 's thoughts are on this issue, as he still clearly prefers a tiling wm alongside emacs.
I think the problem is that Emacs is very capable of tiling window management but it’s relatively hard to learn and configure well. There is a lot of nuance with window parameters, frame parameters, the display-buffer mechanism, buffer-local variables, hooks, etc... It’s a slog to get something nice, but at least when you get there, you’re an expert, so you can solve any issues that arise.
The only thing that’s missing IMO is nice window-specific tabs, as I am not a fan of stock tab-line functionality. I have developed a package that brings them closer to what you’d typically see in other tabbed tiling window applications, but there are still some minor bugs to shake out before I contribute to MELPA. Despite its flaws, I have been daily-driving my hack for 4-ish months and now I can’t imagine not using it. Really want to get it out there this year.
I still don't get it tbh, there's a lot of other programs out there that could do what emacs has to offer but better, so why use it? Vim and Noevim offers vim motions which is the most optimised way of navigating code without the use of a mouse, it is one of the main reasons why most people use them, it also offers various plugins that can do what emacs has to offer as well, so what advantage does it truly have? I kinda want to see the coding workflow of emacs to see if it's better than the coding workflow of vim/Neovim. If I can code better and faster in emacs compared to Neovim, then I'll gladly migrate to emacs.
Also, VIM/NeoVIM are terminal based and you get benefits of integrating them with tmux.
Noob: I would like a text editor
Emacs Salesman: and what games will you be playing in your text editor?
I don't hate emacs, it's just redundant because I already have an operating system to run apps inside of. In 2021 apps can talk to each other through the OS and don't need to be manually integrated by a team of developers the way emacs plugins are. Vim, on the other hand, I _do_ hate. It's so unbelievably obtuse. So when I need to edit text files in a terminal, I use nano, because it's easy to use unlike Vim, and it hasn't suffered from decades of requirements-creep unlike emacs.
great explanation, even wikipedia says emacs is a text editor.,
I use vim just because I don't do much proper programming, I mainly use it as a text editor for config files and minor scripting, and vi or vim is available on all the headless servers that I ssh into. The learning curves are a big factor in my decision, I don't even bother with plug-ins or even much custom config. (I would need to config every machine.)
1) The larning curve are not worse then vim. Not if you just want to use it out of the box.
2) You don't need to install Emacs on all machines if you just want to edit files and run some scripts/commands. Use TRAMP mode, and you can load and edit the file locally on your macihe. And start a shell, and you will start that from the same place the file is. Just open with /ssh:user@machine:file will open file on machine as user on your machine. And when you save it, it will be stored back. And if you open the shell M-x shell, that will open through ssh.
So, configure your local machines Emacs as much as you want, you will have that configuration when you edit the files on other machines, and you can uninstall the editor on that machin, it you want to. As long as you have ssh access and a shell there.
@@AndersJackson Totally out of touch aren't you?
Any learning curve is more than zero learning curve. I already know enough VIM.
I don't do all admin work from a single personalized workstation.
I had two attempts to switch to emacs. I was enough for 2 months. For me, emacs is a pain in the wrists due to keyboard shortcuts (even with evilmode). I also think emacs is an attempt to make a Swiss knife out of a text editor. Only vim gives me peace and harmony.
The latex exporting and writing is a God send