[WARNING] This configuration set is a very personal thing and comes with definitely NO warranty. It may eat your hamster!
$ git submodule init && git submodule update
(1)
$ git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
(2) Launch vim and run :PluginInstall
.
(1)
$ git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
(2) Reload tmux environment so TPM is sourced:
$ tmux source ~/.tmux.conf
(3) In tmux, press prefix + I
to fetch plugins.
M-x package-install RET elscreen RET Install ElScreen
M-x package-install RET powerline RET Install Powerline
$ md my_project
$ cd my_project/
$ git init
$ git flow init -d
$ echo '.emacs*' > .gitignore
$ e .gitignore
In Emacs, use M-s r to save the current session into ./.emacs.desktop
and ./.emacs.elscreen
before exit.
$ cd my_project/
$ e
Emacs will try to restore the last session from ./.emacs.desktop
and ./.emacs.elscreen
, and save current session back into them on exiting. Automatically.
Editing certain files by initializing emacs
with explicit parameters will not cause Emacs to restore and save sessions automatically: (unless M-s r is invoked)
$ e README.md src/hello.c
(See also: http://www.emacswiki.org/emacs/EmacsNewbieKeyReference)
C-x C-f Find file
C-x C-v RET Reload file
C-x C-s Save buffer
C-x s Save file (like save-as)
C-x b Switch buffer
C-x Left Switch to previous buffer
C-x Right Switch to next buffer
C-x k Kill buffer
C-x h Select entire buffer
C-x o Move cursor to other window
C-x 0 Close current window (after splitting)
C-x 1 Close any other windows
C-x 2 Split window vertically
C-x 3 Split window horizontally
C-g Cancel
C-d Kill character
M-d Kill word
M-<delete> Kill word backwards
C-w Cut (kill)
M-w Copy
M-y Paste (yank)
M-h Select current paragraph
C-s Incremental search
C-r Incremental search backward
C-M-s Regex incremental search
C-M-r Regex incremental search backward
M-% Search/replace
M-; Comment/uncomment region
C-/ C-x u Undo
M-/ Complete word (like tab-complete)
C-f Move cursor forward
C-b Move cursor back
M-f Move cursor forward-by-word
M-b Move cursor backward-by-word
C-n Move cursor to next line
C-p Move cursor to prev line
C-l Scroll to middle and redraw screen
C-a Move cursor to beginning of line
C-e Move cursor to end of line
M-m Move cursor to first non-whitespace char
M-{ Move cursor up-by-paragraph
M-} Move cursor down-by-paragraph
M-< Go to top of buffer
M-> Go to end of buffer
M-g M-g Go to line number
M-$ Check and correct spelling of the word at point
M-! Run shell command
M-| Run shell command with region contents as input
M-& Run shell command asynchronously
M-x [mode-name] Change mode
M-x cd Change directory
M-x shell Shell
M-x eshell Eshell
M-x term Terminal emulation
C-\ Enable/disable input method (e.g. C-\ greek)
C-<SPC> Enable/disable IBus input method
F11 Fullscreen
M-n Scroll view down (by 1 line)
M-<down> Scroll view down
M-p Scroll view up (by 1 line)
M-<up> Scroll view up
<RET> Newline and indent
C-S-<backspace> Delete whole line (without putting it into kill-ring)
C-c c Copy entire buffer to clipboard
C-x C-c Quit (without asking for saving buffer)
M-s c M-s C-c Create a new screen and switch to it
M-s C Create a new screen with the window-configuration of the current screen
M-s d Create a new screen and run dired
M-s f M-s C-f Find file in new screen
M-s C-r Find file in new screen (read-only)
M-s k M-s C-k Kill current screen
M-s M-k Kill current screen and buffers
M-s K Kill other screens
C-<tab> M-s n M-s C-n Next screen
C-S-<tab> M-s p M-s C-p Previous screen
M-s a M-s C-a Toggle to the screen selected previously
M-s ' Prompt for a screen number to switch to
M-s " Present a list of all screens for selection
M-s [0-9] Jump to the screen number 0-9
M-s <backspace> M-s C-s Swap current screen with previous one
M-s w M-s C-w Show a list of screens
M-s A Allow the user to enter a name for the current screen
M-s m M-s C-m Repeat the last message displayed in the mini-buffer
M-s t M-s C-t Display date/time
M-s M-x Read function name, then call it with new screen
M-s i Show/hide the screen number in the mode line
M-s T Show/hide the tab on the top of each frame
M-s v Display ElScreen version
M-s b Switch to the screen in which specified buffer is displayed
M-s ? Show key bindings of ElScreen and Add-On softwares
M-s <left> Move the current screen to the left
M-s <right> Move the current screen to the right
M-s r Remember (save current session)
M-s <SPC> Open all buffers in individual screens
M-s h Toggle window split
(Active region) C-x Cut (kill)
(Active region) C-c Copy
C-v Paste (yank)
C-z Undo
C-g C-z Redo
C-S-c > Shift 4 spaces to the right
C-S-c < Shift 4 spaces to the left
C-j Expand
C-c $ Correct word at point or save word to dictionary
C-` f Find file in new screen (= M-s C-f)
C-` d Enable Flyspell mode (= M-x flyspell-mode)
C-` s Enable Flyspell mode for comments and strings only (= M-x flyspell-prog-mode)
C-` w Close current window (= C-x 0)
C-` v Split window vertically (= C-x 2)
C-` h Split window horizontally (= C-x 3)
C-` TAB Use clang-format
to format selected region or current line
M-s 3 M-s | Split window horizontally
M-s 2 M-s - Split window vertically
M-s x Kill current pane
M-s 0 Kill current pane (no prompt!)
M-s <left> Select left-side pane
M-s <right> Select right-side pane
M-s <down> Select down-side pane
M-s <up> Select up-side pane
M-s ; Select last pane
M-h Resize pane left-side
M-l Resize pane right-side
M-j Resize pane down-side
M-k Resize pane up-side
M-s c Create new window
M-s & Kill current window
M-s k Kill current window (no prompt!)
C-<up> Select previous window
C-<down> Select next window
M-s r Reload configuration (.tmux.conf
)
M-s t Display time
M-s q Display pane number
M-s ? Show key bindings of Tmux
git flow init -d
Initialize a new repo with the default branch structure
git flow feature
List feature branches
git flow feature start <name>
Start a feature branch
git flow feature finish <name>
Finish a feature branch
git flow feature publish <name>
Push a feature branch to the remote repo
git flow feature pull <remote> <name>
Pull a feature branch from the remote repo
git flow release
List release branches
git flow release start <release>
Start a release branch
git flow release finish <release>
Finish a release branch
git flow hotfix
List hotfix branches
git flow hotfix start <release>
Start a hotfix branch
git flow hotfix finish <release>
Finish a hotfix branch
git flow support
List support branches
git flow support start <release> <base>
Start a support branch
git tag -a vX.Y.Z -m 'version X.Y.Z' [commit]
Create a new tag
git push origin --tags
Push tags
git co
= git checkout
git br
= git branch
git ci
= git commit
git st
= git status
git unstage
= git reset HEAD --
git last
= git log -1 HEAD
git ll
Show fancy Git log
git d
= git diff HEAD --
Super-Shift-Enter Launch terminal
Super-p Launch dmenu
Super-Shift-C Close the focused window
Super-Space Rotate through the available layout algorithms
Super-j Move focus to the next window
Super-k Move focus to the previous window
Super-Shift-J Swap the focused window with the next window
Super-Shift-K Swap the focused window with the previous window
Super-l Expand the master area
Super-h Shrink the master area
Super-, Increment the number of windows in the master area
Super-. Deincrement the number of windows in the master area
Super-q Restart xmonad
Super-Shift-Q Quit xmonad
Super-PgDn or Super-Down Switch to next workspace
Super-PgUp or Super-Up Switch to previous workspace
Super-Shift-PgDn or Super-Shift-Down Move window to next workspace
Super-Shift-PgUp or Super-Shift-Up Move window to previous workspace
Super-Tab Toggle workspaces
Super-Right Switch to next screen
Super-Left Switch to previous screen
Super-Shift-Right Move window to next screen
Super-Shift-Left Move window to previous screen
Super-Shift-L Lock screen
Super-Shift-P Take screenshot