latest greatest

This commit is contained in:
2024-10-31 22:48:40 +01:00
parent da5dc52086
commit 7a2ce31247
8 changed files with 1052 additions and 343 deletions

View File

@@ -1,19 +1,22 @@
{
"extends": "standard-with-typescript",
"overrideConfig": {
"env": {
"browser": true,
"es2021": true,
"node": true
},
"extends": "standard-with-typescript",
"parserOptions": {
"ecmaVersion": "latest",
"sourceType": "module"
},
"rules": {
"indent": ["error", 4],
"semi": ["error", "always"],
"quotes": ["error", "double"],
"comma-dangle": ["error", "only-multiline"],
"space-before-function-paren": ["error", "never"]
"space-before-function-paren": ["error", "never"],
"newline-per-chained-call": ["error", { "ignoreChainWithDepth": 2 }]
},
"parserOptions": {
"ecmaVersion": "latest",
"sourceType": "module"
}
}
}

View File

@@ -3,5 +3,6 @@
"tabWidth": 4,
"semi": true,
"singleQuote": false,
"spaceBeforeFunctionParen": false
"spaceBeforeFunctionParen": false,
"printWidth": 120
}

View File

@@ -1,26 +0,0 @@
# Purpose
Get up and going in Linux with some nice bash aliases, neovim configuration + plugins, and tmux.
# Prerequisites
- tmux
- npm or nvm
- neovim 0.8+
# Installation
Symlink the config files to `~/.config/nvim` and `~`, respectively, OR just run `./install.sh` which will do that for you.
> ln -s $HOME/repos/dotfiles/init.lua $HOME/.config/nvim/init.lua
> ln -s $HOME/repos/dotfiles/vimrc.vim $HOME/.config/nvim/vimrc.vim
> ln -s $HOME/repos/dotfiles/bash_aliases $HOME/.bash_aliases
> ln -s $HOME/repos/dotfiles/tmux.conf $HOME/.tmux.conf
After Coc is installed, install coc-pyright and pyright:
# terminal:
> npm install -g pyright
> sudo apt install ripgrep # or brew install
# inside nvim:
:CocInstall coc-pyright

View File

@@ -4,19 +4,144 @@ alias bb='vi ~/.bashrc'
alias ba='vi ~/.bash_aliases'
alias bs='vi ~/.git_secret'
alias r='cd ~/repos && pwd'
alias vl='vi ~/.config/nvim/init.lua'
alias vv='vi ~/.config/nvim/vimrc.vim'
alias vv='vi ~/.config/nvim/init.lua'
alias dx='deactivate'
alias ph='poetry shell'
alias ta='tmux a'
alias gb='git branch'
alias gl='git log'
alias pp='vi ~/.profile'
alias pg='git pull origin $(git branch --show-current)'
alias gp='git push origin $(git branch --show-current)'
alias gs='git status'
alias gd='git diff'
alias ga='git add --all'
alias i='ipython'
alias python=python3
alias v="vagrant ssh"
alias gt='git stash'
alias tt='vi ~/.tmux.conf'
alias t='tree -a -I "*.pyc|*__pycache__|.git|.data|.pytest_cache|.ruff_cache"'
alias p3=python3
alias gd='git diff --diff-filter=ACMRTUXB'
alias gha='git rev-parse --short HEAD'
alias gf='git fetch'
alias ga='git add --all'
alias l='ls -lrta'
alias i='ipython'
alias python3=/usr/local/vitol/pyenv/versions/3.11.4/bin/python
alias p3=python3
alias t='tree -a -I "*.pyc|*__pycache__|.git|.data|.pytest_cache|.ruff_cache|.mypy_cache|node_modules|env"'
alias pl='poetry shell'
alias act='source env/bin/activate'
alias lsd='ls -d */'
alias tm='tmux'
alias c='cal --three'
n() {
local latest_file
latest_file=$(find . -type f \
-not -path '*/\.*' \
-not -path '*_cache/*' \
-not -path '*/__pycache__/*' \
-not -name '*.pyc' \
-not -name 'pyproject.toml' \
-not -name 'poetry.lock' \
-printf '%T@ %p\n' | sort -n | tail -1 | cut -f2- -d" ")
if [ -n "$latest_file" ]; then
nvim "$latest_file"
else
echo "No files found."
fi
}
function gc() {
git commit -m "$1"
}
v() {
local file
file=$(find . -type f \
-not -path "*/node_modules/*" \
-not -path "*/__pycache__/*" \
-not -path "*/venv/*" \
-not -path "*/.venv/*" \
-not -path "*/*cache/*" \
-not -path "*/.git/*" \
-not -path "*/.reports/*" \
| fzf)
if [[ -n $file ]]; then
vi "$file"
fi
}
function gh() {
git checkout -b $1
}
vm() {
# open the most recently modified file in the current directory
local substring="$1"
local modified_files
local selected_files
modified_files=$(git status --porcelain | grep '^.M' | awk '{print $2}')
if [ -z "$substring" ]; then
selected_files=$(echo "$modified_files" | fzf --multi --preview 'git diff --color=always {} | head -500')
else
matching_files=$(echo "$modified_files" | grep "$substring")
count=$(echo "$matching_files" | wc -l)
if [ "$count" -eq 1 ]; then
selected_files="$matching_files"
elif [ "$count" -gt 1 ]; then
selected_files=$(echo "$matching_files" | fzf --multi --preview 'git diff --color=always {} | head -500')
fi
fi
if [ -n "$selected_files" ]; then
echo "$selected_files" | while read -r file; do
diff_output=$(git diff -U0 "$file")
first_change=$(echo "$diff_output" | grep -m1 '^@@')
if [ -n "$first_change" ]; then
line_info=$(echo "$first_change" | awk '{print $3}' | tr -d '+')
line_number=$(echo "$line_info" | cut -d, -f1)
change_type=$(echo "$diff_output" | grep -A1 "$first_change" | tail -n1 | cut -c1)
if [ "$change_type" = "-" ]; then
line_number=$((line_number + 1))
fi
$EDITOR "+$line_number" "$file"
else
$EDITOR "$file"
fi
done
else
echo "No files selected."
fi
}
delete_branches_except() {
if [[ "$#" -eq 0 || "$1" != "--except" ]]; then
echo "Error: You must supply at least one '--except' argument."
return 1
fi
shift # Remove the '--except' argument
if [[ "$#" -eq 0 ]]; then
echo "Error: You must specify at least one branch to keep."
return 1
fi
# Store branches to keep in an array
local branches_to_keep=("$@")
# Get all local branches
local all_branches
all_branches=$(git branch --format='%(refname:short)')
# Loop through all branches and delete those not in the branches_to_keep array
for branch in $all_branches; do
if [[ ! " ${branches_to_keep[*]} " =~ " ${branch} " ]]; then
echo "Deleting branch: $branch"
git branch -D "$branch"
else
echo "Keeping branch: $branch"
fi
done
}

1022
init.lua

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +0,0 @@
#!/bin/bash
ln -s $HOME/repos/dotfiles/tmux.conf $HOME/.tmux.conf
ln -s $HOME/repos/dotfiles/bash_aliases $HOME/.bash_aliases
ln -s $HOME/repos/dotfiles/init.lua $HOME/.config/nvim/init.lua
ln -s $HOME/repos/dotfiles/vimrc.vim $HOME/.config/nvim/vimrc.vim

View File

@@ -1,34 +1,50 @@
# remap prefix
unbind C-b
set-option -g prefix `
bind-key ` send-prefix
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'
set -g @continuum-restore 'on'
set -g @continuum-save-interval '1'
set -g prefix `
bind ` send-prefix
set -g mouse on
set -g pane-border-style fg=black
set-option -sg escape-time 10
set-option -g focus-events on
set-option -g default-terminal "screen-256color"
set-option -ga terminal-overrides ',xterm-256color:Tc'
set-option -g history-limit 30000
set-window-option -g aggressive-resize
set -g @sessionx-bind 'o'
set -g @sessionx-bind 's'
bind l select-pane -t :.+
bind h select-pane -t :.-
unbind-key -T copy-mode-vi v
setw -g mode-keys vi
bind-key -T copy-mode-vi y send -X copy-selection-and-cancel
bind -T copy-mode-vi v send -X begin-selection
bind -T copy-mode-vi 'r' send -X rectangle-toggle # Begin selection in copy mode.
bind -T copy-mode-vi 'v' send -X begin-selection # Begin selection in copy mode.
bind -T copy-mode-vi 'y' send -X copy-selection # Yank selection in copy mode.
bind P paste-buffer
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel
bind -T root C-c if-shell -F '#{==:#{pane_mode},tree-mode}' 'send-keys Escape' 'send-keys C-c'
bind c new-window -c "#{pane_current_path}"
bind '"' split-window -c "#{pane_current_path}"
bind % split-window -h -c "#{pane_current_path}"
# bind ctrl-C to escape
bind-key -n C-c send-keys Escape
set -sg escape-time 10
set -g focus-events on
set -g default-terminal "screen-256color"
set -ga terminal-overrides ',xterm-256color:Tc'
set -g history-limit 30000
set-window-option -g aggressive-resize
# set -ag pane-active-border fg=magenta
set -g status on
set -g status-left ""
set -g status-right "#{session_name}"
set -g status-style bg=colour17,fg=colour248
set -g window-status-format ""
set -g window-status-current-format ""
set -g status-interval 1
set -g status-position bottom
set -g status-right-length 50
set -g display-time 200
set -g message-style bg=default,fg=default
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'omerxx/tmux-sessionx'
run '~/.tmux/plugins/tpm/tpm'
# run-shell ~/clone/path/continuum.tmux

View File

@@ -1,70 +0,0 @@
set autoindent expandtab tabstop=4 shiftwidth=4
set hidden
let g:python3_host_prog = '/usr/local/vitol/pyenv/versions/3.11.4/bin/python'
" When editing a file, always jump to the last known cursor position.
autocmd BufReadPost *
\ if line("'\"") >= 1 && line("'\"") <= line("$") && &ft !~# 'commit'
\ | exe "normal! g`\""
\ | endif
nnoremap <silent> <C-s> :w<cr>
nnoremap <C-l> :bn<cr>
nnoremap <C-h> :bp<cr>
inoremap <silent> <C-S> <esc>:w<cr>i
let mapleader=" "
nnoremap <leader>w :w<cr>:bw<cr>
nnoremap <silent> <leader>W :bw<cr>
nnoremap <leader>v :e ~/.config/nvim/init.lua<cr>
nnoremap <leader>m :e ~/.config/nvim/vimrc.vim<cr>
nnoremap <leader>s :source ~/.config/nvim/init.lua<cr>
nnoremap <leader>q :xa<cr>
nnoremap <leader>f <cmd>Telescope find_files<cr>
nnoremap <leader>g <cmd>Telescope live_grep<cr>
nnoremap <leader>b <cmd>Telescope buffers<cr>
nnoremap <leader>h <cmd>Telescope help_tags<cr>
nnoremap <leader>l <cmd>Lazy<cr>
nmap <silent> <leader>j <Plug>(coc-diagnostic-prev)
nmap <silent> <leader>d <Plug>(coc-diagnostic-next)
function! s:c_cycle(count) abort
let qf_info = getqflist({ 'idx': 0, 'size': 0 })
let size = qf_info->get('size')
if size == 0
return
endif
let idx = qf_info->get('idx')
let num = (idx + size + a:count) % size
if num == 0
let num = size
endif
execute num .. 'cc'
endfunction
command! -nargs=1 CCycle call s:c_cycle(<q-args>)
nnoremap <expr> [n '<Cmd>CCycle -' .. v:count1 .. '<CR>'
nnoremap <expr> ]n '<Cmd>CCycle ' .. v:count1 .. '<CR>'
vnoremap <C-k> :m '<-2<CR>gv=gv
vnoremap <C-j> :m '>+1<CR>gv=gv
nnoremap <C-k> :m -2<CR>
nnoremap <C-j> :m +1<CR>
map gf :e<cfile><cr>
augroup tokyonight-night
autocmd!
autocmd ColorScheme * highlight Normal guibg=NONE ctermbg=NONE
autocmd ColorScheme * highlight NonText guibg=NONE ctermbg=NONE
augroup END
colorscheme tokyonight-night
set background=dark
let g:LanguageClient_useVirtualText = 0 " disable inline errors
set undodir=~/.config/nvim/undodir
set undofile
set number relativenumber