Machine
Macbook Pro, 2018 edition, 15.6 inch!
Terminal Config
- Uses zsh instead of bash. (Note, newer macbooks all comes with zsh)
- Using Iterm2.
- Mainly because of the tabs and panels
Oh-my-zsh
- On top of zsh, i am using this to manage my zsh config.
The main reason for using this is the plugins management.
These are my current plugins:
plugins=(
git
git-prompt
docker
iterm2
zsh-autosuggestions
zsh-syntax-highlighting
)
Powerlevel10k
Tree
For writing nice documentation and/or checking my files organization, i like to use tree
In tests, you usually try to mirror your src
directory. Rather than using ls
(list files), you can:
tree .
├── src
│ ├── __init__.py
│ └── hello.py
└── tests
├── __init__.py
└── test_hello.py
2 directories, 4 files
Or if you only one level down,
tree - L 1
(Feel free to change the level of files to show)
.
├── src
└── tests
2 directories, 0 files
the_silver_searcher
Github repo
Suppose within the current directory you want to search for lines of code, you can ag <code> <dir>
. For eg:
ag hello_world .
❯ ag hello_world .
tests/test_hello.py
1:def test_hello_world(x):
src/hello.py
1:def hello_world(x):
CDPATH
To navigate to a directory, you would typically open your terminal in $HOME
, and cd dir1/folder1
.
If you then want to navigate to another in another project, you would then cd ../dir2/folder2
.
Tired of changing paths and managing directory? give CDPATH a try. Add these to your .zshrc
:
CDPATH=:$HOME/dir1:$HOME/dir2
export CDPATH
And you will be able to cd folder1
and cd folder2
from anywhere in terminal!
Launch IDE via cli
I have also enabled cli for the following commands:
command |
purpose |
code |
launch vs code in directory |
charm |
launch pycharm |
subl |
open files in sublime text |
Note: other commands are added to your path as part of installation, such as Anaconda.
Editors
These are my current text editors and markdown editors.
Sublime
Download here
MacDown
This is my markdown editor that has some pretty neat plugins. You can download it here.
Unfortunately, it is only for mac users. I also enable the following two plugins in MacDown.
Programming
R
No explanation required!
Python (Anaconda)
My friend (yxtay) and I wrote this guide as part of setting up python environment. You can check it out here.
Because of Anaconda recent licensing changes, I decided to switch over to miniforge, I found this guide to be useful!
IDE
Pycharm
I am generally a fan of jetbrain products and if your company provides the professional license, awesome!
Download here
Useful Links
Vscode
Download here
I recently check out vscode again in 2020 and decided to seriously consider switching to Vscode as my main ide.
This is mainly because of the remote development plugin.
The support remote intepreter
is one of the top requested features.
The Vscode team released this in 2019, featuring on the vscode blog
and ms devblog.
UPDATE! - There is now a realpython post on advance python usage with vscode, and it also mentiones about remote development with vscode using docker!
Here is a short gist to illustrate:
Show gist
Useful Links
Vscode extensions
These are the vscode extensions that I am currently using:
Extensions
bastienboutonnet.vscode-dbt
batisteo.vscode-django
bierner.markdown-mermaid
bpruitt-goddard.mermaid-markdown-syntax-highlighting
ckolkman.vscode-postgres
eamodio.gitlens
ecmel.vscode-html-css
esbenp.prettier-vscode
foam.foam-vscode
goessner.mdmath
golang.go
henriblancke.vscode-dbt-formatter
kortina.vscode-markdown-notes
ms-azuretools.vscode-docker
ms-python.python
ms-python.vscode-pylance
ms-toolsai.jupyter
ms-vscode-remote.remote-containers
ms-vscode-remote.remote-ssh
ms-vscode-remote.remote-wsl
ms-vscode-remote.vscode-remote-extensionpack
njpwerner.autodocstring
philipbe.theme-gray-matter
pkosta2005.heroku-command
samuelcolvin.jinjahtml
shd101wyy.markdown-preview-enhanced
streetsidesoftware.code-spell-checker
tchayen.markdown-links
tomoki1207.pdf
VisualStudioExptTeam.vscodeintellicode
yzane.markdown-pdf
yzhang.markdown-all-in-one
To easily install the extensions, just create a extensions.txt
with the extensions you need, and run this bash script:
#!/usr/bin/env bash
cat extensions.txt | while read extension || [[ -n $extension ]];
do
code --install-extension $extension --force
done
Rstudio
No explanation required!
Docker
Containers are awesome!
Download here
Postman
I mainly use postman because of the collection features and the nice UI formatting.
Download here
Productivity
Rectangle
Allows me to move and resize my windows with ease, especially when you need to look at documenation and coding at the same time.
Download here