Tools of the Trade
This is note to self post. I am listing here, some of the tools that i use on a daily basis. Some of these tools are just awesome, like powerline. The picture below is the current state of my terminal window :-)
- Vi Commands
- :set paste
- :%le -> indent everything to the left
- r -> to replace a single character
- * -> finds word under cursor
- CTRL + p -> auto complete word
- CTRL + V (visual block after which use normal vi commands like dd)
- CTRL + V, Make Selection, SHIFT + i, press any character, press ESC -> this adds a character before each line in selection
- Splitting
- CTRL + w + s -> horizontal
- CTRL + w + v -> vertical
- CTRL + w + w -> move in split panes
- Vi plugins
- NERDTree -> file explorer in vi
- TagList -> source code browser, useful to browse python functions
- TaskList -> highlights TODOs
- autoclose -> closes opened brackets, parenthesis etc
- pythoncomplete/jedi-vim -> python code completions
- syntastic -> syntax checking on save
- Use Terminal on mac, and install tmux plugin
- Use tmux over screen, find it easier to use, navigate, resize etc.Use to split single screen in multiple panes, and also keeping sessions alive.
- Default control character is CTRL + B, change that in config.
- CTRL + a + s -> horizontal
- CTRL + a + v -> vertical
- CTRL + +a + arrow keys -> move between panes
- CTRL + a + w -> list and switch between windows
- CTRL + a + Option + arrow keys -> increase/decrease pane height/width
- CTRL + a + q -> show pane numbers
- CTRL + a + c -> create new tmux window
- CTRL + a + ] -> paste selection
- Powerline - install new powerline (python based) to show git branches, status codes etc
- Python
- vitrtualenv
- virtualenv wrapper
- pyTest
- grin (grep like search)
- celery -> task queues
- argh -> use dispatchcommands colored,
- puts -> handy libs
- yield -> for performance looping, also generator/iterator difference
- requirements.txt, setup.py -> for module installation iPython
- use docker
- etcd -> key/value store
- hubflow -> manage fetaure branches, release process
- dashing -> create cool dashboards
- SSH commands on hung ssh -> press enter + ~ + . to end the session immediately
- on a ssh session -> enter + ~ + ? brings up a list of available commands