ZSH, TMUX, and Vim.
Once the repo is cloned, execute the deploy script:
# install nvim, tmux, oh my zsh, node ,
bash ./isntall.sh (sh might not work)
# install plugins managers and dotfiles
./deploy
# tmux plugins install with TMUX_PREFIX+I
# install https://github.com/so-fancy/diff-so-fancy manual
Coc set up config with :CocConfig, py example:
- pyright as linter
{
"pyright.enable": true,
"python.linting.enabled": true,
"python.formatting.provider": "black",
"python.pythonPath": "/home/merklinm/.virtualenvs/seg/bin/python",
"python.analysis.typeCheckingMode": "off"
}
zinit update
# if comint error occurs run compint
zinit cclear
This script guides you through the following:
- Checks to see if you have zsh, tmux, and vim installed.
- Installs it using your default package manager if you don't have it installed.
- Checks to see if your default shell is zsh.
- Sets zsh to your default shell.
- Backs up your old configuration files.
Pretty convenient for configuring new servers.
All default dotfiles (.zshrc
, .vimrc
, etc) source something within the dotfiles repository. This helps separate changes that are synced across all your machines with system specific changes.
Upon launching a new shell, the first thing that's evaulated is zshrc_manager.sh
. This script first launches tmux. Then once zsh logs in, within tmux, it updates the dotfiles repository, and sources the changes.
cd
has been reassigned tocd
andls
. Every time you navigate to a new directory, it will display the contents of that directory.v
has been aliased too:vim -p
. This let's you open multiple files in vim as tabs.
Key Stroke | What It Does |
---|---|
TMUX_PREFIX+I | Install plugins |
TMUX_PREFIX+U | update plugins |
TMUX_PREFIX+f | fpp file picker |
TMUX_PREFIX+r | realaod tmux config |
Ctrl-hjkl | panel navigation |
Ctrl-HJKL | panel resize |
Ctrl-g | terminal text commit -a |
Ctrl-p | terminal text commit -a and push |
Ctrl-v | fzf search and open file |
Ctrl-V | Runs fc . Takes last command and puts it in a vim buffer. |
Ctrl-S | Add's sudo to the beginning of the buffer. |
Ctrl-o | cd .. |
Ctrl-O | open finder |
Ctrl-t | fzf pick file |
Alt-c | fzf cd to dir |
git diff print better installed with zinit and configure with: diff-so-fancy
- zsh-autosuggestions: Searches your history while you type and provides suggestions.
- zsh-syntax-highlighting: Provides fish style syntax highlighting for zsh.
- ohmyzsh: Borrowed things like tab completion, fixing ls, tmux's vi-mode plugin.
- vimode-zsh allows you to hit
esc
and navigate the current buffer using vim movement keys.
- neovim is used
- [install fzf] (https://github.com/junegunn/fzf)
- Leader key has ben remapped to
,
The prompt takes on the form:
[plugin, plugin, ...]:
Each plugin is sensitive to where you are and what you're doing, they reveal themselves when it's contextually relevant. Plugins include:
PWD plugin
: always present, tells you where you are. Always the first plugin.Status code plugin
: appears anytime a program returns with a non-zero status code. Tells you what status code the program completed with.Git plugin
: appears when you're in a git repository. Tells you what branch you're on, and how many files have been changed since the last commit.Sudo plugin
: tells you when you can sudo without a password. Or when you're logged in as root.- REMOVED
Time plugin
: appears when a program took more than 1s to execute. Tells you how long it took to execute. REMOVED PID plugin
: appears when you background a task. Tells you what the PID of the task is.
file ~/.ssh/config
example how to config ssh keys
Host github.com
HostName github.com
IdentityFile ~/.ssh/github_id_ras
User git
Host gitlab.com
HostName gitlab.com
IdentityFile ~/.ssh/gitlab_id_rsa
User git
update ~/.ssh/config
Host github.com
HostName github.com
IdentityFile ~/.ssh/github_id_ras
User git
Host gitlab.com
HostName gitlab.com
IdentityFile ~/.ssh/gitlab_id_rsa
User git
- pyright lSP and
opencv-python
missing import fix emacs-lsp/lsp-pyright#41