GithubHelp home page GithubHelp logo

schaary / doom-emacs-cheat-sheet Goto Github PK

View Code? Open in Web Editor NEW

This project forked from niyumard/doom-emacs-cheat-sheet

0.0 1.0 0.0 44 KB

This is a cheat sheet for doom emacs, mostly from the guides I see online.

doom-emacs-cheat-sheet's Introduction

The Ultimate Doom Emacs Cheatsheet

Command Abbreviations

  • C - “Control” key
  • M - “M” or “option/alt” key
  • s - “Command” key
  • SPC - “Space” key

General

  • SPC f s for saving the current file
  • SPC : for entering a command
  • SPC q q to close Emacs
  • SPC f D to delete this file

Projects with Projectile

  • SPC p p to open a project
  • SPC SPC to open a file in a project
  • SPC o p to open the file explorer
  • SPC o e to open the shell in fullscreen
  • SPC o E to open the shell in a popup window
  • SPC f r recently visited files
  • SPC f R recently visited files in a project
  • M-x projectile-discover-projects-in-directory to find projects within given folder using Projectile
  • M-x projectile-discover-projects-in-search-path to find projects in the folder defined by the projectile-project-search-path variable using Projectile

Dired

  • Dired (Directory Editor) is how you interfaces with a directory
  • Press C-x d to open dired.
  • Use RET to go to a folder or open a file.
  • Use - for going one folder back
  • Use + for creating a new directory
  • Use d to mark the files for deletion, press x to delete.
  • Use M to change permissions
  • Use o to sort by modes.
  • Use O to change the owner.
  • Use m to mark and u to unmark files or directories.
  • U to unselect all
  • Use t to invert the selection.
  • t to switch between files and directories
  • Use C to copy.
  • Use R to move.
  • Move with h, j, k, l
  • toggle ( for simple view
  • SPC . to create or find a file
  • * to select all directories.
  • C copy to another window
  • R move to another window
  • dired-do-what-i-mean-target set to true
  • i to edit file/dir name

Buffers, Windows and Basic Navigation

  • Buffers are a special concept in emacs they can be terminals, files, directories, etc
  • SPC b b to open another buffer
    • workspace buffer
  • SPC b B you can see all the buffer
  • SPC , to switch buffers (its an alias)
  • SPC SHIFT , to switch to all buffers
  • SPC b X You can create a scratch buffer
  • SPC b s to save and name it
  • CTRL w v window split vertically
  • CTRL w s window split horizonal
  • CTRL w w to switch windows
  • You can use the vim motion keys to navigate between open windows
  • Windows are panes in your screen
  • CTLR + = to make the windows equal size

Installing Packages with org-super-agenda as an example

  • SPC f p to open the config.
  • To add a package, add the package to .doom.d/package.el
  • Then close and doom refresh
  • Then go to .doom.d/config.el to configure the package
  • def-package! is a macro you can use to configure packages
    • space h help you can look up method man pages
    • :init is used for setting the package up
    • :config to set configuration after the package has been initialized
    • :after lets you set which package it should load after
  • you can use :after! to configure packages that are already there

Quick, horizontal movements with evil-snipe

Inine navigation

  • f and then the letter you want to navigate to.
    • , will go backward
    • ; will go forward after that “find”
  • t to find and move cursor to the charachter before what you’ve searched.
  • v puts you in visual mode. You can select text by with v t some-char-you-navigate-to or v f some-char-you-navigate-to
  • ; to jump to the next find
  • , to jump to the previous one
  • s to snipe

Long distance navigation inside the file

  • Evil-snipe lets you go to all the occuranses in your document
  • g s SPC to use avy and going to a certain word in file.
  • t is the same thing except for a character you want to jump to before the one you insert
  • s to do a double character search
  • Evil-snipe will remember your last search so , and ; will navigate
  • F or T to go backwards
  • g s SPC and then select the letter that avy gives you to navigate to that spot
    • These letters are on your home row so they are easy to click
  • SPC h v for variable, to set the avy variable to search all open windows
    • avy-all-windows lets you search in all windows open.
  • you can remove a word with g s SPC select-one-letter x select-the-removal-spot
    • you can use X to stay in your original spot of search
  • you can go g s space select-one-letter i select-the-correction-spot to correct the spelling of the search
    • Install ispell on your OS first
  • You can yank a word from one place to another with g s SPC select-one-letter y select-the-correction-spot-to-paste
  • Use t to “teleport” the word from one place to another g s SPC select-one-letter t select-the-correction-spot-to-teleport

Multiple cursor in Emacs with Evil-multiedit

  • Make selections and then edit those selections interactively
  • M d will select the current word, and again will find another occurance
  • M D will find the occurence upward
  • You can use a visual selection to select multiple words.
  • R will select all occurances
  • CTRL n for next selection CTRL p for previous
  • Exclude matches with RET
  • You can make an edit and the changes will be reflected in all the selection

Org Mode

Basics

  • Org mode gives you structure to your document
  • * for a h1 ** for an h2 and so on
  • you can TAB a section to fold a subtree (hide it)
  • you can use SHIFT TAB to cycle through folded states
  • CTRL return to create a headline of the same type
  • M arrow up lets you shift the position of the section
  • M h promotes a headline to the next level
  • M l demotes
  • you can create lists
    1. onw
    2. 2
    3. wooo
    4. 3

Links, Hyperlinks and more

  • SPC m l to add a link to an org page
  • You can add :: to specify a heading or a line number
  • You can paste http links as well
  • You can “link” some text with specific code SPC m l elisp: (+ 2 2) when you click the link, emacs will evaluate the expression
  • Show My Agenda
  • List Files in directory

Defining custoom Link Types

Linking to words & Bookmarks

  • SPC n l stores a link to a particular headline

Code Snippets & Babel

  • SPC i s for inserting code snippets
    • Example:
      (+ 2 3 4 5)
              
  • C-c C-c to execute the code.
  • Results will show up in a ##+RESULTS header
  • This feature is called Babel
  • One snippet can consume the output of another snippet

Task Management

  • Create a task by prefixing any heading with TODO
  • DONE means the task is done
  • You can create your custom key words by changing this variable: org-todo-keywords
    • remember you can get to your variables through SPC h v (M-x counsel-describe-variable)
    • These values are already set in Doom:
         ((sequence "TODO(t)" "PROJ(p)" "STRT(s)" "WAIT(w)" "HOLD(h)" "|" "DONE(d)" "KILL(k)")
      (sequence "[ ](T)" "[-](S)" "[?](W)" "|" "[X](D)"))
              
  • SPC m t to change a status of a todo
  • SHIFT left and SHIFT right can be used to change the status of a todo as well.
  • If you finish a task with a command, org mode will add a date that you “closed” the task.
  • SPC o a t to open the agenda -> todo list
  • q to quit
  • org-agenda-files is a variable you can set to filter which files agenda searches for todos in.

Priorities for Tasks

  • SHIFT up and SHIFT down will toggle the priority of tasks
  • org-fancy-priorities gives you fancy looking priorities

Marking Tasks with Tags

  • Tags can be attached to any headlines
  • SPC m q to tag a headline
  • Example:
    • TODO play more games :fun:
  • Tags are hierarchical so nested headings will be tagged with the parent header tag
  • org-tag-sparce-tree will search for headings that only have a specific tag

Lists

  • Two types of lists, ordered and unordered lists
    • SHIFT right and SHIFT left can be used to change the type of lists.
  • You can also change an unorded list by changing the first item to 1. and then typing C-c C-c and vice verca.

Checkboxes

  • [ ] This is still todo
  • [-] This is in progress
  • [x] This is a done task

You can see how many are done with a “cookie” [1/2]

  • [-] Task 1
  • [x] Task 2
  • You can do this by adding [/] to the heading and pressing C-c C-c
  • You can’t assign a tag or a priority

Magit

  • magit is configured for you
  • SPC g g to show Magit status Page
  • most commands are done from the status page
  • press ? to see what you can do
  • git add -p lets you stage in hunks
  • Open and close with the TAB
  • Open diff view for a file with TAB
  • s to stage a change
  • u to undo a change
  • c to commit
  • b s for branch and spinoff to create another branch, rewinding the commits you made to master
  • b b to switch branches

Git Commit Flow in More Detail

  • t t to create a tag, default place is the commit you are currently selecting
  • V to select a change in a diff and x to discard that change.
  • s to stage
  • c to commit, you can q to quit the commit screen
  • P to push and then p to your remote or u to a another remote

Magit with Forge for Issuing Pull Requests - Emacs

  • Forge is installed in emacs doom
  • @ for forge
  • Set up forge with M x forge-pull
    • the first time you will get a token from github
  • @ c p to create a pull request with forge
    • select the base branch
    • then select the target branch
    • then provide a short description
    • CTRL c CTRL c to finish the pull request
  • Now there will be a pull requests tab

Terminal

  • Set up vterm in your init.el file.
  • SPC o T for opening vterm

File Tree

  • Set up neotree in your init.el file.
  • SPC o p for neotree

Others

  • C-c C-z to insert a note for a heading in org mode.
  • Note taken on [2020-12-18 Fri 21:52]
    Like this!
  • C-c C-c to insert a tag for a heading in org mode.

Capturing

  • SPC X to capture (the new thing gets caputured to a single file but that’s fine since we can easily refile it.)
  • SPC m r r to refile

Org Roam

Tags

  • SPC m m t to put roam tags on an org file.

Sources

What to learn [0/12]

  • [ ] Org-journal
  • [ ] Dragndrop
  • [ ] present
  • [ ] pretty
  • [ ] org-roam
  • [ ] org-brain
  • [ ] abbrev-mode
  • [ ] Deft
  • [ ] Org-super-agenda
  • [ ] doct (Declarative Org Capture Templates)
  • [ ] graphviz-dot-mode

doom-emacs-cheat-sheet's People

Contributors

niyumard avatar

Watchers

 avatar

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.