Skip to content

GoPavel/my-spacemacs-config

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Spacemacs-settings

A drawer with my spacemacs configuration: cheat sheets, notes, todos and so on.

Table of content

  • TODOs
  • Cheat sheet
  • Setup hints

TODOs

General

  • [ ] setting up haskell layer
  • [ ] review setting up GPG key
    • add pinentry-start
  • [X] fix rewrite neo-vc-integration (issue)
  • [ ] add hook for tuareg-update && restart-lsp-server
  • [ ] saving several session layouts to quickly resume workspaces after reboot. (maybe it should relay on projectile)
  • [ ] backup: add saving .emaacs.d/.cache/bookmarks
  • [ ] backup: add saving private lines into encrypted patch
  • [ ] backup: add saving/copying private icons

Cheat sheet

Basic

  • M-x command call command by its name
  • C-x k kill buffer
  • M-m w / split window vertically
  • M-m w 0 close window
  • M-m w u undo changing windows (splint, closing buffer, opening another buffer). Sometimes it useful for magit.
  • M-m w left/right move window focus left/right

M-x helm-color

  • C-c n insert color name
  • C-c r insert RGB hex

Org-mode

Working with heading

  • C-c C-t change state
  • C-u C-c C-t change state with a note

Sparse trees

  • C-c \ or C-c / tag to show heading with specific tag
  • org-show-context-detail allows customize how many will be shown for each heading

Super-links

  • C-c s l store link
  • C-c s i insert link
  • C-c s s search heading for link

Syncing with google calendar

  • org-gcal-request-new-token
  • org-gcal-fetch

Distraction free mode (link)

  • org-narrow-to-*
  • C-x n s narrow to subtree

Creating timestamp (link)

  • C-c . insert timestamp
  • C-c C-c normalize timestamp
  • S-UP/DOWN shift a part of the timestamp under cursor

Focus on subtree

  • org-narrow-to-substree (M-RET s n) focus on current heading
  • widen (M-m n w) return back to the file

Setup hints

Emacs server

  • systemctl --user enable emacs
  • systemctl --user start emacs
  • add to .zshrc alias es="emacsclient --tty"
  • (optional) add emacsclient --create-frame %f to /usr/share/application/emacs.desktop I don’t do that because some packages cannot work with multiple clients (neotree, proof-general). Thus in my setup I use emacs server only in the console and open different projects in separated desktop windows. Also open server accumulate too many open buffers that disturb navigation by the M-m b b stroke.
  • setup initial-choice-buffer (doesn’t work in master)

Neotree

  • install fonts M-x all-the-icons-install-fonts
  • added hook in user-conifg for sustaining state of variables neo-vs-integration (maybe it’ll redundant in future)

Private Layers

Lean

FStar

Org-roam

BAD:

  • several profiles is not working properly
  • showing backlinks work not so smooth and storing in db (this can be solved by calling org-super-links-convert-to-super after inserting link)

GOOD:

  • fast finding nodes
  • nice ui graph

Notes

Keybinding convention

In emacs one command can be summoned in a lot of ways. For example, org-capture:

  • M-m C c is global binding that came from mnemonic “*C*apture -> org-*c*capture”
  • M-m a o c is global binding that came from “Applications -> org-mode -> org-capture”
  • M-RET c is in-active-org-file binding for faster access
  • M-m m c is in-active-major-mode binding

So now for me it’s a bit clear and will try to keep it in mind for new commands

My Clock workflow

  • org-mru-clock package
  • CLOCKED view in agenda (l binding)

About

For backup and notes

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published