Loved the video! Thanks! Looking forward to hearing more about: - Why not ido over ivy, if you like minimalism. - your EXWM workflow and thoughts about the way it compares to other WMs/DEs. As a heavy emacs user, EXWM has been the best tiling wm experience for me. Only one set of key bindings for managing windows and simulation keys are great. - Your way of using vim keybindings in Emacs. Many emacs users, myself included, seem to have problems to perfectly integrate them. I ended up keeping evil-mode active, but in emacs state by default; I switch to vim keybindings when I feel like it.
Thanks! Ivy enables additional actions for completion lists via M-o and C-o, not sure if Ido provides similar behavior. Good question, though, might need to explore that in the future. I'm definitely going to get into EXWM and Evil! You're right, Evil config can be tricky, might need to devote a good portion of a video to it.
Great video! Thanks for sharing your way, and making clear explanations! Maybe it's too much information in this one for a newcomer. Maybe not, just wondering... I'm interested in EXWM, eshell, and also some software development workflow. Again, thanks!
Hey Kevin, I plan to cover lsp-mode in an upcoming episode, this will cover a lot of what you've mentioned here. I will also cover a web development setup at some point in the future since there are some interesting packages in that space. Also, integrated shell in Emacs is a whole topic of its own that I should cover soon. Thanks for the ideas!
If you're following along and you're using emacs for the first time, running counsel at 34:43 you may not have the counsel package loaded (you'll know if you type M-x counsel and no commands show up), go back to 34:01 copy in lines 79-86 from the init.el shown and run M-x eval-buffer.
I worked through this setup with you and am liking whats coming out. Thank you so much for the inspiration to do more than just use vanilla like I've been doing. Looking forward to going through the next video.
I was a Vimmer until a few weeks ago when I saw a video of a guy showing how to render LaTeX formulas in org mode and it really blew my mind. Emacs is crazy powerful.
Thank you for great video! About auto-starting 'ivy': just change `:config (ivy-mode 1)` by `:init (ivy-mode 1)`. From doc of use-package: Use the :init keyword to execute code before a package is loaded. Similarly, :config can be used to execute code after a package is loaded.
Very clear explanations! Switched over from vim over the last few months with Doom Emacs, but always felt a bit uneasy about having a bunch of preconfigured stuff I might not even know is there. Looking forward to future installations.
Very helpful video! I've been procrastinating on watching this series because of its length (it seemed daunting), but now that I've actually started watching, time seems to be flying by! Something about the way you teach this stuff makes it all seem very managable. I wish I'd started earlier. Thanks for making this amazing resource!
This is one of the best instructional videos I've seen on RUclips and is better than some content on premium instructional sites. I started using emacs a few years ago because of TRAMP but I never really got into tweaking the configuration much. I use Spacemacs with minimal configuration changes. This video series seems as though it was made for me. It is so useful to see you explain in a quick sidebar the background context that one needs to understand in order to understand what you're configuring. This is great stuff, thanks for making it and keep them coming. I look forward to watching the rest of the videos in this series.
Hello Mister, this is a really good series for Emacs learning! I follow your video step by step but come up with a problem. After install ivy, I cannot call counsel and swiper as you did in the movie. After a little search I realise counsel and swiper is however another two libraries. Simply install ivy cannot call them. Reason you can call them is, you are still using your old .emacs.d folder and so counsel is already there. Maybe I am wrong or miss steps from you? Finally, I added a line to my init.el: (use-package counsel). This enables me to use counsel and swiper.
you have to add another use-package swiper and use-package counsel. I think the version of ivy he installed came with both, depends on where you get the 'ivy' package from. www.reddit.com/r/emacs/comments/90hiew/swiper_disappeared/e2qglk7/ this link might help :)
Yeah, I think that is what happened in this case. I missed the fact that I already had the other packages installed through Guix and Emacs picked them up. Bad mistake on my part!
This is amazing stuff. I am on and off emacs. Started 4 years ago, jumped straight into Spacemacs and got lost in layers documentation. Used primarily for note taking with org mode and did couple of scripts to cloud sync the notes across devices. However, never got down to the bare minimals for setup and spacemacs had too much for me. Loved the fact i sat through this video and got something even with spacemacs-theme. Well done.
Late to the game, but thanks for this video. Started using Spacemacs (still think it's a great option) but found myself wanting to use Emacs from scratch - including autogen, configure, and make. Really appreciate your video. Thank you!
Thanks for the vid -- good job! In the emacs learning mode. Not 100% but getting there. Your remaining "FromCcratch" will hopefully convince me to switch from my current IDE.
I've started learning about emacs for a year now and decided to create something else to replace the meddly in my init.el and this is a good starting point. Solution to a (trivial looking back at it) problem that occured to me (building up from scratch): "wrong type agrument" after calling swiper. You are likely to be missing the counsel package. Try downloading it (and complete other might occurring dependencies) and restart emacs. Worked for me.
For future reference, to bring back processes you suspended using ^Z you can type "fg" (which is the command to bring the process back to the foreground) in the terminal where you suspended them.
12:39 (unless dw/is-termux ; my emacs can't interpret this part or any of the dw thing. I know it must be some directory system. Can you explain why it is needed and what should I write there instead? Thanks!
First! Thank you for providing this series. I have found it very useful. I am currently trying to learn to use and configure Emacs. I will continue to try and learn Emacs. Please take the following as constructive criticism. It is meant as a RAW perception. An attempt to illustrate how and why I see learning Emacs as an incredibly daunting task. Feedback: This is a hot take from someone that is just now trying to start using Emacs. First, the phrase using Emacs feels wrong to me. In the process of learning I don't feel Emacs as a noun. More of a verb. "I'm going to Emacs." Why do I feel this way? Because TRYING to use Emacs is a thing that I do. It is an action, a verb. I don't feel like I am using Emacs. I feel like Emacs is using me. You state. "I hope that with this little intro, I have convinced you that writing your own configuration is not that hard." Well, I didn't get that impression. I got the impression that you copy/pasted from almost random only sources and even from your own configuration file. Paraphrasing your demonstration: It isn't hard to make your own configuration file. Let me show you. Uh, First I'm going to setup thingy. Okay, that is done. Now I am going to add this thing that I already know about but.. Uh, Let me look up how to configure that. Hmm, quick online search wasn't right. Didn't help. I will just snag working code from my working configuration. Hmm, Having some problems. Oh, thank you chat for helping me correct what I have wrong, what I overlooked. No, I think you eloquently prove that it is in fact only easy if someone holds your hand if you are noob to Emacs. Do I have Emacs installed? Yep! Can I use/edit with Emacs? Yes, However not as well as just using Notepad or nano. (Ignoring things like vim and VSCode) Do I have a desire to learn to use Emacs? Overwhelmingly yes. I have seen the powers of vim and its limitations. I have seen how Emacs can do all that vim does and more. Emacs removes many of the restrictions I have bumped into with vim. Could I use VSCode and other custom editors? Sure. However, I prefer consistency. Constantly changing editors hinders my workflow. I am strong keyboard user and hate reaching for the mouse to click and drag things. I prefer to use just one text editor to edit virtually everything. I don't want to be missing features from switching editors. Sincerely, Lucius L. Hilley III
Around 31 mins -- that statement -- one of the reasons why emacs (and lisps in general) still rock the house after all these years :) Being able to have two different completion frameworks loaded and running in different contexts, without interfering with each other, is still something many different pieces of software cannot claim to have.
Hello all, If you are running issues with downloading melpa on a Debian OS than you might want to try downloading/installing Emacs via source. When I used apt-get method to get emacs I was running into a lot of issues. Someone on discord mentioned it could be related to Debian not being a rolling-release OS however Debian's source is apparently updated a lot so it's like a rolling-release. So downloading/installing it via source fixed that issue & I had fun creating by very first desktop icon which isn't hard :D
quick note: if your icons are missing after installing doom-modeline just do: M-x all-the-icons-install-fonts P.S. i luv ur videos (L: Im total noob in emacs (2nd day of using it), but i think with your help i got used to emacs controls and learned some other essential emacs things pretty quickly (ofc i could just read the documentation, but reading is boring). I dont know if ill continue to use emacs in a future, but for now i see a lot of potential for better programming workflow :D
It's also worth pointing out to the windows users that you need to right-click each of the downloaded font files and click install, that's not immediately obvious to anyone who hasn't installed fonts on windows before.
That was very good, and I worked through it. Thanks. My one criticism is that this is clearly for beginners and they will have been trying to press the M and C keys instead of Alt and Control, getting frustrated and possibly giving up. Fortunately enough, it was the one thing I knew already going into this. I'll carry on with the course. Cheers.
20:10 use-package is not a package manager! Although use-package does have the useful capability to interface with package managers (see below), its primary purpose is for the configuration and loading of packages. From github page: "The use-package macro allows you to isolate package configuration in your .emacs file in a way that is both performance-oriented and, well, tidy. I created it because I have over 80 packages that I use in Emacs, and things were getting difficult to manage. Yet with this utility my total load time is around 2 seconds, with no loss of functionality!"
18:57 If you instead (setq visible-bell f) it will not load the theme. Is that because load-theme cannot load a new theme if a theme already is loaded (which it does because it sets the visible-bell)? Edit: Thank you very much also!
Can't find the video where you talk about emacs transparency, so I'm writing it here. I've found the way to make transparent background, whith non-transparent text. It looks smth like this (set-frame-parameter (selected-frame) 'alpha '(80 . 80)) (add-to-list 'default-frame-alist '(alpha . (80 . 80))) (set-face-attribute 'default nil :background "black" :foreground "white" :font "Hack Nerd Font" :height 110) One can customize it to he's own taste, important thing is in setting :background "black" and :foreground "white" in face-attribute (for dark theme) and :background "white" :foreground "black" for the light one
Inspired me finally to get Ivy installed! I tried Helm ages ago and found it too heavyweight, then forgot all about it. Now I've got use-package, Ivy, Diminish, and Ripgrep going, and am warily eyeing Projectile...
This playlist is amazing! I'm a long time Vim user who discovered org-mode about a year ago and I've been using Spacemacs since then (honestly don't know how I lived without org-mode until now). Spacemacs is excellent, and I probably would never have started using Emacs without it, as configuring Emacs to resemble something "modern" is daunting for a new user. But now that I'm learning more and more about Emacs I'm starting to butt heads with Spacemacs. It also hinders learning Emacs, in my opinion, because it's hard to tell what is Emacs and what is Spacemacs customisation. I think it's time to start my own Emacs config. These videos starting an Emacs config from scratch are exactly what I needed right now. So thanks!
Thanks! I'll definitely cover LSP in a future stream, it's pretty central to my work life. I think we'll have some more work to do on fundamental Emacs config before we get there :)
10:00 I feel the pain the introductory white screen causes. Please, would you consider making an ultraminimal vetsion of this video? Having a straight path to go along plus using emacs alone would be the premise; Like, not using a bunch of templates/snippets but instead do every tweak on its own and in emacs alone?
doom-modeline dos not seem to wark properly on GNU emacs 27 in debian. There is no icone and look worst than the default modeline. I tried (use-package all-the-icons ...) vith no success for icones. And thanks for the awsome video.
@lana69420 i couldnt get used to e-lisp (i have no experience with functional programming, i didnt have time to learn it, and i ended up getting used to lua in neovim), so i set emacs aside. this was also largely because the neovim environment is very good and meets all my needs.
@SystemCrafters How did you get Fira Code Retina to work without any issues? I have it installed on my machine and tried this config on both emacs 26.3 and 27.1 and both of them say: Font not available. Any tips?
FYI orgmode's own elpa repo is depreciated since org-mode is already in. Also, if gnu's archive is failing to download, you might need to put the package-initialize command _before_ package-archives rather than after. (I can't put the actual URLs in, YT deletes the comments...)
How do I make sure emacs uses that modified init file every time it starts up when I, for instance, click the icon, instead of having to use emacs -q -load init.el every time?
You don't need to use `emacs -q -load init.el`, I was just using that to keep my own Emacs configuration from being loaded. If you store your init.el file under ~/.emacs.d/init.el, Emacs will pick it up automatically when you start it.
@@SystemCrafters For some reason my emacs wasn't doing that automatically. I ended up modifying the .emacs file and it worked but I don't know why lol Do you know why it wasn't automatically picking up the init file in .emacs.d?
@@definitelynotofficial7350 I think the `.emacs` file is the original config file but it also checks for `.emacs.d/init.el` along with other files. I am guessing that `.emacs` is first in priority of checking and won't look again for another config file. So you just need one of the files, either `.emacs` or `.emacs.d/inti.el` but not both.
Did anyone had a problem with fetching the ivy package from melpa? In my case it said that the package was not found on melpa so I decided to manually install the ivy package myself following the instructions on ivy’s git repo and it works
@@SystemCrafters Thank you for the help. When I execute the expression I get an error stating that my public key is outdated in the ~/.emacs.d/elpa/gnupg I’ve tried to update the key using every method I could find (like running the gnu-keyring-update) but non were successful. Do you personally know of a solution for getting the key?
I got stuck for a while trying to figure out how to nav up a directory level in counsel-find-file coming from Helm. If you also want C-l to work like it does in helm, what you need to set is counsel-up-directory in the counsel-find-file-map map. Hope this helps someone!
Emacs noob here :) Im on a mac and had to add a few if conditions for a few of the modes as I was geting a void error while evaluating the buffer. Is that intended or did I do something wrong? (if (fboundp 'scroll-bar-mode) (scroll-bar-mode -1)) ; Disable visible scrollbar (if (fboundp 'tool-bar-mode) (tool-bar-mode -1)) ; Disable the toolbar (tooltip-mode -1) ; Disable tooltips (if (fboundp 'set-fringe-mode) (set-fringe-mode -1)); Give some breathing room Love this thank you for making this valuable content.
The choice of Ivy and Counsel in the first couple of streams is out of date (many people use packages centered around Vertico now) but much of the rest of the series is still worthwhile. You should watch it all to get a good sense for how to build your own Emacs config, you can switch packages later
One question that I forget is for this video or the next involves swipe. After a search if I hit escape point returns to top of buffer. I really don't want this. I want it to stay at last search result. How is this achieved? Ah, the TAB works.
For me many of these things did not work. 1. The Fringe-Mode has no visible effect (whatever this should be). 2. Your package-archives variable does not work for me. Emacs is unable to download anything from the ELPA archive. I had to use add-to-list instead. 3. The doom-modeline needs the all-the-icons package manually installed and configured before it can be used. And a custom modeline is not really something, that is important for beginners. But thank you very much, anyway for that video.
@System Crafters: I have been puzzled by your having to choose huge font sizes. My first guess is emacs is taking incorrect DPI measurements from somewhere. I have read the emacs docs and it says the font height works in 1/10th of a point increments. I have emacs 27.1 too and following this tutorial the comfortable height setting for me is 85, which is what you'd expect from an 8.5 point font size. Have you tried looking elsewhere for the issue, for example the M-x display-monitor-attributes-list function to see if it's misreading your screen size?
@@SystemCrafters Maybe something like this to express font with point size instead of pixels (set-face-attribute 'default nil :font "Fira Code Retina-16")
Great presentation, efficient delivery with good pace. Thank you. A question: you are demonstrating use of company mode buit it is not in your init.el and so not installed on my system (I started from scratch). Did I miss something? Was it supposed to appear with the ivy configuration we have here? Or should it have a separate use-package entry, to be installed?
Thank you! Usually I'm using Ivy for completions in buffers and it has a pop-up that looks similar to company-mode, maybe that's what you saw? Sometimes Emacs packages will install company-mode as a dependency, so that's why it could show up without explicitly installing it. I cover company-mode setup in part 8 of it helps!
When I do m-x eval-bufferm or C-x C-e, I'm keeping getting "(custom-set-variables ;; custom-set-variables was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance." appended to the end of my init.el file. Anyone else have this problem? I'm using Emacs on Windows
Hey, I am following this tutorial and it is going smoothly except when I put doom modeline command , a emacs abort dialog comes up everytime saying a fatal error has occured. I have done everything in this tutorial except the modeline. Can anyone tell whats the problem? Also I am using a windows
From a comment I made here 6 months ago: Very late addition. The reason your doom-modeline-height gives ' nil' back is because, if your font characters are too large the modeline height will default to the size of the characters. You need to set a face attribute with (set-face-attribute 'mode-line nil :height 120) and change the height to something smaller than default, this then should allow the modeline height to shrink.
Hey thanks for the Tutorial, I am new to emacs and i have one question , when sometimes i use use-pakage , i got an autogenerated Custom code , is there a way to automate the process so whenever there is some autogenerated stuff it goes directly to some file x. Thanks
I used exactly this configuration but there is no "counsel" in my emacs. What am I missing? :-( EDIT: I figured it out. I had to run M-x install-package counsel However, the ivy mode only seems to work for my if I turn it OFF and then on again. EDIT2: Okay I got it to work now by changing the init.el file. I took the " (ivy-mode 1) " out of the bracket from before and now everything is working as intended.
Just a historical note: Before there were alt keys used as meta keys, there were actually keyboards where it was labelled Meta. I don't trust my memory these days like I used to, so I won't say I saw a keyboard which actually sported the Ctrl, Shift, Meta, and Alt keys. That picture is way too fuzzy in my head to come right out and say that. I did have one that sported an actual F1-F24. And one that might have had the Meta key to swap to Fn13-24 keys like the Fn button does now. Either way it was WAY too cumbersome But that was early days of PCs and OS's when you could still (rarely) see the HUGE sized floppy disks in use. (My ex wife used some of those before her boss bought her a PC to use instead.)
Hi! Really love your channel. If I could, I would subscribe multiple times. One question - how do you setup emacs so that it has this nice looking transparent frame?
Very late addition. The reason your doom-modeline-height gives ' nil' back is because, if your font characters are too large the modeline height will default to the size of the characters. You need to set a face attribute with (set-face-attribute 'mode-line nil :height 120) and change the height to something smaller than default, this then should allow the modeline height to shrink.
Hello David. I'm not a guy who comments frequently (if I ever commented at all) but I have to comment this one. I started using emacs a couple of months, after a few years of Vim, mainly because curiosity for all the environment features emacs provide. I went with doom emacs to dive into it and see all the potencial, and I'm quite please for now. But as a curious person, I want to know how it works in detail to make it fit all my workflow. I found you for the magit video, as I was trying to use, and as I was thinking on creating a config from scratch, I am pretty sure that following your lessons it will help me a lot. So please continue with these videos, easy to view and understand, and very helpfull. Thank you very much.
Thanks a lot for your comment! I love making these videos, I don't think I'll stop anytime soon :) Please feel free to leave comments with suggestions if there are other things you want to learn about in Emacs that haven't been covered by my existing videos!
@@SystemCrafters Don't know if it is a difficult thing, because I heard about it and I want to try it but I still had not the time, is the remote file editor with Tramp or any other package.
You might be able to benefit from some of them, but Spacemacs already has a lot of the same things configured already so these videos might not be quite as useful. Still, can't hurt to watch them to learn more about Emacs!
What is the init.el~ file? I noticed it during your magit demo, and I see it in my directory too. I'm guessing it's some sort of file that was created by emacs, but I'm not sure of its use/purpose. While following along through this video I also saw some temporary looking files in the .emacs.d directory, such as #init.el# and #init.el~#. Could you shine a light on the existence of these files? I couldn't find much searching online.
@@SystemCrafters error: Package ‘use-package-’ is unavailable To ensure normal operation, you should investigate and remove the cause of the error in your initialization file. Start Emacs with the ‘--debug-init’ option to view a complete error backtrace. with debugger Debugger entered--Lisp error: (error "Package ‘use-package-’ is unavailable") signal(error ("Package ‘use-package-’ is unavailable")) error("Package `%s-%s' is unavailable" use-package "") package-compute-transaction(nil ((use-package))) package-install(use-package) (if (package-installed-p 'use-package) nil (package-install 'use-package)) eval-buffer(# nil "/home/michael/.emacs" nil t) ; Reading at buffer position 988 load-with-code-conversion("/home/michael/.emacs" "/home/michael/.emacs" t t) load("~/.emacs" t t) #f(compiled-function () #)() command-line() normal-top-level()
Thanks Kavin! I did install and configure Counsel but I don't think I ran the command that automatically rebinds all of the keys to use counsel commands. You can try adding (counsel-mode) to the use-package config for counsel or follow the documentation here: oremacs.com/swiper/#global-key-bindings Let me know if you still have trouble after that!
If you're editing the file in .config, make sure there isn't an .emacsd directory or similar in your home. IIRC, Emacs will prefer loading that over the other location.
Are going to achieve this setup by the end of this series? Because let me tell ya, this is an awesome workflow! I'll keep on configuring my Emacs 'cause I'm a noob
I like the fact that you are showing how to set up emacs from scratch but I do not think this is beginner friendly. You assume that some of the commands are already known but I had to spent quite some time just trying to figure out how to actually type out the commands you use like M-x Nx N-f, my screens in scratch buffer would keep getting messed up etc. I finally managed to evaluate the load-theme expression but it doesn't look the same as yours.
This was my first Emacs video so I wasn't well prepared for everything from a beginner's perspective. Check out my other video The Absolute Beginners Guide to Emacs, it might help
What else would you like to know about Emacs? Leave suggestions in the comments or reply to this one!
Loved the video! Thanks! Looking forward to hearing more about:
- Why not ido over ivy, if you like minimalism.
- your EXWM workflow and thoughts about the way it compares to other WMs/DEs. As a heavy emacs user, EXWM has been the best tiling wm experience for me. Only one set of key bindings for managing windows and simulation keys are great.
- Your way of using vim keybindings in Emacs. Many emacs users, myself included, seem to have problems to perfectly integrate them. I ended up keeping evil-mode active, but in emacs state by default; I switch to vim keybindings when I feel like it.
Thanks! Ivy enables additional actions for completion lists via M-o and C-o, not sure if Ido provides similar behavior. Good question, though, might need to explore that in the future.
I'm definitely going to get into EXWM and Evil! You're right, Evil config can be tricky, might need to devote a good portion of a video to it.
Great video! Thanks for sharing your way, and making clear explanations!
Maybe it's too much information in this one for a newcomer. Maybe not, just wondering...
I'm interested in EXWM, eshell, and also some software development workflow.
Again, thanks!
Thanks Pedro! Let me know if there's anything I can cover in more detail another time, too.
Hey Kevin, I plan to cover lsp-mode in an upcoming episode, this will cover a lot of what you've mentioned here. I will also cover a web development setup at some point in the future since there are some interesting packages in that space. Also, integrated shell in Emacs is a whole topic of its own that I should cover soon. Thanks for the ideas!
If you're following along and you're using emacs for the first time, running counsel at 34:43 you may not have the counsel package loaded (you'll know if you type M-x counsel and no commands show up), go back to 34:01 copy in lines 79-86 from the init.el shown and run M-x eval-buffer.
thanks, I was wondering why. Appreciate your help.
Thanks, I wondered the same!
Thank you!
This right here saved me, interacting to keep engagement high. +1
Thanks a lot
Excited to be revisiting this series! Just backed up doom emacs configs and wiped everything clean. Going to try to build my own GNU Emacs config now!
I worked through this setup with you and am liking whats coming out. Thank you so much for the inspiration to do more than just use vanilla like I've been doing. Looking forward to going through the next video.
Glad it worked for you Gordon, have fun with the rest!
I was a Vimmer until a few weeks ago when I saw a video of a guy showing how to render LaTeX formulas in org mode and it really blew my mind. Emacs is crazy powerful.
Vim is great, but Emacs is in its own league!
Thank you for great video!
About auto-starting 'ivy': just change `:config (ivy-mode 1)` by `:init (ivy-mode 1)`.
From doc of use-package:
Use the :init keyword to execute code before a package is loaded.
Similarly, :config can be used to execute code after a package is loaded.
that's the comment i was looking for, ty bro
thanks a lot, it's been a long time since i use emacs and i totally forgot about the use of :init
thanks! used it
thank U very much, looking for this command for a long time
Very clear explanations! Switched over from vim over the last few months with Doom Emacs, but always felt a bit uneasy about having a bunch of preconfigured stuff I might not even know is there. Looking forward to future installations.
It's a lot more fun to make your own configuration, in my opinion. Thanks for watching!
Very helpful video! I've been procrastinating on watching this series because of its length (it seemed daunting), but now that I've actually started watching, time seems to be flying by! Something about the way you teach this stuff makes it all seem very managable. I wish I'd started earlier. Thanks for making this amazing resource!
Hi... This is a great series! How I missed it on my starting learning emacs 10 years ago! Thanks!
This is one of the best instructional videos I've seen on RUclips and is better than some content on premium instructional sites.
I started using emacs a few years ago because of TRAMP but I never really got into tweaking the configuration much. I use Spacemacs with minimal configuration changes. This video series seems as though it was made for me.
It is so useful to see you explain in a quick sidebar the background context that one needs to understand in order to understand what you're configuring.
This is great stuff, thanks for making it and keep them coming. I look forward to watching the rest of the videos in this series.
Thanks so much for the really nice comment!
Very good idea to write the init file from scratch ! I can understand every line of code and know for sure what my Emacs do. Thanks !
Hello Mister, this is a really good series for Emacs learning! I follow your video step by step but come up with a problem. After install ivy, I cannot call counsel and swiper as you did in the movie. After a little search I realise counsel and swiper is however another two libraries. Simply install ivy cannot call them. Reason you can call them is, you are still using your old .emacs.d folder and so counsel is already there. Maybe I am wrong or miss steps from you? Finally, I added a line to my init.el: (use-package counsel). This enables me to use counsel and swiper.
+1
+1
This comment should be higher.
Thanks!
you have to add another use-package swiper and use-package counsel. I think the version of ivy he installed came with both, depends on where you get the 'ivy' package from. www.reddit.com/r/emacs/comments/90hiew/swiper_disappeared/e2qglk7/ this link might help :)
Yeah, I think that is what happened in this case. I missed the fact that I already had the other packages installed through Guix and Emacs picked them up. Bad mistake on my part!
This is amazing stuff. I am on and off emacs. Started 4 years ago, jumped straight into Spacemacs and got lost in layers documentation. Used primarily for note taking with org mode and did couple of scripts to cloud sync the notes across devices. However, never got down to the bare minimals for setup and spacemacs had too much for me.
Loved the fact i sat through this video and got something even with spacemacs-theme. Well done.
I’ve been using VI for 25 years. Barely ever touched EMacs. It’s starting to grow on me after all these years admittedly.
Late to the game, but thanks for this video. Started using Spacemacs (still think it's a great option) but found myself wanting to use Emacs from scratch - including autogen, configure, and make. Really appreciate your video. Thank you!
Thanks for the vid -- good job! In the emacs learning mode. Not 100% but getting there. Your remaining "FromCcratch" will hopefully convince me to switch from my current IDE.
I've started learning about emacs for a year now and decided to create something else to replace the meddly in my init.el and this is a good starting point.
Solution to a (trivial looking back at it) problem that occured to me (building up from scratch):
"wrong type agrument" after calling swiper. You are likely to be missing the counsel package. Try downloading it (and complete other might occurring dependencies) and restart emacs. Worked for me.
For future reference, to bring back processes you suspended using ^Z you can type "fg" (which is the command to bring the process back to the foreground) in the terminal where you suspended them.
Additionally, if emacs was launched from the GUI, you can simply switch to it again e.g. using alt-tab in GNOME
An excellent series, will try to plough through these so I can catch up to the live ones.
Thanks Ben! Next one is on Friday :)
Really nice material and snappy presentation!!
Love Esc instead of C-g, much more natural.
Looking forward to learning lots more.
Thank you!
so instead of 'emacs pinky' you are going to have ESC pinky? cause Caps is already Ctrl, how and where do you map ESC anywhere else?
12:39 (unless dw/is-termux ; my emacs can't interpret this part or any of the dw thing. I know it must be some directory system. Can you explain why it is needed and what should I write there instead? Thanks!
First! Thank you for providing this series. I have found it very useful.
I am currently trying to learn to use and configure Emacs. I will continue to try and learn Emacs.
Please take the following as constructive criticism. It is meant as a RAW perception. An attempt to illustrate how
and why I see learning Emacs as an incredibly daunting task.
Feedback:
This is a hot take from someone that is just now trying to start using Emacs.
First, the phrase using Emacs feels wrong to me. In the process of learning I don't feel Emacs as a noun. More of a verb.
"I'm going to Emacs." Why do I feel this way? Because TRYING to use Emacs is a thing that I do. It is an action, a verb.
I don't feel like I am using Emacs. I feel like Emacs is using me.
You state. "I hope that with this little intro, I have convinced you that writing your own configuration is not that hard."
Well, I didn't get that impression. I got the impression that you copy/pasted from almost random only sources and
even from your own configuration file.
Paraphrasing your demonstration:
It isn't hard to make your own configuration file. Let me show you. Uh, First I'm going to setup thingy. Okay, that is
done. Now I am going to add this thing that I already know about but.. Uh, Let me look up how to configure that.
Hmm, quick online search wasn't right. Didn't help. I will just snag working code from my working configuration.
Hmm, Having some problems. Oh, thank you chat for helping me correct what I have wrong, what I overlooked.
No, I think you eloquently prove that it is in fact only easy if someone holds your hand if you are noob to Emacs.
Do I have Emacs installed? Yep!
Can I use/edit with Emacs? Yes, However not as well as just using Notepad or nano. (Ignoring things like vim and VSCode)
Do I have a desire to learn to use Emacs?
Overwhelmingly yes. I have seen the powers of vim and its limitations. I have seen how Emacs can do all that vim
does and more. Emacs removes many of the restrictions I have bumped into with vim.
Could I use VSCode and other custom editors? Sure. However, I prefer consistency. Constantly changing editors
hinders my workflow. I am strong keyboard user and hate reaching for the mouse to click and drag things.
I prefer to use just one text editor to edit virtually everything. I don't want to be missing features from switching editors.
Sincerely, Lucius L. Hilley III
Around 31 mins -- that statement -- one of the reasons why emacs (and lisps in general) still rock the house after all these years :) Being able to have two different completion frameworks loaded and running in different contexts, without interfering with each other, is still something many different pieces of software cannot claim to have.
I agree, it's pretty awesome!
@@SystemCrafters damn you still check comments. Just started this series so I can learn to configure my Emacs. Good job
Two years later and still so so useful!
Hello all, If you are running issues with downloading melpa on a Debian OS than you might want to try downloading/installing Emacs via source. When I used apt-get method to get emacs I was running into a lot of issues. Someone on discord mentioned it could be related to Debian not being a rolling-release OS however Debian's source is apparently updated a lot so it's like a rolling-release. So downloading/installing it via source fixed that issue & I had fun creating by very first desktop icon which isn't hard :D
quick note: if your icons are missing after installing doom-modeline just do:
M-x all-the-icons-install-fonts
P.S. i luv ur videos (L:
Im total noob in emacs (2nd day of using it), but i think with your help i got used to emacs controls and learned some other essential emacs things pretty quickly (ofc i could just read the documentation, but reading is boring). I dont know if ill continue to use emacs in a future, but for now i see a lot of potential for better programming workflow :D
It's also worth pointing out to the windows users that you need to right-click each of the downloaded font files and click install, that's not immediately obvious to anyone who hasn't installed fonts on windows before.
That was very good, and I worked through it. Thanks. My one criticism is that this is clearly for beginners and they will have been trying to press the M and C keys instead of Alt and Control, getting frustrated and possibly giving up. Fortunately enough, it was the one thing I knew already going into this. I'll carry on with the course. Cheers.
20:10 use-package is not a package manager! Although use-package does have the useful capability to interface with package managers (see below), its primary purpose is for the configuration and loading of packages.
From github page: "The use-package macro allows you to isolate package configuration in your .emacs file in a way that is both performance-oriented and, well, tidy. I created it because I have over 80 packages that I use in Emacs, and things were getting difficult to manage. Yet with this utility my total load time is around 2 seconds, with no loss of functionality!"
18:57 If you instead (setq visible-bell f) it will not load the theme. Is that because load-theme cannot load a new theme if a theme already is loaded (which it does because it sets the visible-bell)? Edit: Thank you very much also!
Thanks for sharing your knowledge. Really appreciate it.
Thank you sir, your videos are so helpful, I just started using the org-mode - so this is all a great help to me!!! Thanks a million!!!
Glad to hear it!
Can't find the video where you talk about emacs transparency, so I'm writing it here. I've found the way to make transparent background, whith non-transparent text. It looks smth like this
(set-frame-parameter (selected-frame) 'alpha '(80 . 80))
(add-to-list 'default-frame-alist '(alpha . (80 . 80)))
(set-face-attribute 'default nil :background "black" :foreground "white" :font "Hack Nerd Font" :height 110)
One can customize it to he's own taste, important thing is in setting :background "black" and :foreground "white" in face-attribute (for dark theme) and :background "white" :foreground "black" for the light one
Interesting! Do you actually see the black background of the text over the transparent background?
@@SystemCrafters No, everything seems to be fine. The bg gets dark and semi-transparent, the text stays opaque
Inspired me finally to get Ivy installed! I tried Helm ages ago and found it too heavyweight, then forgot all about it. Now I've got use-package, Ivy, Diminish, and Ripgrep going, and am warily eyeing Projectile...
This playlist is amazing!
I'm a long time Vim user who discovered org-mode about a year ago and I've been using Spacemacs since then (honestly don't know how I lived without org-mode until now).
Spacemacs is excellent, and I probably would never have started using Emacs without it, as configuring Emacs to resemble something "modern" is daunting for a new user. But now that I'm learning more and more about Emacs I'm starting to butt heads with Spacemacs. It also hinders learning Emacs, in my opinion, because it's hard to tell what is Emacs and what is Spacemacs customisation.
I think it's time to start my own Emacs config.
These videos starting an Emacs config from scratch are exactly what I needed right now.
So thanks!
Really awesome to hear that!
Very good presentation! Please consider lsp for the next one.
Thanks! I'll definitely cover LSP in a future stream, it's pretty central to my work life. I think we'll have some more work to do on fundamental Emacs config before we get there :)
The way you described the hypothetical noob experience was exactly like mine! 😂
10:00 I feel the pain the introductory white screen causes. Please, would you consider making an ultraminimal vetsion of this video?
Having a straight path to go along plus using emacs alone would be the premise; Like, not using a bunch of templates/snippets but instead do every tweak on its own and in emacs alone?
Emacs have every thing that vim can only dream of, I mean vim is awesome text editor but emacs are way more than that, thank for nice video
With a courageos M-x all-the-icons-install-fonts , the fonts are there too.
doom-modeline dos not seem to wark properly on GNU emacs 27 in debian. There is no icone and look worst than the default modeline. I tried (use-package all-the-icons ...) vith no success for icones. And thanks for the awsome video.
As a Neovim user I decided to start learning Emacs today, it will be interesting
Hey how is your experience with emacs now
@lana69420 i couldnt get used to e-lisp (i have no experience with functional programming, i didnt have time to learn it, and i ended up getting used to lua in neovim), so i set emacs aside. this was also largely because the neovim environment is very good and meets all my needs.
@SystemCrafters
How did you get Fira Code Retina to work without any issues? I have it installed on my machine and tried this config on both emacs 26.3 and 27.1 and both of them say: Font not available. Any tips?
37:00 Fuzzy Match GIT Commands! Very Nice.
I am getting this error Package 'use-package-' is unavailable. I have used the exact same config u used. Can you please help me? BTW, Awesome vid!
Just found your channel. Super helpful, thank you so much.
Counsel is missing; so you can install it just by (use-package counsel) and M-x eval-buffers
thank you, some of it wasn't working for me because of that.
FYI orgmode's own elpa repo is depreciated since org-mode is already in. Also, if gnu's archive is failing to download, you might need to put the package-initialize command _before_ package-archives rather than after. (I can't put the actual URLs in, YT deletes the comments...)
How did you installed Emacs to you OS? Do you use GnuTLS inside Emacs like "REST client" ?
How do I make sure emacs uses that modified init file every time it starts up when I, for instance, click the icon, instead of having to use emacs -q -load init.el every time?
You don't need to use `emacs -q -load init.el`, I was just using that to keep my own Emacs configuration from being loaded. If you store your init.el file under ~/.emacs.d/init.el, Emacs will pick it up automatically when you start it.
@@SystemCrafters For some reason my emacs wasn't doing that automatically. I ended up modifying the .emacs file and it worked but I don't know why lol
Do you know why it wasn't automatically picking up the init file in .emacs.d?
@@definitelynotofficial7350 I think the `.emacs` file is the original config file but it also checks for `.emacs.d/init.el` along with other files. I am guessing that `.emacs` is first in priority of checking and won't look again for another config file. So you just need one of the files, either `.emacs` or `.emacs.d/inti.el` but not both.
Did anyone had a problem with fetching the ivy package from melpa? In my case it said that the package was not found on melpa so I decided to manually install the ivy package myself following the instructions on ivy’s git repo and it works
You probably need to run 'package-refresh-contents' and then try installing it again. This is a common problem with package.el!
@@SystemCrafters Thank you for the help. When I execute the expression I get an error stating that my public key is outdated in the ~/.emacs.d/elpa/gnupg I’ve tried to update the key using every method I could find (like running the gnu-keyring-update) but non were successful. Do you personally know of a solution for getting the key?
Best solution I found was to update emacs to version 27
Thanks for this, great video! Also you have a great name 😁
I got stuck for a while trying to figure out how to nav up a directory level in counsel-find-file coming from Helm. If you also want C-l to work like it does in helm, what you need to set is counsel-up-directory in the counsel-find-file-map map. Hope this helps someone!
I had to add (use-package counsel) to my init.el file to get swiper and counsel to work. Anyone else have this problem?
Yea me too.
Have you looked at vertico in place of helm or ivy?
Emacs noob here :)
Im on a mac and had to add a few if conditions for a few of the modes as I was geting a void error while evaluating the buffer. Is that intended or did I do something wrong?
(if (fboundp 'scroll-bar-mode) (scroll-bar-mode -1)) ; Disable visible scrollbar
(if (fboundp 'tool-bar-mode) (tool-bar-mode -1)) ; Disable the toolbar
(tooltip-mode -1) ; Disable tooltips
(if (fboundp 'set-fringe-mode) (set-fringe-mode -1)); Give some breathing room
Love this thank you for making this valuable content.
thanks for your videos I'm trying to learn emacs + evil to code in clojure/js/elm and this playlist is really helpful
I'm glad they've been helpful for you!
Hey @SystemCrafters I want to ask is this playlist considered outdated at current timeline or I can still get most of thing about emacs from it.
The choice of Ivy and Counsel in the first couple of streams is out of date (many people use packages centered around Vertico now) but much of the rest of the series is still worthwhile. You should watch it all to get a good sense for how to build your own Emacs config, you can switch packages later
@@SystemCrafters Thanks for the info
I am having the hardest time trying install mpv in emacs. Does anyone know how to do that?
One question that I forget is for this video or the next involves swipe. After a search if I hit escape point returns to top of buffer. I really don't want this. I want it to stay at last search result. How is this achieved? Ah, the TAB works.
My doom-modeline crashes the emacs.
how did you get the om symbol between phantom and runemacs
For me many of these things did not work. 1. The Fringe-Mode has no visible effect (whatever this should be). 2. Your package-archives variable does not work for me. Emacs is unable to download anything from the ELPA archive. I had to use add-to-list instead. 3. The doom-modeline needs the all-the-icons package manually installed and configured before it can be used. And a custom modeline is not really something, that is important for beginners. But thank you very much, anyway for that video.
@System Crafters: I have been puzzled by your having to choose huge font sizes. My first guess is emacs is taking incorrect DPI measurements from somewhere. I have read the emacs docs and it says the font height works in 1/10th of a point increments. I have emacs 27.1 too and following this tutorial the comfortable height setting for me is 85, which is what you'd expect from an 8.5 point font size. Have you tried looking elsewhere for the issue, for example the M-x display-monitor-attributes-list function to see if it's misreading your screen size?
It might just be the DPI setting I'm using in my desktop environment, the values I use work for me so I haven't bothered investigating further
@@SystemCrafters Maybe something like this to express font with point size instead of pixels (set-face-attribute 'default nil :font "Fira Code Retina-16")
Great presentation, efficient delivery with good pace. Thank you. A question: you are demonstrating use of company mode buit it is not in your init.el and so not installed on my system (I started from scratch). Did I miss something? Was it supposed to appear with the ivy configuration we have here? Or should it have a separate use-package entry, to be installed?
Thank you! Usually I'm using Ivy for completions in buffers and it has a pop-up that looks similar to company-mode, maybe that's what you saw? Sometimes Emacs packages will install company-mode as a dependency, so that's why it could show up without explicitly installing it. I cover company-mode setup in part 8 of it helps!
i have been playing movement shooters for years i got emacs pinky and i'm just learning it
if you switch ctrl with capslock, is it possible to switch so capslock is on esc, and ctrl on capslock and esc on ctrl.
How would Emacs compare with visual studio in terms of debugging C programs?
When I do m-x eval-bufferm or C-x C-e, I'm keeping getting "(custom-set-variables
;; custom-set-variables was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance." appended to the end of my init.el file. Anyone else have this problem? I'm using Emacs on Windows
Hey, I am following this tutorial and it is going smoothly except when I put doom modeline command , a emacs abort dialog comes up everytime saying a fatal error has occured. I have done everything in this tutorial except the modeline. Can anyone tell whats the problem? Also I am using a windows
From a comment I made here 6 months ago:
Very late addition. The reason your doom-modeline-height gives ' nil' back is because, if your font characters are too large the modeline height will default to the size of the characters. You need to set a face attribute with (set-face-attribute 'mode-line nil :height 120) and change the height to something smaller than default, this then should allow the modeline height to shrink.
How do you achieve transparent doom mode line?
Hey thanks for the Tutorial,
I am new to emacs and i have one question , when sometimes i use use-pakage , i got an autogenerated Custom code , is there a way to automate the process so whenever there is some autogenerated stuff it goes directly to some file x.
Thanks
Have you figured out the cause? I'm having the same problem
What package you use to show folder's icon in dired mode?
I used exactly this configuration but there is no "counsel" in my emacs. What am I missing? :-(
EDIT: I figured it out. I had to run M-x install-package counsel
However, the ivy mode only seems to work for my if I turn it OFF and then on again.
EDIT2: Okay I got it to work now by changing the init.el file. I took the " (ivy-mode 1) " out of the bracket from before and now everything is working as intended.
Just a historical note: Before there were alt keys used as meta keys, there were actually keyboards where it was labelled Meta. I don't trust my memory these days like I used to, so I won't say I saw a keyboard which actually sported the Ctrl, Shift, Meta, and Alt keys. That picture is way too fuzzy in my head to come right out and say that. I did have one that sported an actual F1-F24. And one that might have had the Meta key to swap to Fn13-24 keys like the Fn button does now. Either way it was WAY too cumbersome But that was early days of PCs and OS's when you could still (rarely) see the HUGE sized floppy disks in use. (My ex wife used some of those before her boss bought her a PC to use instead.)
Hi! Really love your channel. If I could, I would subscribe multiple times.
One question - how do you setup emacs so that it has this nice looking transparent frame?
Do these instructions still work for Mac or Windows or is it Linux exclusive?
if you do C-z in a terminal and want to get back type fg and enter that send the program to the foreground
Very late addition. The reason your doom-modeline-height gives ' nil' back is because, if your font characters are too large the modeline height will default to the size of the characters. You need to set a face attribute with (set-face-attribute 'mode-line nil :height 120) and change the height to something smaller than default, this then should allow the modeline height to shrink.
Thank you, David.
Hello David.
I'm not a guy who comments frequently (if I ever commented at all) but I have to comment this one.
I started using emacs a couple of months, after a few years of Vim, mainly because curiosity for all the environment features emacs provide. I went with doom emacs to dive into it and see all the potencial, and I'm quite please for now. But as a curious person, I want to know how it works in detail to make it fit all my workflow.
I found you for the magit video, as I was trying to use, and as I was thinking on creating a config from scratch, I am pretty sure that following your lessons it will help me a lot.
So please continue with these videos, easy to view and understand, and very helpfull.
Thank you very much.
Thanks a lot for your comment! I love making these videos, I don't think I'll stop anytime soon :) Please feel free to leave comments with suggestions if there are other things you want to learn about in Emacs that haven't been covered by my existing videos!
@@SystemCrafters Don't know if it is a difficult thing, because I heard about it and I want to try it but I still had not the time, is the remote file editor with Tramp or any other package.
I will definitely cover TRAMP at some point!
im still in the process of installing, but can i use these tutorials if i have spacemacs instead?
You might be able to benefit from some of them, but Spacemacs already has a lot of the same things configured already so these videos might not be quite as useful. Still, can't hurt to watch them to learn more about Emacs!
What is the init.el~ file? I noticed it during your magit demo, and I see it in my directory too. I'm guessing it's some sort of file that was created by emacs, but I'm not sure of its use/purpose. While following along through this video I also saw some temporary looking files in the .emacs.d directory, such as #init.el# and #init.el~#. Could you shine a light on the existence of these files? I couldn't find much searching online.
The tilde files are backup files.
You are my new Luke Smith!
The init.el for this tutorial failed in 2 different VMs running emacs 26.1. Do I need to run 27?
Where did it fail? Can you paste the error?
@@SystemCrafters
error: Package ‘use-package-’ is unavailable
To ensure normal operation, you should investigate and remove the
cause of the error in your initialization file. Start Emacs with
the ‘--debug-init’ option to view a complete error backtrace.
with debugger
Debugger entered--Lisp error: (error "Package ‘use-package-’ is unavailable")
signal(error ("Package ‘use-package-’ is unavailable"))
error("Package `%s-%s' is unavailable" use-package "")
package-compute-transaction(nil ((use-package)))
package-install(use-package)
(if (package-installed-p 'use-package) nil (package-install 'use-package))
eval-buffer(# nil "/home/michael/.emacs" nil t) ; Reading at buffer position 988
load-with-code-conversion("/home/michael/.emacs" "/home/michael/.emacs" t t)
load("~/.emacs" t t)
#f(compiled-function () #)()
command-line()
normal-top-level()
Nice video... just one doubt. Did you setup counsel in this video?
Where did he setup counsel? It didn't get setup for me
Thanks Kavin! I did install and configure Counsel but I don't think I ran the command that automatically rebinds all of the keys to use counsel commands. You can try adding (counsel-mode) to the use-package config for counsel or follow the documentation here:
oremacs.com/swiper/#global-key-bindings
Let me know if you still have trouble after that!
@@SystemCrafters This is one of the quickest replies I have seen. Thanks. Will try and let you know 😀
@@SystemCrafters It worked! Thanks a lot
(use-package counsel
:config
(counsel-mode 1))
Awesome, glad to hear it worked!
When i save the init.el with config and close, allways when i open again starts with vanilla emacs.
If you're editing the file in .config, make sure there isn't an .emacsd directory or similar in your home. IIRC, Emacs will prefer loading that over the other location.
do you know if this Tutorial is also applicable for the windows version of emacs?
It is.
I can feel your pail living in light mode
That's why I have set everything to dark mode
Great video. Subscribed!
Thanks Muhammed!
Hi! I'm getting error: Package "use-package-" is unavailable. On Lubuntu 20.04, Emacs 27.1.
Hi! Can you paste the Emacs Lisp code where this error occurs?
@@SystemCrafters Hi! I fixed it. Well it just started working. No idea why.
I'm glad it's working for you now!
@@przemeks9121 but mine isn't fixed and I don't know what to do :(
Amazing video! A little bigger font would help a lot on mobile. Thank you :-)
agree. maybe setting the monitor resolution down might solve the issue for both emacs (demonstration and native OS)
Are going to achieve this setup by the end of this series? Because let me tell ya, this is an awesome workflow! I'll keep on configuring my Emacs 'cause I'm a noob
Yep! The goal is to gradually show you how to build a setup like mine and then take it even further. It'll be a lot of fun!
can you use screenkey please
I'm using doom emaca right now. Is there any way to try out writing emacs from scratch without messing with my existing doom config?
Back it up on GitHub
Then delete and start from scratch
If you mess up, just reinstall doomacs and add your config
ivy doesn't install correctly on my system (emacs 27.1). It fails to install counsel and swiper.
same issue here :/
I think they are different packages in Melpa now, melpa.org/#/counsel
Hi James, good morning!
I like the fact that you are showing how to set up emacs from scratch but I do not think this is beginner friendly. You assume that some of the commands are already known but I had to spent quite some time just trying to figure out how to actually type out the commands you use like M-x Nx N-f, my screens in scratch buffer would keep getting messed up etc. I finally managed to evaluate the load-theme expression but it doesn't look the same as yours.
This was my first Emacs video so I wasn't well prepared for everything from a beginner's perspective. Check out my other video The Absolute Beginners Guide to Emacs, it might help
With juts ivy ..swiper is not installed
Yep, this is a mistake I made in that video, swiper and counsel need to be installed also. Sorry about that!
Thank you for a nice discussion.
Not getting any counsel results for some reason. Everything else seem to be working fine though.