12 KiB
- emacs org mode
- essential keys
- execute scripts / commands
- install packages
- emax & git
- IDEA How to turn IDEA into a recognized keyword?
- Install from source
(TAB to open bullets)
emacs org mode
README
The purpose of this guide is to provide a minimalist onboarding for the use or emacs org mode specifically for anarchy planet projex and dox.
There are three basic things that are useful about org mode:
- It is PLAINTEXT ALL THE WAY BABY!
- bullets are collapsible which makes it really easy to organize shit and move it around collapsible items rule!
- TODO items have a lot of functionality (e.g. agenda)
The longer-term goal is to convert ap/projex pads to org mode. see /tsr/dox/src/commit/330b252dded6ac65a1c25fce20915ff08798f2e5/docs/org/org-pandoc for more info.
emacs keyboard shortcuts
Written as, e.g., C-x C-f, which means CTRL-c CTRL-f (in succession) M-x means META-x. the META key is (usually) ALT https://orgmode.org/orgcard.pdf is a decent cheatsheet!
Headings
Place a * in front of some text: you've got a heading! Place ** in front of some text: you've got a sub-heading! Headings are COLLAPSIBLE: with cursor over a heading, hit TAB Headings can be moved around easily
- M-<enter> to add new heading
- M-<left> or M-<right> to promote / demote heading
TODOs
Make a heading followed by the word TODO: you've got a todo item!
DONE demo emacs org mode
DONE enable line wrap as default
TODO re-write projex in org mode style
projex_demo.org is the test run of this.
- C-c C-t to cycle through todo-done
- You can add more options by adding #+TODO: TODO ONHOLD | DONE to the top of the page (requires restart)
advanced
links
- link structure: [ [link][desc] ] (but without the spaces)
- file C-c C-o to open at point this creates a split buffer. C-x o to switch between split buffers, C-x 1 to return the buffer to a single one.
agenda mode
https://orgmode.org/worg/org-tutorials/orgtutorial_dto.html is a good tut.
notes
useful things overview
So there are two basic things that are useful about org mode:
- bullets are collapsible which makes it really easy to organize shit and move it around collapsible items rule!
- TODO items have a lot of functionality
The goal is to take projex_demo.org (another file in this directory) and format it into org mode. The reason is that then we can export it using pandoc with clean html (which we can add a loittle styling etc) .. . once we have a format established, we can loosely require people to add to pads in that format so that chhanges can be git pushed and incorportated into the html. You can see an example of what the raw html looks like here: https://irc.anarchyplanet.org/dox/org.html
(I think it's a good strategy to hit enter like this when we're done typing :) )
Switching between emacs 'buffers' (where different documents are open in the same emacs instance)
- to open projex_demo.org: C-x C-f and then start typing proj and then TAB (for autocomplete)
- use C-x <left> and use C-x <right> to switch between buffers.
making bullets
So, I guess my first question is about how I make the bullets?
like this
this is a sub-level
Ok I'll give that a shot
So to "attach" the bullet to the text under it, do I just add asterisks to the text?
like this:
Bullet
This is the text under it!
Damn that's east's easy :)
yeah! and, you can do it with all kinds of list items, and it's also especially useful when you have long passages of text that you can just hide by pressing TAB.
Perfect :) So, I might try to just "bullet" this conversation. So I think what I did there makes sense in terms of how I organized that?
YEAH! One more thing:
to make new bullets you can do ALT-enter (ALT is known as M , so M-<enter>)
bullet1
bullet 3
bullet 2
bullet 4
and then, to change the order, you can use M-<up> and M-<down> … to promote you can use M-<left> and M-<right> (but this gets more complicated when you have sub-trees, so we'll worry about that layter beucause that's what I'm having problems with re; my keybindings)
Note for noobs: You have to have the cursor under the bullet tomove your text, not the text itself.
Edit this guide: https://irc.anarchyplanet.org/pad/p/dox-emacs
code syntax highlighting and evaluation
emacs provides support for lots of languages and you can start an interpreter and run code with C-c C-c (evaluate buffer)
You can also do code blocks and tangle / weave for literate programming.
My friend always used indent region and it was impressingly fast
org-pandoc
The reason to use org-mode is to provide a minimal amount of functionality for organizing documents in plaintext that then can be exported using pandoc with clean html (which we can add a little styling etc) .. . once we have a format established, we can loosely require people to add to pads in that format so that chhanges can be git pushed and incorportated into the html. You can see an example of what the raw html looks like here: https://irc.anarchyplanet.org/dox/org.html
using org mode for IRC
how can i restart and save session? (keep buffers)
there's M-x revert-buffer or you can turn auto-revert-mode on so it will reload every time the file changes. I've never used the second… rarely the first, I always just close :P so i don't need to save it? it members? no, you would have to save it. I always just do C-x C-c (closes all buffers) and save them all. I blieve if you try to revert-buffer it will prompt you to save. Do i do this after restarting or before? C-c C-s saves all buffers, C-c C-c exits.
M-x package-install circe <enter> M-x circe <enter> Can i set a socks proxy? I am not sure… I don't understand all that v. well.
last year i read an article/list post how outdated emacs' networking is and RMS agreed. i think the thread went viral ..
could be! https://stackoverflow.com/questions/19699294/make-emacs-access-to-https-over-socks-proxy
I was just gonna paste this :P
how do i get into config mode?
do you mean the customize emacs thing?
to set socks-noproxy or socks-server. the config file ..
the config file is at ~/.emacs you can also change ~/.emacs.d/init.el
Thanks, i changed my mind and prefer to keep my sanity!
re: tor: we should use it for w3m tho, yah?
sure, always. :) does emacs mind if we take aways some sycalls from it?
essential keys
C-x 1 to return buffer to 1 window C-g to cancel a command C-h a to search for commands tiling window: C-x [1..3] C-k cut C-y paste show only headlines: navigate to first heading and do C-c C-k emacs goodies marking
execute scripts / commands
install packages
list packages M-x list-packages C-h P (describe-package install package M-x package-refresh-contents M-x package-install
emax & git
https://www.emacswiki.org/emacs/Git > Emacs comes with a generic version control front end called VersionControl or VC. It supports Git and many other version control system (vcs). This is a good choice if you use other vcs besides Git or have no desire to use features unique to Git. C-x v = vc-diff – diff with other revisions https://www.emacswiki.org/emacs/VersionControl#VC
Magit
an Emacs mode for Git intro
Installation
install with melpa M-x package-refresh-contents M-x package-install RET magit RET
debian stable (stretch)
requires emacs-25 fro debian testing (buster). To install it needs to upgrade libc (core system library) which could break packages. (Looked through open emacs bugs and couldn't find anything grave.) Easiert is to build it from source (see below)
Usage
cheatsheet manual Start: M-x magit-status Quit: q Help: ?
Staging and Unstaging Items
> The key take away is that you can stage “items” – not just the whole file, but the hunks in a diff, for selective staging. The killer feature here is how it displays this information, using its “levels” system. Magit lets you expand and collapse staged and unstaged files with TAB. For more granular control, you can use M-1 through to M-4 for all the files; and 1 to 4 for the selected one. > Level 1 hides everything in a category (say, “staged” files); Level 2 expands to show just the filenames in a category (this is the default); Level 3 will show the git hunk headers; and Level 4 will show all the diff hunks. I use Levels 2 and 4 the most, but if you’re using TAB Magit will pretty much “do what you want.” > n and p will move between the next and previous section (such as a hunk); M-n and M-p move between sibling sections, such as between each file in level 4, or between each section (like staged or unstaged). You can use + and - to enlarge or shrink each hunk and 0 to reset to the default. You can also type H to refine the hunk for additional diff highlighting. Pressing RET will go to the file where the change is made. It works on both hunks and files. > To stage or unstage you can type s or u to stage/unstage the item > If you use the region to select a portion of a hunk and then press stage/unstage then Magit will automatically stage or unstage just that selected region! That’s extremely useful for fine-grained control when a diff hunk itself is not good enough. k discard hunks and files (revert to HEAD) and delete untracked files from your filesystem
Commiting
c commit menu You can extend (e) the current commit HEAD is pointing to You can amend (a) the commit message You can reword (r) it, if you don’t like the commit message and you can both fixup (f) and squash (s) against the current commit. If you have previously markewd a commit with . this commit will be used instead. > if you forgot to commit some stuff that belongs to the commit you just did – use extend. If you want to amend the commit message as well, use amend.
Log menu
j l l short log l h git reflog . will mark the commit for use with commands like commit fixup and commit squash (c f and c s) x will reset your head to the selected commit v will revert the commit d will diff between the selected commit and your working tree a will apply the selected commit’s changes to to your working tree A will cherry pick the commit on top of your working tree E will interactively rebase from HEAD to the selected commit. Very useful if you want to rewrite history C-w will copy the commit hash to the kill ring SPC will show the full commit message > the mark command will persist even if you close the log window. It’s a powerful tool but it’s easy to forget you’ve marked something. > If you navigate up/down the log with M-n and M-p magit will automatically show the commit in a separate window.
IDEA How to turn IDEA into a recognized keyword?
^^^ like this; also it can be done globally, that's a choice to be made.
Install from source
download wget https://mirrors.kernel.org/gnu/emacs/emacs-26.1.tar.xz{,.sig} gpg –recv-key D405AA2C862C54F17EEE6BE0E8BCD7866AFCF978 gpg –verify emacs-26.1.tar.xz.sig Primary key fingerprint: 28D3 BED8 51FD F3AB 57FE F93C 2335 87A4 7C20 7910 Subkey fingerprint: D405 AA2C 862C 54F1 7EEE 6BE0 E8BC D786 6AFC F978 tar xf emacs-26.1.tar.xz cd emacs-26.1/ # version may differ ofc ./autogen.sh ./configure –with-jpeg=no –with-gif=no –with-tiff=no –with-gnutls=no
make