The purpose of this repository is to enhance my terminal and IDE setup for improved productivity.
-
Run install script
sh -c "`curl -fsSL https://raw.githubusercontent.com/tpai/dotfiles/master/install.sh `"
-
Paste
tmux
into iTermProfiles > General > Command > Send text at start
-
Profiles > Text > Change Font > Family > DroidSansMono Nerd Font
./install.sh
Update required brew formulas, vim plugins and oh-my-zsh.
./uninstall.sh
Return to dust.
./install-plugin.sh {plugin}
- foo - test usage
- tf - install terraform, vim-hashicorp-tools
- go - install go, vim-go
- snip - install instant-snippets
- Main
- zsh
- tmux
- Search
- ripgrep - code fuzzy search
- zsh-z - folder navigation
- fd - file and folder search
- Better Command
- exa - ls
- bat - cat
- prettyping - ping
- glances - top
- ctop - ctop
- tldr - man
- duf - df
- Language
- jq - json query
- Info
- neofetch - system info
- onefetch - git repo info
- wifi-password
- Misc
- reattach-to-user-namespace - for tmux clipboard
- watchman - coc file renaming (update related imports)
- git
- yarn
- neovim
- cmake
- pyenv
- nvm
The following keys are my most used commands.
tmux ls
- list sessionstmux new -s <id>
- create new sessiontmux attach -t <id>
- attach to specific sessiontmux kill -t <id>
- kill session<C-a d>
- detach session<C-a \<>
- open status line menu<C-a \>>
- open pane menu<C-a c>
- create window<C-a n>
- next window<C-a p>
- previous window<C-a x>
- kill window<C-a :move-window -r>
- reorder window index<C-h,j,k,l>
- navigate between windows<C-a Shift-h,j,k,l>
- resize focused window<C-a PgUp,PgDown>
- scroll the window
- Panes
<C-h,j,k,l>
- navigate between panes<C-a e>
- enable sync mode for all panes<C-a E>
- disable sync modevv
- vertical splitss
- horizontal split
- Floating Window
<Shift-j>
- scroll down<Shift-k>
- scroll up
- NERDtree
<C-\>
- toggle NERDTree?
- show help
- File
:new
- create new file
- File Navigation
,t
- in current folder (powered byctrlp
),b
- in buffer (powered byfzf
),ag
- using fuzzy search (powered byfzf
)<Tab>
- select files which needs to change:cfdo %s/old/new/g | update
- search, replace and update multiple files
- Diff
:windo diffthis
- diff check for active files
- Git
gva
- browse changes of commits of all filesgvc
- browse changes of commits of current filegs
- git status (next:<C-n>
, prev:<C-p>
)gb
- git blamegd
- git diffgj
- next hunkgk
- prev hunkgu
- undo changes of current hunkgp
- see changes of current hunk
- Editing
sj
- split bracketssk
- join bracketsga
- active easy align (must do visual select first),mc
- multiple cursor (next:<C-n>
, prev:<C-p>
, skip:<C-x>
),ma
- multiple cursor select all wordsgc
- comment / uncomment<C-//>
- comment / uncomment:%s/old/new/g
- search and replace for the current file:vimgrep /old/g **/*
>:cfdo %s/old/new/g | update
- search and repalce for all files//
- clear search result%
- jump to closing tag:e ++ff=dos
- convert^M
to unix line ending<\-p>
- prettify<\-f>
- eslint autofixej
- next diagnosticek
- prev diagnostic,df
- show definition in floating window,jd
- go to definition,jr
- list references,rn
- symbol renaming,rf
- file renaming (requirewatchman
to be installed),ac
- show code action dialog,cj
- create jsdoc for function,,c
- convert to cammel case,,s
- convert to snake case,,r
- convert to rem,,p
- convert to px
z
- cd to a folder using fuzzy searchctrl+r
- fuzzy search for used commandsping
- display pretty pingtop
- awesome interactive process viewerctop
- docker terminal UIfind
- improved file searchl
- list files in the current folder with detailscat
- print beautified file contentsjq
- JSON text parser (e.g.echo '{"a": 1}' | jq .a
)man
- neat man pages (e.g.man ls
)http|https
- friendly HTTP request toolwifi-password
- retrieve the connected WiFi passwordport
- list listening portsicloud
- navigate to the iCloud directoryq
- query from instant snippetsqup
- update instant snippets repositoryexiftool
- print image metadata