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.
@@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 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'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.
I don't really see it as a war, or even a flame war. Just friendly debate. I'm happy when folks use their preferred tools to the best of their ability!
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 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 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'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 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 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.
@@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
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.
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
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.
"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.
I'm kind of interested in Emacs, yet still I don't understand it. What's the point of having all the emacs versions of programs that we already have? Why do I need emacs browser if I have firefox / qutebrowser / tor? Why does one need two or more emacs terminal emulators if he can use st / alacritty / urxvt etc? As for Magit and org mode - there is vim-fugitive and some plugins which simulate org mode for vim. I don't understand why emacs include tetris, snake and so on? Isn't it the same as getting the bicycle which would also be kind of washing mashine? Isn't it better to use for each specific task the tool which fits this task better? I can edit text with Vim, browse internet with Librewolf, view images with sxiv and pdfs with zathura.
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. ;)
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.
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 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.
thanks for your video but i was watching one of your video regarding emacs "Friendship With Emacs Is Over, Vim Is My Best Friend" and now this, is it the same emacs with evo mode or something else ?
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)
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!!
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... ;-)
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 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.
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.
Try the System Crafters Chanel if you want to start configure Emacs from scratch.
3 ปีที่แล้ว +2
He did a livestream where he configured Emacs from scratch. The video is called "Leaving Doom Emacs For GNU Emacs? - DT Live!" :)
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 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?
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?
Question is do you need Emacs when you already have GNU/Linux installed for OS stuff and VIM for text editing and development? What I understand, Emacs users choose Emacs and uses as UNIX Utility layer. So really they could install lightest linux distro just to run Emacs, because it's their OS.
@@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.
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 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 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.
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.
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'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.
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.
@@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 🤪
Hey @DT, I’m a vim user who has been using neovim for some time now. I believe neovim is a lua interpreter. Would this make or give neovim the potential to have feature parity with enacts?
Lua will increase vim's ability but as vim is designed around displaying text files and piped output, your UI design is going to be limited. Honestly prior to neovim you could just write scripts in your favorite language and then write vim script to process the output in a vim friendly way. Lua in neovim just reduces the complexity a little.
No, it will not. Those extensions (and configurations) you do is just what is allowed to be changed/used by the vim program and their coders. You can't change anything else. In Emacs you ARE changing the code base of Emacs when you configure Emacs. Your code/configuration are like the code that builds Emacs, and there are no way to see the difference, except if you know which files it is read from. So yes, you can change anything in Emacs, which you probably doesn't want to. But you can. Emacs is a elisp interpreter/compiler that has superb expandability for the users and it's default application is an editor, also called Emacs. You can't get more flexibility then that. Do vim work for you, great. But don't pretend that vim are as flexible and easy to configure as Emacs. When you configure Emacs, you change the code that is Emacs.
It doesn't change anything other than allowing you to program vim more intuitively than vimscript, with it's augroup function! ++nested etc... obscurity. It can change any part of the vim api, and it can run *any* terminal application and produce its output as part of the editor so that if you set up something like LunarVim, you'll be using parts of the toolchain totally external to vim without being aware of it. (Of course if you set up an telescope interface yourself then you'll know perfectly well where vim ends and telescope begins, even though it all appears in one application.
Well, you of course can have start screen, which key self-documentation, filemanagers and even email client in Vim, but the GUI advantages are nice indeed. Though I am curious, how the cursor behaves when you approach the text of different size? I mean, there is a reason why terminals don't support it, right?)
hi DT, you stated in one of your video that people should use the GUI version of emacs instead of the terminal one. Then if we can only use the terminal, then can we get that much advantage (compared to vim) from the terminal version of emacs?
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
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.
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 😀
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.
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.
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.
@@justsomeguy8385 What I don't really understand is If it is just for the sake of a scripting language interpreter, why don't I choose maybe a python interpreter or other scripting language? An interpreter that has more well-maintained programs
i tried doom emacs and i tried some simple things like vip and :norm command and just none of them worked, i would like to try emacs but as it stands, it hasn't got the tools that keeps me invested in vim
It's funny the people that complain about emacs doesn't follow the Unix philosophy. Over all because a lot of them do that commentary from browser like Firefox or Chrome, that are also the opposite to the Unix philosophy but they don't complain about those programs.
@@lorenzocabrini Emacs is an ecosystem of tools that interoperate and work together. A system of "unix-like tools", or whatever you'd like to call them, is another ecosystem of tools that work together. The two systems are alternatives to each other, so I'm saying the comparison should be between them.
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.
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.
Vi user from the 80's. We get it, no worries.we know Emacs is an amazing Lisp OS and cand do EVERYTHING. The real question is; why I want to learn a full slow operating system, when all I want a text editor? I already have my Linux for the rest. THat's the question Vi users want Emacs users to answer, really. Also.... lisp? For god's sake. I get it, Stallman felt in love with it, but even then, there were a lot of more sane options for a scripting languages.
I thought lua was quite wide language (I assume we're talking about neovim in particular because that seems to be the popular choice of vim), assumed it can do kinda whatever you want to code in.
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!
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.
But are there any keys or combination of keys you can hit without it accidentally being a shortcut for doing something? I'm rather clumsy; I accidentally press multiple keys by accident, and this looks rather intimidating because it seems like there's thousands of shortcuts that can do anything and since theres no strong separation between input mode and command mode (which though awkward at first, is one of the things I like about vim/neovim because there's very few surprises if I stumble in on some control keys (in fact it's more likely that a random key combo will activate something in my shell or the OS in general than activate anything in vim). (Omg, that paragraph was just one short and one VEEEERY long sentence... but I can't be bothered to fix that now...) And if I mess around in command mode and do something surprising by accident I know I can undo it with "u" in command mode or return from where ever I ended up with ":q" or ":q!" if I really messed up and do not want to save whatever I did.
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 disagree. Emacs does one thing well, it interprets elisp. The side effect of that is that it can do anything else you want, which makes it appear like it's not following the unix philosophy.
@@yramagicman675 I disagree. Emacs interprets multiple programs that happen to be written in the same language. You don't consider all Java* programs to be 'one' because they are all interpreted by the JRE now would you? (*or any interpreted language). But lets not get our panties in a twist here... it was just a joke and Emacs is pretty awesome.
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.
That quote at the bottom "I showed you my source code, pls respond" I love it.
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.
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.
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 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.
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.
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 don't really see it as a war, or even a flame war. Just friendly debate. I'm happy when folks use their preferred tools to the best of their ability!
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 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 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'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 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 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.
use the tool only if you need it
"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!
I won't understand it for 6 months? Sounds very appealing.
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.
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.
Both are masterpiece, it's your freedom to choose one.
I chose mode
The only based answer in this cringe comment thread
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
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
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
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 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.
I'm kind of interested in Emacs, yet still I don't understand it.
What's the point of having all the emacs versions of programs that we already have? Why do I need emacs browser if I have firefox / qutebrowser / tor? Why does one need two or more emacs terminal emulators if he can use st / alacritty / urxvt etc?
As for Magit and org mode - there is vim-fugitive and some plugins which simulate org mode for vim.
I don't understand why emacs include tetris, snake and so on? Isn't it the same as getting the bicycle which would also be kind of washing mashine?
Isn't it better to use for each specific task the tool which fits this task better? I can edit text with Vim, browse internet with Librewolf, view images with sxiv and pdfs with zathura.
Use Emacs with Evil Mode, give the Operating System the Editor it deserves.
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.
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.
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 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.
thanks for your video but i was watching one of your video regarding emacs "Friendship With Emacs Is Over, Vim Is My Best Friend" and now this, is it the same emacs with evo mode or something else ?
Neovim is getting there, we already have magit on neovim and some prototypes on org mode
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.
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.
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... ;-)
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.
_Oh I forgot to show tetris in Emacs!_
You got me there, DT
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 :)
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.
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.
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'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 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?
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...
Question is do you need Emacs when you already have GNU/Linux installed for OS stuff and VIM for text editing and development?
What I understand, Emacs users choose Emacs and uses as UNIX Utility layer. So really they could install lightest linux distro just to run Emacs, because it's their OS.
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 started using vi in the 90s. It edits files
I need to edit files, why would I need to play games or anything else?
Came here to just read the comments ...
Getting back to NeoVim again with more confidence
Totally agree, atleast few months are needed to get some idea of what emacs can potentially do.
but, what if you just want an editor?
You still have that in Emacs. And if you start Emacs in server mode, you can easy and fast start editing files.
Then just stick with vim or switch to neovim because it has more stuff
@@willardorwud not more stuff then Emacs.
@@AndersJackson Pretty sure he means neovim has more stuff than vim.
@@AndersJackson Of course neovim doesn’t have as much stuff as emacs, but for a lot of users emacs is overkill
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 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 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.
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.
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.
Noob: I would like a text editor
Emacs Salesman: and what games will you be playing in your text editor?
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's okay. As a Nano user, i understand neither of those two. ;-)
The virgin Emacs and vim users vs the Chad nano user
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
Man, I can see how someone could reach a point of no return on that thing. Great video, thx.
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...
Where has the signature DT dubstep intro/outro gone?
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.
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 🤪
Hey @DT, I’m a vim user who has been using neovim for some time now. I believe neovim is a lua interpreter. Would this make or give neovim the potential to have feature parity with enacts?
Lua will increase vim's ability but as vim is designed around displaying text files and piped output, your UI design is going to be limited. Honestly prior to neovim you could just write scripts in your favorite language and then write vim script to process the output in a vim friendly way. Lua in neovim just reduces the complexity a little.
No, it will not.
Those extensions (and configurations) you do is just what is allowed to be changed/used by the vim program and their coders. You can't change anything else.
In Emacs you ARE changing the code base of Emacs when you configure Emacs. Your code/configuration are like the code that builds Emacs, and there are no way to see the difference, except if you know which files it is read from. So yes, you can change anything in Emacs, which you probably doesn't want to. But you can.
Emacs is a elisp interpreter/compiler that has superb expandability for the users and it's default application is an editor, also called Emacs. You can't get more flexibility then that.
Do vim work for you, great. But don't pretend that vim are as flexible and easy to configure as Emacs. When you configure Emacs, you change the code that is Emacs.
It doesn't change anything other than allowing you to program vim more intuitively than vimscript, with it's augroup function! ++nested etc... obscurity.
It can change any part of the vim api, and it can run *any* terminal application and produce its output as part of the editor so that if you set up something like LunarVim, you'll be using parts of the toolchain totally external to vim without being aware of it. (Of course if you set up an telescope interface yourself then you'll know perfectly well where vim ends and telescope begins, even though it all appears in one application.
Well, you of course can have start screen, which key self-documentation, filemanagers and even email client in Vim, but the GUI advantages are nice indeed. Though I am curious, how the cursor behaves when you approach the text of different size? I mean, there is a reason why terminals don't support it, right?)
@AstroCat I mean, when it's going up and down. Especially if I want to select a block or something..
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? :)
hi DT, you stated in one of your video that people should use the GUI version of emacs instead of the terminal one. Then if we can only use the terminal, then can we get that much advantage (compared to vim) from the terminal version of emacs?
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.
hey @DT how you get this beautiful colored Doom - logo within your Doom 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.
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 😀
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 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?
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.
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.
Why do I need an elisp interpreter?
To customize your editor.
@@AndersJackson Then it is still for the editor...
@@alucardkoten no 🤣 because emacs isn't a text editor. Emacs is a elisp interpreter that happens to have a editor.
@@justsomeguy8385 What I don't really understand is If it is just for the sake of a scripting language interpreter, why don't I choose maybe a python interpreter or other scripting language? An interpreter that has more well-maintained programs
@@alucardkoten Because Emacs is 45 years old. Python didn't exists back then and also Python is not a Lisp which as has a lot of benefits.
Everybody: Vim or Emacs
Me:
*nervous in nano and kate*
Okay, ORG mode got my attention, i`ll add to my list of stuff to study
i tried doom emacs and i tried some simple things like vip and :norm command and just none of them worked, i would like to try emacs but as it stands, it hasn't got the tools that keeps me invested in vim
The real comparison would be "emacs vs environment-of-unix-philosophy-tools", right?
It's funny the people that complain about emacs doesn't follow the Unix philosophy.
Over all because a lot of them do that commentary from browser like Firefox or Chrome, that are also the opposite to the Unix philosophy but they don't complain about those programs.
@@lorenzocabrini Emacs is an ecosystem of tools that interoperate and work together. A system of "unix-like tools", or whatever you'd like to call them, is another ecosystem of tools that work together. The two systems are alternatives to each other, so I'm saying the comparison should be between them.
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.
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.
Vi user from the 80's. We get it, no worries.we know Emacs is an amazing Lisp OS and cand do EVERYTHING.
The real question is; why I want to learn a full slow operating system, when all I want a text editor? I already have my Linux for the rest.
THat's the question Vi users want Emacs users to answer, really. Also.... lisp? For god's sake. I get it, Stallman felt in love with it, but even then, there were a lot of more sane options for a scripting languages.
The only thing needed in emacs is a user friendly text editor
I thought lua was quite wide language (I assume we're talking about neovim in particular because that seems to be the popular choice of vim), assumed it can do kinda whatever you want to code in.
Emacs can be extended in elisp, neovim can be extended in any language
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!
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.
But are there any keys or combination of keys you can hit without it accidentally being a shortcut for doing something? I'm rather clumsy; I accidentally press multiple keys by accident, and this looks rather intimidating because it seems like there's thousands of shortcuts that can do anything and since theres no strong separation between input mode and command mode (which though awkward at first, is one of the things I like about vim/neovim because there's very few surprises if I stumble in on some control keys (in fact it's more likely that a random key combo will activate something in my shell or the OS in general than activate anything in vim).
(Omg, that paragraph was just one short and one VEEEERY long sentence... but I can't be bothered to fix that now...)
And if I mess around in command mode and do something surprising by accident I know I can undo it with "u" in command mode or return from where ever I ended up with ":q" or ":q!" if I really messed up and do not want to save whatever I did.
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.
After trying to rebase in magit you will never comeback to shell commands
Unix philosophy: Programs do one thing and do it well.
Emacs: No.
I disagree. Emacs does one thing well, it interprets elisp. The side effect of that is that it can do anything else you want, which makes it appear like it's not following the unix philosophy.
@@yramagicman675 I disagree. Emacs interprets multiple programs that happen to be written in the same language.
You don't consider all Java* programs to be 'one' because they are all interpreted by the JRE now would you?
(*or any interpreted language).
But lets not get our panties in a twist here... it was just a joke and Emacs is pretty awesome.
emacs is the best example of the gnu philosophy. and a prime counterexample of the UNIX philosophy.
Good thing GNU is not Unix 😏
@@qvindicator 😂👍
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!