Giter Site home page Giter Site logo

doomemacs / doomemacs Goto Github PK

View Code? Open in Web Editor NEW
18.6K 238.0 3.0K 30.55 MB

An Emacs framework for the stubborn martian hacker

License: MIT License

Emacs Lisp 95.76% JavaScript 0.02% PHP 0.01% Ruby 0.01% HTML 0.03% Go 0.01% Rust 0.01% Shell 0.19% Batchfile 0.01% YASnippet 3.78% Nix 0.20%
emacs vim emacs-lisp emacs-configuration evil doom-emacs

doomemacs's Introduction

Doom Emacs

InstallDocumentationFAQScreenshotsContribute

Made with Doom Emacs Supports Emacs 27.1–29.3 Latest commit Build status: master Discord Server Discourse server

Doom Emacs Screenshot


Table of Contents

Introduction

It is a story as old as time. A stubborn, shell-dwelling, and melodramatic vimmer—envious of the features of modern text editors—spirals into despair before he succumbs to the dark side. This is his config.

Doom is a configuration framework for GNU Emacs tailored for Emacs bankruptcy veterans who want less framework in their frameworks, a modicum of stability (and reproducibility) from their package manager, and the performance of a hand rolled config (or better). It can be a foundation for your own config or a resource for Emacs enthusiasts to learn more about our favorite operating system.

Its design is guided by these mantras:

  • Gotta go fast. Startup and run-time performance are priorities. Doom goes beyond by modifying packages to be snappier and load lazier.
  • Close to metal. There's less between you and vanilla Emacs by design. That's less to grok and less to work around when you tinker. Internals ought to be written as if reading them were part of Doom's UX, and it is!
  • Opinionated, but not stubborn. Doom is about reasonable defaults and curated opinions, but use as little or as much of it as you like.
  • Your system, your rules. You know better. At least, Doom hopes so! It won't automatically install system dependencies (and will force plugins not to either). Rely on doom doctor to tell you what's missing.
  • Nix/Guix is a great idea! The Emacs ecosystem is temperamental. Things break and they break often. Disaster recovery should be a priority! Doom's package management should be declarative and your private config reproducible, and comes with a means to roll back releases and updates (still a WIP).

Check out the FAQ for answers to common questions about the project.

Features

  • Minimalistic good looks inspired by modern editors.
  • Curated and sane defaults for many packages, (major) OSes, and Emacs itself.
  • A modular organizational structure for separating concerns in your config.
  • A standard library designed to simplify your elisp bike shedding.
  • A declarative package management system (powered by straight.el) with a command line interface. Install packages from anywhere, not just (M)ELPA, and pin them to any commit.
  • Optional vim emulation powered by evil-mode, including ports of popular vim plugins like vim-sneak, vim-easymotion, vim-unimpaired and more!
  • Opt-in LSP integration for many languages, using lsp-mode or eglot
  • Support for many programming languages. Includes syntax highlighting, linters/checker integration, inline code evaluation, code completion (where possible), REPLs, documentation lookups, snippets, and more!
  • Support for many tools, like docker, pass, ansible, terraform, and more.
  • A Spacemacs-esque keybinding scheme, centered around leader and localleader prefix keys (SPC and SPCm for evil users, C-c and C-c l for vanilla users).
  • A rule-based popup manager to control how temporary buffers are displayed (and disposed of).
  • Per-file indentation style detection and editorconfig integration. Let someone else argue about tabs vs spaces.
  • Project-management tools and framework-specific minor modes with their own snippets libraries.
  • Project search (and replace) utilities, powered by ripgrep and ivy or helm.
  • Isolated and persistent workspaces (also substitutes for vim tabs).
  • Support for Chinese and Japanese input systems.
  • Save a snapshot of your shell environment to a file for Emacs to load at startup. No more struggling to get Emacs to inherit your PATH, among other things.

Prerequisites

  • Git 2.23+
  • Emacs 27.1–29.3 (Recommended: 29.3 + native-comp)
  • ripgrep 11.0+
  • GNU find
  • OPTIONAL: fd 7.3.0+ (improves file indexing performance for some commands)

Warning

Unstable and pre-release builds of Emacs -- which end in .50, .60, or .9X (e.g. 28.1.91) -- are not officially supported. There is some effort to support Emacs HEAD, however. Follow this Discourse post for details.

Important

Doom is comprised of ~150 optional modules, some of which may have additional dependencies. Visit their documentation or run bin/doom doctor to check for any that you may have missed.

Install

git clone --depth 1 https://github.com/doomemacs/doomemacs ~/.config/emacs
~/.config/emacs/bin/doom install

Then read our Getting Started guide to be walked through installing, configuring and maintaining Doom Emacs.

It's a good idea to add ~/.config/emacs/bin to your PATH! Other bin/doom commands you should know about:

  • doom sync to synchronize your private config with Doom by installing missing packages, removing orphaned packages, and regenerating caches. Run this whenever you modify your private init.el or packages.el, or install/remove an Emacs package through your OS package manager (e.g. mu4e or agda).
  • doom upgrade to update Doom to the latest release & all installed packages.
  • doom doctor to diagnose common issues with your system and config.
  • doom env to dump a snapshot of your shell environment to a file that Doom will load at startup. This allows Emacs to inherit your PATH, among other things.

Roadmap

Doom is an active and ongoing project. To make that development more transparent, its roadmap (and other concerns) are published across three github project boards and a newsletter:

  • Development Roadmap: roughly outlines our goals between release milestones and their progress.
  • Plugins under review: lists plugins we are watching and considering for inclusion, and what their status for inclusion is. Please consult this list before requesting new packages/features.
  • Upstream bugs: lists issues that originate from elsewhere, and whether or not we have local workarounds or temporary fixes for them.
  • Doom's newsletter (not finished) will contain changelogs in between releases.

Getting help

Emacs is no journey of a mere thousand miles. You will run into problems and mysterious errors. When you do, here are some places you can look for help:

  • Our documentation covers many use cases.
  • With Emacs built-in help system documentation is a keystroke away:
    • For functions: SPC h f or C-h f
    • For variables: SPC h v or C-h v
    • For a keybind: SPC h k or C-h k
    • To search available keybinds: SPC h b b or C-h b b
  • Run bin/doom doctor to detect common issues with your development environment and private config.
  • Check out the FAQ or Discourse FAQs, in case your question has already been answered.
  • Search Doom's issue tracker in case your issue was already reported.
  • Hop on our Discord server; it's active and friendly! Keep an eye on the #announcements channel, where I announce breaking updates and releases.

Contribute

PRs Welcome Elisp styleguide Donate on liberapay Donate on paypal

Doom is a labor of love and incurable madness, but I'm only one guy. Doom wouldn't be where it is today without your help. I welcome contributions of any kind!

  • I ❤️ pull requests and bug reports (see the Contributing Guidelines)!
  • Don't hesitate to tell me my Elisp-fu sucks, but please tell me why.
  • Hop on our Discord server and say hi! Help others, hang out or talk to me about Emacs, gamedev, programming, physics, pixel art, anime, gaming -- anything you like. Nourish this lonely soul.
  • If you'd like to support my work financially, buy me a drink through liberapay or paypal. My work contends with studies, adventures in indie gamedev and freelance work. Donations help me allocate more time to my Emacs and OSS capers.

doomemacs's People

Contributors

ar1a avatar bennyandresen avatar br1ght0ne avatar daanturo avatar darth10 avatar dsdshcym avatar edmundmiller avatar edwintorok avatar elken avatar ericdallo avatar flatwhatson avatar fosskers avatar fuxialexander avatar gagbo avatar gilbertw1 avatar hlissner avatar hpfr avatar iyefrat avatar jeetelongname avatar jsravn avatar lemonbreezes avatar patrl avatar rbckmnn avatar rgrinberg avatar rushsteve1 avatar seanfarley avatar sei40kr avatar tecosaur avatar undeadkernel avatar ymarco avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

doomemacs's Issues

How to add extend the functionality

I know it's a bit silly to post the question here, but I would like to know how to extend the feature of the existing modules, I understood the use of map! macro, it saves a lot of headaches, its brilliant.
And also the package! is also useful for installing any packages and keeping everything neat.

But I've not been able to figure out how to load the package using (def-package!) macro. I know it's essentially an alias to the use-package, but then too using similar example to what is shown in the use-package repo. I can't get it to work.

I've been trying to add ace-jump-mode to the evil feature module, I've added package! ace-jump-mode in the packages.el of evil, and in the config.el I've added (def-package! ace-jump-mode), then too ace-jump package isn't getting loaded. Is there anything else that I should be doing here? I didn't map any keybindings for this as of now, just trying to figure of using M-x, but can't find ace-jump-mode command itself. Your map! macro rocks. Thanks

Everything but keybinding

Great repo !

How can I use everything in it but the keybinding ?

I tried commenting the :private and evil part init.el but it seems there's still some left.

Tab emulation config ?

Great config and theme.
I'm sorry but I was not able to find in your config the tab emulation part.
Where can I look ?
Thanks

typo in line 195 of core-modeline.el

Hi, I love your mode-line!

When updating my version with the recent changes, I noticed an error that will prevent the modeline from rendering.

On line 195 you have aif but it should be if.

Just wanted to say something.

Hi Henrik,

Just only saying that I found your .emacs-configuration very inspirational, next to this one.

However, I noticed you don't use the server-feature of Emacs. You should definitely give it a try (on Windows it works fine too), it's so convenient. And I've just started reading a few random sections of your config, there's already so many cool snippets I'm definitely studying/stealing.

Thanks for the inspiration, it's appreciated!

make install error

I'm using
GNU Emacs 25.2.1 (x86_64-apple-darwin13.4.0, Carbon Version 157 AppKit 1265.21)

After cloning the repo and running make install I get the following, including with the DEBUG=1 flag.


Symbol's function definition is void: set-charset-priority
make: *** [autoloads] Error 255

Haskell not getting interactive mode

When loading haskell mode it doesn't appear to pull in any minor mode. Every time I hit C-c C-l after Dante starts GHCi I get a look in the help to see how to set up a Haskell interactive mode kind of error.

This has a one line fix (I'm not at my computer now to submit a pull request). Change the final block of modules/lang/haskell/config.el to:

(def-package! dante
  :after haskell-mode
  :config
  (when (executable-find "cabal")
    (add-hook! 'haskell-mode-hook '(flycheck-mode dante-mode)))
    (add-hook 'haskell-mode-hook 'interactive-haskell-mode))

fixes it [although it may not be the best place to put it?]. Unless I'm the only one actually having this problem, in which case just close it down.

Wrong type argument: arryp, nil

Running on latest OS X 10.12, Emacs-plus installed through homebrew, 25.1.1. Using standard init.el.

When I run the make install script, I get the following output:

[...snip...]
Installed company-inf-ruby (ELPA)
Installed yard-mode (ELPA)
Installed ruby-refactor (ELPA)
Installed rspec-mode (ELPA)
Skipped inf-ruby (already installed)
Installed company-restclient (ELPA)
Skipped restclient (already installed)
Installed company-anaconda (ELPA)
Installed pip-requirements (ELPA)
Installed nose (ELPA)
Skipped anaconda-mode (already installed)
Installed phpunit (ELPA)
Installed php-refactor-mode (ELPA)
Installed php-mode (ELPA)
Wrong type argument: arrayp, nil
make: *** [install] Error 255

Any ideas on how to fix this one?

make install fail on ubuntu arm

$ DEBUG=1 make install
Eager macro-expansion failure: (void-function cl-remove-if)
Symbol's function definition is void: cl-remove-if
Makefile:59: recipe for target '.local/autoloads.el' failed
make: *** [.local/autoloads.el] Error 255

$ ls .local/
@odroidc1.home.local packages

$ uname -a
Linux odroidc1 3.10.104-184 #1 SMP PREEMPT Mon Feb 20 06:38:17 UTC 2017 armv7l armv7l armv7l GNU/Linux

$ emacs --version
GNU Emacs 24.5.1
Copyright (C) 2015 Free Software Foundation, Inc.
GNU Emacs comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of Emacs
under the terms of the GNU General Public License.
For more information about these matters, see the file named COPYING.

d$ make -d install
GNU Make 4.1
Built for arm-unknown-linux-gnueabihf
Copyright (C) 1988-2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Reading makefiles...
Reading makefile 'Makefile'...
Updating makefiles....
Considering target file 'Makefile'.
Looking for an implicit rule for 'Makefile'.
Trying pattern rule with stem 'Makefile'.
Trying implicit prerequisite 'Makefile.o'.
Trying pattern rule with stem 'Makefile'.

...... PRUNE .......

Considering target file 'install'.
File 'install' does not exist.
Considering target file 'init.el'.
Finished prerequisites of target file 'init.el'.
No need to remake target 'init.el'.
Considering target file '.local/autoloads.el'.
File '.local/autoloads.el' does not exist.
Finished prerequisites of target file '.local/autoloads.el'.
Must remake target '.local/autoloads.el'.
Putting child 0x5cf18 (.local/autoloads.el) PID 13182 on the chain.
Live child 0x5cf18 (.local/autoloads.el) PID 13182
Eager macro-expansion failure: (void-function cl-remove-if)
Symbol's function definition is void: cl-remove-if
Reaping losing child 0x5cf18 PID 13182
Makefile:59: recipe for target '.local/autoloads.el' failed
make: *** [.local/autoloads.el] Error 255
Removing child 0x5cf18 PID 13182 from chain.

Overriding individual popup settings

Would it be possible to implement some way of overriding elements in shackle-rules created with (set! :popup)? For context, I'm looking to make the popup for Org agenda buffers larger.

It'd be easy to just edit the relevant rule in the base config, but rather than hacking on that, I'm trying to implement my own config entirely through modules/private, so that I don't actually have to fork the repo. Obviously not a huge priority, but any help would be much appreciated. (And if there's already a good way of doing this that I've overlooked, please let me know!)

emacs term support

Hey! Such an awesome work done here!!

I wanted to try the built-in terminal emulator (M-x term) under your config, and I noticed some funny behaviour going on there. Looks like a mix of insert / emacs and evil-normal mode... HJKL do move the cursor around instead of inserting text, while other keys insert text as expected.

In core/core-evil.el, I see evil-set-initial-state to 'emacs' for term-mode, though.

Please, let me know if I missed something.

Thanks again for this amazing work, I got inspired to write and organise my own configuration the same way.


Version info

emacs: GNU Emacs 25.2.2
shell: zsh 5.3.1 (x86_64-apple-darwin16.3.0) -- but I also observe similar symptoms with bash
.emacs.doom@e8438e1

Steps to reproduce:

  • (M-x term)
  • HJKL move the cursor around instead of inserting text.

[QUESTION] will u add which-key support?

hi,

i run into your emacs config and immediately feel impressive with how organised your emacs is. it's inspirational. however im using spacemacs and love SPC key too much to leave it, even though spacemacs feel bloated with many unused packages and slow. i'm wondering if you could add which-key support in have it baked in your map! macro so that i could customised the keybindings based on spacemacs for example from here

tks again.

Indentation "jitter" with plain lists in Org mode

Not sure the best way to describe this, but when typing into an item in a plain list in Org mode, the list item will "jitter", or jump between being indented and not indented. Presumably this has something to do with electric indentation or org-indent-mode?

make: *** [install] Error 255

Cannot open load file: No such file or directory, shackle

This is from a clean install, with the .local directory deleted.

Does magit really work?

After magit was fixed I can now open it ant partially use evil-magit bindings. s -> stage, u -> unstage seem to work, but not the other. When I press c (commit) it says Buffer is read-only: ...magit buffer name.... Any advice?

Error message while switching projects

Hello,

first of all, THANK YOU VERY MUCH for your work, your .emacs.d is one of the bests I have ever seen and I'm already using it (with minor modifications) as my main emacs configuration.

Now, I'm having some problems while doing the 'projectile-switch-project' command. In fact, the project is switched to the selected one, but when the scratch buffer is being openned the message below pops into the Messages buffer.

doom/wg-projectile-switch-project: Symbol’s function definition is void: doom-reload-scratch-buffer

For my setup, I commented the line 16 at core/defuns/defuns-workgroup.el, and that solved the problem for me.

[TAB] Broken in magit?

First of all, what an awesome configuration you've got here! This repo finally convinced me to make the jump from vim to emacs and I'm very impressed so far.

Now, on to the issue. After playing with magit a bit, I realize that TAB to toggle the diff of a file wasn't working. So I did F1 k [TAB] to see what it was mapped to, and it's mapped to doom/evil-matchit. Removing that binding allows magit to work correctly, in that regard. Is there a different, preferred key for that functionality in your set up?

Yasnippet expansion is broken

It seems that the yasnippet expansion is not working as intended.

If I understand correctly, snippet expansion only occurs when some text is selected. If I open an elisp file, for example init.el, type in "def", select that word and then press tab; then an unrelated snippet is expanded.

[v2] loading

Hey there, currently trying out v2 having used v1 for a while and looking forward to the refactoring. I'm just encountering some strange behaviour with Haskell, python and a few other languages. When I open e.g. foo.js it loads the correct mode but it doesn't pick up the mode for .hs, .py, .go etc. Is this because its not meant to work yet?

I've done nothing but pull the latest version of v2, cp init.el and run make - it is the 'vanilla Lissner' edition.

Not sure if this is really an issue or just a question so feel free to close if its not meant to function yet.

make fails

Make command fails with the following error.

Wrote /var/folders/sv/yzk7g2ld3y5_qjxnk_36bj880000gn/T/cask/packages/counsel-css-20160604.2144.el
Dependency counsel-css failed to install: End of file during parsing: /usr/local/Cellar/cask/0.7.4/cask-cli.el
Output:
Saving file /var/folders/sv/yzk7g2ld3y5_qjxnk_36bj880000gn/T/cask/packages/counsel-css-20160604.2144.el...

make: *** [_install] Error 255

Makefile hostname & Emacs hotsname mismatch

I think this problem is rare, but on my machine, the host name obtained by the hostname command line is different from the host name obtained by the (system-name) emacs function.

By default, the hostname command gives a short host name whereas the (system-name) function gives the full DNS host name (<host>.<dns domain>).

I've managed to fix this error simply by adding the -f argument for the hostname command in the CACHE_DIR variable definition of the Makefile

CACHE_DIR="private/cache/`hostname -f`/"

can't install doom in Mac OS

Hi ,

I cloned the repo as instructed by the readme file and when I run make install , I get this error
Symbol's function definition is void: advice-add make: *** [.local/autoloads.el] Error 255

I am running GNU emacs 25.1.

Want any of these as pull requests?

Hey, I've been having a great time building on your config and making it my own. I've made a good number of changes (many extracted from Spacemacs), and I was wondering if you'd like me to create pull requests for any of the following:

  • Evil MC - I liked evil multiedit, but it's nice being able to arbitrarily place cursors. I saw your note about evil-mc not working, but I was able to integrate it just fine
  • Neotree - Automatically hide tree on enter file
  • Neotree - better evil keybindings (h - up tree/collapse, j - down, k - up, l - enter file / expand dir)
  • Gist.el - create gists from region or buffer
  • Large File - Prompt to open large file (size threshold configurable) in read-only fundamental mode for massive perf improvement
  • restclient mode - Super awesome amazing tool for creating rest requests
  • better interactive copy / rename / delete (current and other) file functions
  • winum mode - quick select window by number
  • auto indent on paste
  • jump most recent buffer

I figured I'd just create an issue and see if you were interested in any of these changes before I started creating pull requests. I'll submit bug PR's right away, but I realize many of these are more personal preference. Thanks again for this ... your configs and themes are killer

v2 - feature deps

Messing around with your new v2, love v1. I'm not an evil person, so I removed the evil feature from init.el.

This breaks the conf, as other features take dependencies on this feature. This doesn't feel right, as it should probably go into core if other things take dependency on it.

I know you're in the middle of a re-write, so I was just curious if you planned on doing this, or had any advice to a non-evil user.

thanks!

Receiving dependency errors updating packages

Hi,

I've been getting the following error attempting to update packages (I've seen it with both rust-mode and all-the-icons). My assumption is that it's happening when attempting to update any package the is a dependency of another package.

Error:

Error

I was able to resolve the issue by reverting this commit: 7d7ade8

Thanks!

Just a typo

Hello Henrik!
During the reading I found a small typo - here (filse instead of files).
Thanks for this repository, it's very inspiring.

Missing 'doom-one' after fresh install

Followed your installation process and got some errors while the 'make'-process. The package "emacs-eclim" caused some problems. After commenting the java-modules out of the cask file, the make-command run without an error.

Still i cant start emacs, since i get an error about the missing theme 'dark-one'. And it seems like everything in the init.el depends on it. Am i missing something?

How to use different package-archives address?

I'm using spacemacs now, but I decide to give this repo a try.
The default package-archives address is gnu and melpa.

      '(("gnu"   . "https://elpa.gnu.org/packages/")
        ("melpa" . "https://melpa.org/packages/"))

But unfortunately I have problem to visit the two websites. What should I do to use a different address?

How do you work with checkboxes in Org mode?

Hey, if you don't mind I've got a few quick questions about how you manage your checkboxes (like in TODO.org) in org mode. I really like the setup a lot, and I was wondering a few things:

  1. How do you create sub-lists w/ counts (eg. [6/80]) on the org heading
  2. What keybindings do you use to add new items to the sub lists
  3. Do you have a keybinding for toggling the state of a checkbox

I've tried working with your TODO.org document or creating something similar on my own, but I just can't seem to figure out the keybindings to create / add to / and manipulate your sub lists (items with the + in front) effectively. Thanks in advance!

Harden security

See this blog post.

I've adapted the recommendations for myself (I use Arch) here. That repo isn't Doom-based, but there's nothing specific to my Emacs setup in that commit.

How do you open magit?

I get this error while trying to enable magit:

uniquify-rationalize-file-buffer-names: Wrong type argument: stringp, (" \\*doom\\*")

Any ideas how to fix this?

Thanks!

Periodically missing line numbers

I'm noticing on occasion that some line numbers are missing in some of the buffers I'm working in. It looks like this:

missing-line-numbers

It doesn't seem to be specific to any any modes, although I do seem to notice that it happening more frequently on buffers that have been open for a while. Moving the cursor to the line does not fix the missing line number, however if I edit a line with a missing line number, the number re-appears. Additionally after moving the cursor from the line, all other lines that had a missing line number below it have their line number reappear as well.

Have you experienced this at all? Do you have any pointers on what a likely cause is? So far I haven't had any luck poking around to solve this issue.

Thanks!

weird indentation problem

I noticed a small mistake in your private/bindings.el
;; Temporary escape into emacs mode
[C-escape] 'evil-emacs-state
:n [C-escape] 'evil-normal-state

shouldn't this be like :e [C-escape] 'evil-normal-state, so as to go back to evil mode from emacs state.

The indentation is acting sort of weird, if I manually press TAB then the indention would contain 4 spaces, and if I select say snippets, the indentation would contain 2 spaces, and if I manually open braces, the braces would autamatically get aligned to four spaces, and after opening braces, if press enter, the cursor gets placed inside braces with 2 spaces for indentation.

I'm only trying this in c++ mode, as I only edit cpp files.
Can you please help me with this, btw this is like the best emacs config that I ever found, it loads up very fast, and it looks sick as heck, everything is functional, and I like the way you laid out the map function, it is now super easy to add bindings to anything actually. Thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.