a graphical system-level “window” (this is unfortantely quite confusing, since in emacs a window means something else)
window
a part of a frame which contains a buffer
buffer
contains the text to be editted - when you visit a file, the representation is stored in a buffer
kill
when talking about text, this means “cut”
yank
when talking about text, this means “paste”
keybindings
C-
control
M-
meta (alt)
S-
shift
s-
super (eg. OS X command key)
examples:
C-M-<up>
pressing control + alt + up at the same time
C-x C-s
pressing control + x then control + s
C-x k
pressing control + x then k (without control)
basics
C-g
cancel command / partial command
M-x
enter a command
general
keybindings
C-x k
kill current buffer
C-w
cut selected region / current line
M-w
copy selected region / current line
C-v
half page down
M-v
half page up
C-s
search forward
C-r
search backward
M-<up>
move selected region / current line up
M-<down>
move selected region / current line down
S-<backspace>
delete all whitespace on cursor
C-=
expand selected region
C-+
increase text size
C–
decrease text size
S-<arrow>
move cursor to other window
C-/
toggle comment/uncomment
when searching:
C-s
find next match
C-r
find previous match
RET
end search
TODO
movement
editting
help
C-h C-m discover-my-major
buffer-move
move-text
winner-mode
commands
ibuffer
view open buffers and perform commands on them
prefix
NOTE: normally in emacs, pressing <escape> is also used for meta, but this config uses <escape> and <C-escape> as prefix keys for general commands and major-mode specific commands, respectively.
<escape> +
balance the size of windows
<escape> 0
delete current window
<escape> 1
delete all windows except current
<escape> 2
split window vertically
<escape> 3
split window horizontally
<escape> 4
split window into 4
<escape> <up>
move up one logical (not visual) line
<escape> <down>
move down one logical line
<escape> <left>
move to start of logical line
<escape> <right>
move to end of logical line
<escape> [
begin recording macro
<escape> ]
end recording macro
<escape> C-s
switch project
<escape> C-f
find file in project
<escape> m
open magit
<escape> d
open dired
<escape> s
open shell
python
make sure the environment (eg. virtualenv) you’re using has the following packages:
jedi
flake8
autopep8
<C-escape> w
choose virtualenv
multiple-cursors
RET
exit multiple cursors
C-j
add newline
M-<mouse-1>
add extra cursor
C->
add cursor on next instance of highlighted region
C-<
add cursor on previous instance of highlighted region