From e60de286d2ee5f2cecbad1f463fbab9ae11cb16b Mon Sep 17 00:00:00 2001 From: Jacob Bohanon Date: Wed, 14 Sep 2022 17:13:18 -0400 Subject: [PATCH] add nvim, restructure zsh --- nvim/init.vim | 282 +++++++++++++++++++++ nvim/lua/jbohanon/init.lua | 187 ++++++++++++++ zsh/.zshrc | 489 +------------------------------------ zsh/config.d/gcloud.zsh | 10 + zsh/config.d/go.zsh | 9 + zsh/config.d/helm.zsh | 179 ++++++++++++++ zsh/config.d/kind.zsh | 177 ++++++++++++++ zsh/config.d/nvm.zsh | 4 + zsh/config.d/oh-my.zsh | 82 +++++++ zsh/config.d/solo.zsh | 23 ++ 10 files changed, 958 insertions(+), 484 deletions(-) create mode 100644 nvim/init.vim create mode 100644 nvim/lua/jbohanon/init.lua create mode 100644 zsh/config.d/gcloud.zsh create mode 100644 zsh/config.d/go.zsh create mode 100644 zsh/config.d/helm.zsh create mode 100644 zsh/config.d/kind.zsh create mode 100644 zsh/config.d/nvm.zsh create mode 100644 zsh/config.d/oh-my.zsh create mode 100644 zsh/config.d/solo.zsh diff --git a/nvim/init.vim b/nvim/init.vim new file mode 100644 index 0000000..268358b --- /dev/null +++ b/nvim/init.vim @@ -0,0 +1,282 @@ +imap jj + +set number +set relativenumber +set tabstop=4 softtabstop=4 +set shiftwidth=4 +set expandtab +set smartindent +set nohlsearch +set hidden +set noerrorbells +set nowrap +set noswapfile +set nobackup +set undodir=~/.vim/undodir +set undofile +set incsearch +set termguicolors +set scrolloff=8 +set colorcolumn=80,120 +set signcolumn=yes +set cmdheight=2 +set title +set updatetime=50 +highlight Normal guibg=none + +call plug#begin('~/.vim/plugged') + +Plug 'voldikss/vim-floaterm' +Plug 'mbbill/undotree' +Plug 'wellle/context.vim' + +Plug 'tpope/vim-fugitive' +Plug 'tpope/vim-commentary' +Plug 'tpope/vim-surround' + +Plug 'f-person/git-blame.nvim' + +Plug 'gruvbox-community/gruvbox' + +Plug 'nvim-lua/plenary.nvim' +Plug 'ThePrimeagen/harpoon' + +Plug 'BurntSushi/ripgrep' + +Plug 'sharkdp/fd' + +Plug 'nvim-treesitter/nvim-treesitter' + +Plug 'nvim-telescope/telescope-fzf-native.nvim', { 'do': 'cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release && cmake --install build --prefix build' } + +Plug 'nvim-telescope/telescope.nvim' + +Plug 'airblade/vim-gitgutter' + +Plug 'liuchengxu/vista.vim' + +" Completion +Plug 'neovim/nvim-lspconfig' +Plug 'hrsh7th/cmp-nvim-lsp' +Plug 'hrsh7th/cmp-buffer' +Plug 'hrsh7th/cmp-path' +Plug 'hrsh7th/cmp-cmdline' +Plug 'hrsh7th/nvim-cmp' + +" For vsnip users. +Plug 'hrsh7th/cmp-vsnip' +Plug 'hrsh7th/vim-vsnip' + +" Go plugins +Plug 'fatih/vim-go' +Plug 'Shougo/neocomplete.vim' + +Plug 'majutsushi/tagbar' + +Plug 'vim-airline/vim-airline' +Plug 'vim-airline/vim-airline-themes' +Plug 'kyazdani42/nvim-web-devicons' +Plug 'kyazdani42/nvim-tree.lua' +Plug 'ellisonleao/glow.nvim', {'branch': 'main'} +Plug 'tpope/vim-dispatch' +call plug#end() + +let $GINKGO_EDITOR_INTEGRATION = "true" + +lua require('nvim-tree').setup() + +" Find files using Telescope command-line sugar. +let mapleader = " " +nnoremap ff lua require('telescope.builtin').find_files({hidden = true, file_ignore_patterns = {"^.git"}}) +nnoremap fg lua require('telescope.builtin').live_grep() +nnoremap fb lua require('telescope.builtin').buffers() +nnoremap fh lua require('harpoon.ui').toggle_quick_menu() + +nnoremap err oif err != nil {return nil, err}kkI +nnoremap :GoReferrers + +nnoremap q :bd +nnoremap w :w +nnoremap n :bn +nnoremap b :bp +nnoremap 1 lua require("harpoon.ui").nav_file(1) +nnoremap 2 lua require("harpoon.ui").nav_file(2) +nnoremap 3 lua require("harpoon.ui").nav_file(3) +nnoremap 4 lua require("harpoon.ui").nav_file(4) +nnoremap 5 lua require("harpoon.ui").nav_file(5) +nnoremap 6 lua require("harpoon.ui").nav_file(6) +nnoremap 7 lua require("harpoon.ui").nav_file(7) +nnoremap 8 lua require("harpoon.ui").nav_file(8) +nnoremap 9 lua require("harpoon.ui").nav_file(9) +nnoremap +nnoremap +nnoremap +nnoremap +tnoremap +tnoremap +tnoremap +tnoremap +nnoremap ee :NvimTreeFindFileToggle +nnoremap h lua require("harpoon.mark").add_file() + +vnoremap J :m '>+1gv=gv +vnoremap K :m '<-2gv=gv + +let g:floaterm_wintype='split' +let g:floaterm_height=0.2 +nnoremap :FloatermNew +tnoremap :FloatermNew +nnoremap :FloatermPrev +tnoremap :FloatermPrev +nnoremap :FloatermNext +tnoremap :FloatermNext +nnoremap :FloatermToggle +tnoremap :FloatermToggle + +let mapleader = '\' +nnoremap :so ~/.config/nvim/init.vim +nnoremap :e ~/.config/nvim/init.vim + +augroup jbohanon + autocmd! + autocmd BufWritePre * %s/\s\+$//e +augroup END + +set laststatus=2 +"set statusline=%{FugitiveStatusline()} +"set statusline+=\ %f +colorscheme gruvbox + +" Go specific commands +filetype plugin indent on +set autowrite +" Go syntax highlighting +let g:go_highlight_fields = 1 +let g:go_highlight_functions = 1 +let g:go_highlight_function_calls = 1 +let g:go_highlight_extra_types = 1 +let g:go_highlight_operators = 1 +" Auto formatting and importing +let g:go_fmt_autosave = 1 +let g:go_fmt_command = "goimports" +" Status line types/signatures +let g:go_auto_type_info = 1 + +" Airline config +let g:airline#extensions#tabline#enabled = 1 +let g:airline_powerline_fonts = 1 + +" Completion config +set completeopt=menu,menuone,noselect + +lua << EOF +-- Mappings. +-- See `:help vim.diagnostic.*` for documentation on any of the below functions +local opts = { noremap=true, silent=true } +vim.keymap.set('n', 'd', vim.diagnostic.open_float, opts) +vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, opts) +vim.keymap.set('n', ']d', vim.diagnostic.goto_next, opts) +vim.keymap.set('n', 'dl', vim.diagnostic.setloclist, opts) + +-- Use an on_attach function to only map the following keys +-- after the language server attaches to the current buffer +local on_attach = function(client, bufnr) + -- Enable completion triggered by + vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc') + + -- Mappings. + -- See `:help vim.lsp.*` for documentation on any of the below functions + local bufopts = { noremap=true, silent=true, buffer=bufnr } + vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, bufopts) + vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bufopts) + vim.keymap.set('n', 'K', vim.lsp.buf.hover, bufopts) + vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, bufopts) + vim.keymap.set('n', '', vim.lsp.buf.signature_help, bufopts) + vim.keymap.set('n', 'D', vim.lsp.buf.type_definition, bufopts) + vim.keymap.set('n', 'rn', vim.lsp.buf.rename, bufopts) + vim.keymap.set('n', 'ca', vim.lsp.buf.code_action, bufopts) + vim.keymap.set('n', 'gr', vim.lsp.buf.references, bufopts) + vim.keymap.set('n', 'f', vim.lsp.buf.formatting, bufopts) +end +local capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities()) +require('lspconfig')['gopls'].setup{ + on_attach = on_attach, + capabilities = capabilities, +} +EOF + +lua <"] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_next_item() + elseif luasnip.expand_or_jumpable() then + luasnip.expand_or_jump() + elseif has_words_before() then + cmp.complete() + else + fallback() + end + end, { "i", "s" }), + [""] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_prev_item() + elseif luasnip.jumpable(-1) then + luasnip.jump(-1) + else + fallback() + end + end, { "i", "s" }), + [''] = cmp.mapping.scroll_docs(-4), + [''] = cmp.mapping.scroll_docs(4), + [''] = cmp.mapping.complete(), + [''] = cmp.mapping.abort(), + [''] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items. + }), + sources = cmp.config.sources({ + { name = 'nvim_lsp' }, + { name = 'vsnip' }, + }, { + { name = 'buffer' }, + }) + }) + + -- Set configuration for specific filetype. + cmp.setup.filetype('gitcommit', { + sources = cmp.config.sources({ + { name = 'cmp_git' }, + }, { + { name = 'buffer' }, + }) + }) + + -- Use buffer source for `/` (if you enabled `native_menu`, this won't work anymore). + cmp.setup.cmdline('/', { + mapping = cmp.mapping.preset.cmdline(), + sources = { + { name = 'buffer' } + } + }) + + -- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore). + cmp.setup.cmdline(':', { + mapping = cmp.mapping.preset.cmdline(), + sources = cmp.config.sources({ + { name = 'path' } + }, { + { name = 'cmdline' } + }) + }) +EOF diff --git a/nvim/lua/jbohanon/init.lua b/nvim/lua/jbohanon/init.lua new file mode 100644 index 0000000..19c6821 --- /dev/null +++ b/nvim/lua/jbohanon/init.lua @@ -0,0 +1,187 @@ +local gl = require('galaxyline') +local gls = gl.section +gl.short_line_list = {'LuaTree','vista','dbui'} + +local colors = { + bg = '#282c34', + yellow = '#fabd2f', + cyan = '#008080', + darkblue = '#081633', + green = '#afd700', + orange = '#FF8800', + purple = '#5d4d7a', + magenta = '#d16d9e', + grey = '#c0c0c0', + blue = '#0087d7', + red = '#ec5f67' +} + +local buffer_not_empty = function() + if vim.fn.empty(vim.fn.expand('%:t')) ~= 1 then + return true + end + return false +end + +gls.left[1] = { + FirstElement = { + provider = function() return '▋' end, + highlight = {colors.blue,colors.yellow} + }, +} +gls.left[2] = { + ViMode = { + provider = function() + local alias = {n = 'NORMAL',i = 'INSERT',c= 'COMMAND',v= 'VISUAL',V= 'VISUAL LINE', [''] = 'VISUAL BLOCK'} + return alias[vim.fn.mode()] + end, + separator = '', + separator_highlight = {colors.purple,function() + if not buffer_not_empty() then + return colors.purple + end + return colors.darkblue + end}, + highlight = {colors.darkblue,colors.purple,'bold'}, + }, +} +gls.left[3] ={ + FileIcon = { + provider = 'FileIcon', + condition = buffer_not_empty, + highlight = {require('galaxyline.provider_fileinfo').get_file_icon_color,colors.darkblue}, + }, +} +gls.left[4] = { + FileName = { + provider = {'FileName','FileSize'}, + condition = buffer_not_empty, + separator = '', + separator_highlight = {colors.purple,colors.darkblue}, + highlight = {colors.magenta,colors.darkblue} + } +} + +gls.left[5] = { + GitIcon = { + provider = function() return '  ' end, + condition = buffer_not_empty, + highlight = {colors.orange,colors.purple}, + } +} +gls.left[6] = { + GitBranch = { + provider = 'GitBranch', + condition = buffer_not_empty, + highlight = {colors.grey,colors.purple}, + } +} + +local checkwidth = function() + local squeeze_width = vim.fn.winwidth(0) / 2 + if squeeze_width > 40 then + return true + end + return false +end + +gls.left[7] = { + DiffAdd = { + provider = 'DiffAdd', + condition = checkwidth, + icon = ' ', + highlight = {colors.green,colors.purple}, + } +} +gls.left[8] = { + DiffModified = { + provider = 'DiffModified', + condition = checkwidth, + icon = ' ', + highlight = {colors.orange,colors.purple}, + } +} +gls.left[9] = { + DiffRemove = { + provider = 'DiffRemove', + condition = checkwidth, + icon = ' ', + highlight = {colors.red,colors.purple}, + } +} +gls.left[10] = { + LeftEnd = { + provider = function() return '' end, + separator = '', + separator_highlight = {colors.purple,colors.bg}, + highlight = {colors.purple,colors.purple} + } +} +gls.left[11] = { + DiagnosticError = { + provider = 'DiagnosticError', + icon = '  ', + highlight = {colors.red,colors.bg} + } +} +gls.left[12] = { + Space = { + provider = function () return ' ' end + } +} +gls.left[13] = { + DiagnosticWarn = { + provider = 'DiagnosticWarn', + icon = '  ', + highlight = {colors.blue,colors.bg}, + } +} +gls.right[1]= { + FileFormat = { + provider = 'FileFormat', + separator = '', + separator_highlight = {colors.bg,colors.purple}, + highlight = {colors.grey,colors.purple}, + } +} +gls.right[2] = { + LineInfo = { + provider = 'LineColumn', + separator = ' | ', + separator_highlight = {colors.darkblue,colors.purple}, + highlight = {colors.grey,colors.purple}, + }, +} +gls.right[3] = { + PerCent = { + provider = 'LinePercent', + separator = '', + separator_highlight = {colors.darkblue,colors.purple}, + highlight = {colors.grey,colors.darkblue}, + } +} +gls.right[4] = { + ScrollBar = { + provider = 'ScrollBar', + highlight = {colors.yellow,colors.purple}, + } +} + +gls.short_line_left[1] = { + BufferType = { + provider = 'FileTypeName', + separator = '', + separator_highlight = {colors.purple,colors.bg}, + highlight = {colors.grey,colors.purple} + } +} + + +gls.short_line_right[1] = { + BufferIcon = { + provider= 'BufferIcon', + separator = '', + separator_highlight = {colors.purple,colors.bg}, + highlight = {colors.grey,colors.purple} + } +} diff --git a/zsh/.zshrc b/zsh/.zshrc index 89cf93b..fb40d5a 100644 --- a/zsh/.zshrc +++ b/zsh/.zshrc @@ -1,19 +1,10 @@ -alias ctags="`brew --prefix`/bin/ctags" export EDITOR=nvim # If you come from bash you might have to change your $PATH. -export PATH=$HOME/bin:$HOME/.local/bin:/usr/local/bin:/opt/local/bin:${GOPATH}/bin:$PATH +export PATH=$HOME/bin:$HOME/.local/bin:/usr/local/bin:/opt/local/bin:$PATH -# Path to your oh-my-zsh installation. -export ZSH=/Users/jacobbohanon/.oh-my-zsh - -# GO stuff -export GOPATH="${HOME}/go" -#export GOROOT="$(brew --prefix golang)/libexec" -export GOROOT="/usr/local/go" # eksctl fpath=($fpath ~/.zsh/completion) -export PATH=${GOPATH}/bin:${GOROOT}/bin:$PATH # License keys for enterprise installations SECRET_PATH="${SECRET_PATH:-$HOME/.dotfiles/ignore/secrets}" @@ -34,484 +25,14 @@ else echo "export GLOO_MESH_LICENSE_KEY=" fi -# Aliases to reach different repos alias pls='sudo' -alias cdsi='cd $GOPATH/src/github.com/solo-io' -alias cdg='cd $GOPATH/src/github.com/solo-io/gloo' -alias nvg='nvim $GOPATH/src/github.com/solo-io/gloo/README.md' -alias cdgf='cd $GOPATH/src/github.com/solo-io/gloo-fed' -alias nvgf='nvim $GOPATH/src/github.com/solo-io/gloo-fed/README.md' -alias cdsp='cd $GOPATH/src/github.com/solo-io/solo-projects' -alias nvsp='nvim $GOPATH/src/github.com/solo-io/solo-projects/README.md' -alias cdgm='cd $GOPATH/src/github.com/solo-io/gloo-mesh' -alias nvgm='nvim $GOPATH/src/github.com/solo-io/gloo-mesh/README.md' -alias cdgmui='cd $GOPATH/src/github.com/solo-io/gloo-mesh-ui' -alias nvgmui='nvim $GOPATH/src/github.com/solo-io/gloo-mesh-ui/README.md' -alias cdgme='cd $GOPATH/src/github.com/solo-io/gloo-mesh-enterprise' -alias nvgme='nvim $GOPATH/src/github.com/solo-io/gloo-mesh-enterprise/README.md' -alias cdea='cd $GOPATH/src/github.com/solo-io/ext-auth-service' -alias nvea='nvim $GOPATH/src/github.com/solo-io/ext-auth-service/README.md' -alias cdrl='cd $GOPATH/src/github.com/solo-io/rate-limiter' -alias nvrl='nvim $GOPATH/src/github.com/solo-io/rate-limiter/README.md' - alias cddf='cd $HOME/.dotfiles' alias nvdf='nvim $HOME/.dotfiles/README.md' -# go mod needs this -export GOPRIVATE="github.com/solo-io" - -# Set name of the theme to load. Optionally, if you set this to "random" -# it'll load a random theme each time that oh-my-zsh is loaded. -# See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes -ZSH_THEME="robbyrussell" -# fzf stuff -_fzf_compgen_path() { - fd --hidden --follow --exclude ".git" . "$1" -} -# Use fd to generate the list for directory completion -_fzf_compgen_dir() { - fd --type d --hidden --follow --exclude ".git" . "$1" -} -# Set list of themes to load -# Setting this variable when ZSH_THEME=random -# cause zsh load theme from this variable instead of -# looking in ~/.oh-my-zsh/themes/ -# An empty array have no effect -# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" ) -# Uncomment the following line to use case-sensitive completion. -# CASE_SENSITIVE="true" -# Uncomment the following line to use hyphen-insensitive completion. Case -# sensitive completion must be off. _ and - will be interchangeable. -# HYPHEN_INSENSITIVE="true" -# Uncomment the following line to disable bi-weekly auto-update checks. -DISABLE_AUTO_UPDATE="true" -# Uncomment the following line to change how often to auto-update (in days). -export UPDATE_ZSH_DAYS=13 -# Uncomment the following line to disable colors in ls. -# DISABLE_LS_COLORS="true" -# Uncomment the following line to disable auto-setting terminal title. -# DISABLE_AUTO_TITLE="true" -# Uncomment the following line to enable command auto-correction. -# ENABLE_CORRECTION="true" -# Uncomment the following line to display red dots whilst waiting for completion. -# COMPLETION_WAITING_DOTS="true" -# Uncomment the following line if you want to disable marking untracked files -# under VCS as dirty. This makes repository status check for large repositories -# much, much faster. -DISABLE_UNTRACKED_FILES_DIRTY="true" -# Uncomment the following line if you want to change the command execution time -# stamp shown in the history command output. -# The optional three formats: "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd" -# HIST_STAMPS="mm/dd/yyyy" -# Would you like to use another custom folder than $ZSH/custom? -# ZSH_CUSTOM=/path/to/new-custom-folder -# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*) -# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/ -# Example format: plugins=(rails git textmate ruby lighthouse) -# Add wisely, as too many plugins slow down shell startup. -plugins=( - git - fzf - zsh-autosuggestions - zsh-syntax-highlighting - kubectl -) -source $ZSH/oh-my-zsh.sh -# User configuration -# export MANPATH="/usr/local/man:$MANPATH" -# You may need to manually set your language environment -# export LANG=en_US.UTF-8 -# Preferred editor for local and remote sessions -# if [[ -n $SSH_CONNECTION ]]; then -# export EDITOR='vim' -# else -# export EDITOR='mvim' -# fi -# Compilation flags -# export ARCHFLAGS="-arch x86_64" -# ssh -export SSH_KEY_PATH="~/.ssh/rsa_id" - -# Set personal aliases, overriding those provided by oh-my-zsh libs, -# plugins, and themes. Aliases can be placed here, though oh-my-zsh -# users are encouraged to define aliases within the ZSH_CUSTOM folder. -# For a full list of active aliases, run `alias`. -[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh -eval "$(starship init zsh)" - - alias cls='clear' export PATH="/opt/homebrew/opt/protobuf@3.6/bin:$PATH" -#compdef _helm helm -# zsh completion for helm -*- shell-script -*- - -__helm_debug() -{ - local file="$BASH_COMP_DEBUG_FILE" - if [[ -n ${file} ]]; then - echo "$*" >> "${file}" - fi -} - -_helm() -{ - local shellCompDirectiveError=1 - local shellCompDirectiveNoSpace=2 - local shellCompDirectiveNoFileComp=4 - local shellCompDirectiveFilterFileExt=8 - local shellCompDirectiveFilterDirs=16 - - local lastParam lastChar flagPrefix requestComp out directive comp lastComp noSpace - local -a completions - - __helm_debug "\n========= starting completion logic ==========" - __helm_debug "CURRENT: ${CURRENT}, words[*]: ${words[*]}" - - # The user could have moved the cursor backwards on the command-line. - # We need to trigger completion from the $CURRENT location, so we need - # to truncate the command-line ($words) up to the $CURRENT location. - # (We cannot use $CURSOR as its value does not work when a command is an alias.) - words=("${=words[1,CURRENT]}") - __helm_debug "Truncated words[*]: ${words[*]}," - - lastParam=${words[-1]} - lastChar=${lastParam[-1]} - __helm_debug "lastParam: ${lastParam}, lastChar: ${lastChar}" - - # For zsh, when completing a flag with an = (e.g., helm -n=) - # completions must be prefixed with the flag - setopt local_options BASH_REMATCH - if [[ "${lastParam}" =~ '-.*=' ]]; then - # We are dealing with a flag with an = - flagPrefix="-P ${BASH_REMATCH}" - fi - - # Prepare the command to obtain completions - requestComp="${words[1]} __complete ${words[2,-1]}" - if [ "${lastChar}" = "" ]; then - # If the last parameter is complete (there is a space following it) - # We add an extra empty parameter so we can indicate this to the go completion code. - __helm_debug "Adding extra empty parameter" - requestComp="${requestComp} \"\"" - fi - - __helm_debug "About to call: eval ${requestComp}" - - # Use eval to handle any environment variables and such - out=$(eval ${requestComp} 2>/dev/null) - __helm_debug "completion output: ${out}" - - # Extract the directive integer following a : from the last line - local lastLine - while IFS='\n' read -r line; do - lastLine=${line} - done < <(printf "%s\n" "${out[@]}") - __helm_debug "last line: ${lastLine}" - - if [ "${lastLine[1]}" = : ]; then - directive=${lastLine[2,-1]} - # Remove the directive including the : and the newline - local suffix - (( suffix=${#lastLine}+2)) - out=${out[1,-$suffix]} - else - # There is no directive specified. Leave $out as is. - __helm_debug "No directive found. Setting do default" - directive=0 - fi - - __helm_debug "directive: ${directive}" - __helm_debug "completions: ${out}" - __helm_debug "flagPrefix: ${flagPrefix}" - - if [ $((directive & shellCompDirectiveError)) -ne 0 ]; then - __helm_debug "Completion received error. Ignoring completions." - return - fi - - while IFS='\n' read -r comp; do - if [ -n "$comp" ]; then - # If requested, completions are returned with a description. - # The description is preceded by a TAB character. - # For zsh's _describe, we need to use a : instead of a TAB. - # We first need to escape any : as part of the completion itself. - comp=${comp//:/\\:} - - local tab=$(printf '\t') - comp=${comp//$tab/:} - - __helm_debug "Adding completion: ${comp}" - completions+=${comp} - lastComp=$comp - fi - done < <(printf "%s\n" "${out[@]}") - - if [ $((directive & shellCompDirectiveNoSpace)) -ne 0 ]; then - __helm_debug "Activating nospace." - noSpace="-S ''" - fi - - if [ $((directive & shellCompDirectiveFilterFileExt)) -ne 0 ]; then - # File extension filtering - local filteringCmd - filteringCmd='_files' - for filter in ${completions[@]}; do - if [ ${filter[1]} != '*' ]; then - # zsh requires a glob pattern to do file filtering - filter="\*.$filter" - fi - filteringCmd+=" -g $filter" - done - filteringCmd+=" ${flagPrefix}" - - __helm_debug "File filtering command: $filteringCmd" - _arguments '*:filename:'"$filteringCmd" - elif [ $((directive & shellCompDirectiveFilterDirs)) -ne 0 ]; then - # File completion for directories only - local subdir - subdir="${completions[1]}" - if [ -n "$subdir" ]; then - __helm_debug "Listing directories in $subdir" - pushd "${subdir}" >/dev/null 2>&1 - else - __helm_debug "Listing directories in ." - fi - - local result - _arguments '*:dirname:_files -/'" ${flagPrefix}" - result=$? - if [ -n "$subdir" ]; then - popd >/dev/null 2>&1 - fi - return $result - else - __helm_debug "Calling _describe" - if eval _describe "completions" completions $flagPrefix $noSpace; then - __helm_debug "_describe found some completions" - - # Return the success of having called _describe - return 0 - else - __helm_debug "_describe did not find completions." - __helm_debug "Checking if we should do file completion." - if [ $((directive & shellCompDirectiveNoFileComp)) -ne 0 ]; then - __helm_debug "deactivating file completion" - - # We must return an error code here to let zsh know that there were no - # completions found by _describe; this is what will trigger other - # matching algorithms to attempt to find completions. - # For example zsh can match letters in the middle of words. - return 1 - else - # Perform file completion - __helm_debug "Activating file completion" - - # We must return the result of this command, so it must be the - # last command, or else we must store its result to return it. - _arguments '*:filename:_files'" ${flagPrefix}" - fi - fi - fi -} - -# don't run the completion function when being source-ed or eval-ed -if [ "$funcstack[1]" = "_helm" ]; then - _helm -fi -compdef _helm helm - -export ACK_GINKGO_DEPRECATIONS=1.16.5 - -# The next line updates PATH for the Google Cloud SDK. -if [ -f '/Users/jacobbohanon/google-cloud-sdk/path.zsh.inc' ]; then . '/Users/jacobbohanon/google-cloud-sdk/path.zsh.inc'; fi - -# The next line enables shell command completion for gcloud. -if [ -f '/Users/jacobbohanon/google-cloud-sdk/completion.zsh.inc' ]; then . '/Users/jacobbohanon/google-cloud-sdk/completion.zsh.inc'; fi - -alias startenvoydev="gcloud compute instances start bohanon-envoy-dev --zone us-central1-a --project solo-test-236622 && gcloud compute config-ssh --force-key-file-overwrite --project solo-test-236622" -alias stopenvoydev="gcloud compute instances stop bohanon-envoy-dev --zone us-central1-a --project solo-test-236622" -alias sshenvoydev="gcloud beta compute ssh --zone us-central1-a bohanon-envoy-dev --project solo-test-236622" - - -export NVM_DIR="$HOME/.nvm" -[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm -[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion - -#compdef _kind kind - -# zsh completion for kind -*- shell-script -*- - -__kind_debug() -{ - local file="$BASH_COMP_DEBUG_FILE" - if [[ -n ${file} ]]; then - echo "$*" >> "${file}" - fi -} - -_kind() -{ - local shellCompDirectiveError=1 - local shellCompDirectiveNoSpace=2 - local shellCompDirectiveNoFileComp=4 - local shellCompDirectiveFilterFileExt=8 - local shellCompDirectiveFilterDirs=16 - - local lastParam lastChar flagPrefix requestComp out directive comp lastComp noSpace - local -a completions - - __kind_debug "\n========= starting completion logic ==========" - __kind_debug "CURRENT: ${CURRENT}, words[*]: ${words[*]}" - - # The user could have moved the cursor backwards on the command-line. - # We need to trigger completion from the $CURRENT location, so we need - # to truncate the command-line ($words) up to the $CURRENT location. - # (We cannot use $CURSOR as its value does not work when a command is an alias.) - words=("${=words[1,CURRENT]}") - __kind_debug "Truncated words[*]: ${words[*]}," - - lastParam=${words[-1]} - lastChar=${lastParam[-1]} - __kind_debug "lastParam: ${lastParam}, lastChar: ${lastChar}" - - # For zsh, when completing a flag with an = (e.g., kind -n=) - # completions must be prefixed with the flag - setopt local_options BASH_REMATCH - if [[ "${lastParam}" =~ '-.*=' ]]; then - # We are dealing with a flag with an = - flagPrefix="-P ${BASH_REMATCH}" - fi - - # Prepare the command to obtain completions - requestComp="${words[1]} __complete ${words[2,-1]}" - if [ "${lastChar}" = "" ]; then - # If the last parameter is complete (there is a space following it) - # We add an extra empty parameter so we can indicate this to the go completion code. - __kind_debug "Adding extra empty parameter" - requestComp="${requestComp} \"\"" - fi - - __kind_debug "About to call: eval ${requestComp}" - - # Use eval to handle any environment variables and such - out=$(eval ${requestComp} 2>/dev/null) - __kind_debug "completion output: ${out}" - - # Extract the directive integer following a : from the last line - local lastLine - while IFS='\n' read -r line; do - lastLine=${line} - done < <(printf "%s\n" "${out[@]}") - __kind_debug "last line: ${lastLine}" - - if [ "${lastLine[1]}" = : ]; then - directive=${lastLine[2,-1]} - # Remove the directive including the : and the newline - local suffix - (( suffix=${#lastLine}+2)) - out=${out[1,-$suffix]} - else - # There is no directive specified. Leave $out as is. - __kind_debug "No directive found. Setting do default" - directive=0 - fi - - __kind_debug "directive: ${directive}" - __kind_debug "completions: ${out}" - __kind_debug "flagPrefix: ${flagPrefix}" - - if [ $((directive & shellCompDirectiveError)) -ne 0 ]; then - __kind_debug "Completion received error. Ignoring completions." - return - fi - - while IFS='\n' read -r comp; do - if [ -n "$comp" ]; then - # If requested, completions are returned with a description. - # The description is preceded by a TAB character. - # For zsh's _describe, we need to use a : instead of a TAB. - # We first need to escape any : as part of the completion itself. - comp=${comp//:/\\:} - - local tab=$(printf '\t') - comp=${comp//$tab/:} - - __kind_debug "Adding completion: ${comp}" - completions+=${comp} - lastComp=$comp - fi - done < <(printf "%s\n" "${out[@]}") - - if [ $((directive & shellCompDirectiveNoSpace)) -ne 0 ]; then - __kind_debug "Activating nospace." - noSpace="-S ''" - fi - - if [ $((directive & shellCompDirectiveFilterFileExt)) -ne 0 ]; then - # File extension filtering - local filteringCmd - filteringCmd='_files' - for filter in ${completions[@]}; do - if [ ${filter[1]} != '*' ]; then - # zsh requires a glob pattern to do file filtering - filter="\*.$filter" - fi - filteringCmd+=" -g $filter" - done - filteringCmd+=" ${flagPrefix}" - - __kind_debug "File filtering command: $filteringCmd" - _arguments '*:filename:'"$filteringCmd" - elif [ $((directive & shellCompDirectiveFilterDirs)) -ne 0 ]; then - # File completion for directories only - local subDir - subdir="${completions[1]}" - if [ -n "$subdir" ]; then - __kind_debug "Listing directories in $subdir" - pushd "${subdir}" >/dev/null 2>&1 - else - __kind_debug "Listing directories in ." - fi - - local result - _arguments '*:dirname:_files -/'" ${flagPrefix}" - result=$? - if [ -n "$subdir" ]; then - popd >/dev/null 2>&1 - fi - return $result - else - __kind_debug "Calling _describe" - if eval _describe "completions" completions $flagPrefix $noSpace; then - __kind_debug "_describe found some completions" - - # Return the success of having called _describe - return 0 - else - __kind_debug "_describe did not find completions." - __kind_debug "Checking if we should do file completion." - if [ $((directive & shellCompDirectiveNoFileComp)) -ne 0 ]; then - __kind_debug "deactivating file completion" - - # We must return an error code here to let zsh know that there were no - # completions found by _describe; this is what will trigger other - # matching algorithms to attempt to find completions. - # For example zsh can match letters in the middle of words. - return 1 - else - # Perform file completion - __kind_debug "Activating file completion" - - # We must return the result of this command, so it must be the - # last command, or else we must store its result to return it. - _arguments '*:filename:_files'" ${flagPrefix}" - fi - fi - fi -} - -# don't run the completion function when being source-ed or eval-ed -if [ "$funcstack[1]" = "_kind" ]; then - _kind -fi +for conf in "$HOME/.config/zsh/config.d/"*.zsh; do + source "${conf}" +done +unset conf diff --git a/zsh/config.d/gcloud.zsh b/zsh/config.d/gcloud.zsh new file mode 100644 index 0000000..233ba7b --- /dev/null +++ b/zsh/config.d/gcloud.zsh @@ -0,0 +1,10 @@ +# The next line updates PATH for the Google Cloud SDK. +if [ -f '/Users/jacobbohanon/google-cloud-sdk/path.zsh.inc' ]; then . '/Users/jacobbohanon/google-cloud-sdk/path.zsh.inc'; fi + +# The next line enables shell command completion for gcloud. +if [ -f '/Users/jacobbohanon/google-cloud-sdk/completion.zsh.inc' ]; then . '/Users/jacobbohanon/google-cloud-sdk/completion.zsh.inc'; fi + +alias startenvoydev="gcloud compute instances start bohanon-envoy-dev --zone us-central1-a --project solo-test-236622 && gcloud compute config-ssh --force-key-file-overwrite --project solo-test-236622" +alias stopenvoydev="gcloud compute instances stop bohanon-envoy-dev --zone us-central1-a --project solo-test-236622" +alias sshenvoydev="gcloud beta compute ssh --zone us-central1-a bohanon-envoy-dev --project solo-test-236622" + diff --git a/zsh/config.d/go.zsh b/zsh/config.d/go.zsh new file mode 100644 index 0000000..5bfad0e --- /dev/null +++ b/zsh/config.d/go.zsh @@ -0,0 +1,9 @@ +# GO stuff +export GOPATH="${HOME}/go" +#export GOROOT="$(brew --prefix golang)/libexec" +export GOROOT="/usr/local/go" +export PATH=${GOPATH}/bin:${GOROOT}/bin:$PATH +export GOPRIVATE="github.com/solo-io" +export ACK_GINKGO_DEPRECATIONS=1.16.5 +export GOLANG_PROTOBUF_REGISTRATION_CONFLICT=warn + diff --git a/zsh/config.d/helm.zsh b/zsh/config.d/helm.zsh new file mode 100644 index 0000000..ea9cdc3 --- /dev/null +++ b/zsh/config.d/helm.zsh @@ -0,0 +1,179 @@ +#compdef _helm helm + +# zsh completion for helm -*- shell-script -*- + +__helm_debug() +{ + local file="$BASH_COMP_DEBUG_FILE" + if [[ -n ${file} ]]; then + echo "$*" >> "${file}" + fi +} + +_helm() +{ + local shellCompDirectiveError=1 + local shellCompDirectiveNoSpace=2 + local shellCompDirectiveNoFileComp=4 + local shellCompDirectiveFilterFileExt=8 + local shellCompDirectiveFilterDirs=16 + + local lastParam lastChar flagPrefix requestComp out directive comp lastComp noSpace + local -a completions + + __helm_debug "\n========= starting completion logic ==========" + __helm_debug "CURRENT: ${CURRENT}, words[*]: ${words[*]}" + + # The user could have moved the cursor backwards on the command-line. + # We need to trigger completion from the $CURRENT location, so we need + # to truncate the command-line ($words) up to the $CURRENT location. + # (We cannot use $CURSOR as its value does not work when a command is an alias.) + words=("${=words[1,CURRENT]}") + __helm_debug "Truncated words[*]: ${words[*]}," + + lastParam=${words[-1]} + lastChar=${lastParam[-1]} + __helm_debug "lastParam: ${lastParam}, lastChar: ${lastChar}" + + # For zsh, when completing a flag with an = (e.g., helm -n=) + # completions must be prefixed with the flag + setopt local_options BASH_REMATCH + if [[ "${lastParam}" =~ '-.*=' ]]; then + # We are dealing with a flag with an = + flagPrefix="-P ${BASH_REMATCH}" + fi + + # Prepare the command to obtain completions + requestComp="${words[1]} __complete ${words[2,-1]}" + if [ "${lastChar}" = "" ]; then + # If the last parameter is complete (there is a space following it) + # We add an extra empty parameter so we can indicate this to the go completion code. + __helm_debug "Adding extra empty parameter" + requestComp="${requestComp} \"\"" + fi + + __helm_debug "About to call: eval ${requestComp}" + + # Use eval to handle any environment variables and such + out=$(eval ${requestComp} 2>/dev/null) + __helm_debug "completion output: ${out}" + + # Extract the directive integer following a : from the last line + local lastLine + while IFS='\n' read -r line; do + lastLine=${line} + done < <(printf "%s\n" "${out[@]}") + __helm_debug "last line: ${lastLine}" + + if [ "${lastLine[1]}" = : ]; then + directive=${lastLine[2,-1]} + # Remove the directive including the : and the newline + local suffix + (( suffix=${#lastLine}+2)) + out=${out[1,-$suffix]} + else + # There is no directive specified. Leave $out as is. + __helm_debug "No directive found. Setting do default" + directive=0 + fi + + __helm_debug "directive: ${directive}" + __helm_debug "completions: ${out}" + __helm_debug "flagPrefix: ${flagPrefix}" + + if [ $((directive & shellCompDirectiveError)) -ne 0 ]; then + __helm_debug "Completion received error. Ignoring completions." + return + fi + + while IFS='\n' read -r comp; do + if [ -n "$comp" ]; then + # If requested, completions are returned with a description. + # The description is preceded by a TAB character. + # For zsh's _describe, we need to use a : instead of a TAB. + # We first need to escape any : as part of the completion itself. + comp=${comp//:/\\:} + + local tab=$(printf '\t') + comp=${comp//$tab/:} + + __helm_debug "Adding completion: ${comp}" + completions+=${comp} + lastComp=$comp + fi + done < <(printf "%s\n" "${out[@]}") + + if [ $((directive & shellCompDirectiveNoSpace)) -ne 0 ]; then + __helm_debug "Activating nospace." + noSpace="-S ''" + fi + + if [ $((directive & shellCompDirectiveFilterFileExt)) -ne 0 ]; then + # File extension filtering + local filteringCmd + filteringCmd='_files' + for filter in ${completions[@]}; do + if [ ${filter[1]} != '*' ]; then + # zsh requires a glob pattern to do file filtering + filter="\*.$filter" + fi + filteringCmd+=" -g $filter" + done + filteringCmd+=" ${flagPrefix}" + + __helm_debug "File filtering command: $filteringCmd" + _arguments '*:filename:'"$filteringCmd" + elif [ $((directive & shellCompDirectiveFilterDirs)) -ne 0 ]; then + # File completion for directories only + local subdir + subdir="${completions[1]}" + if [ -n "$subdir" ]; then + __helm_debug "Listing directories in $subdir" + pushd "${subdir}" >/dev/null 2>&1 + else + __helm_debug "Listing directories in ." + fi + + local result + _arguments '*:dirname:_files -/'" ${flagPrefix}" + result=$? + if [ -n "$subdir" ]; then + popd >/dev/null 2>&1 + fi + return $result + else + __helm_debug "Calling _describe" + if eval _describe "completions" completions $flagPrefix $noSpace; then + __helm_debug "_describe found some completions" + + # Return the success of having called _describe + return 0 + else + __helm_debug "_describe did not find completions." + __helm_debug "Checking if we should do file completion." + if [ $((directive & shellCompDirectiveNoFileComp)) -ne 0 ]; then + __helm_debug "deactivating file completion" + + # We must return an error code here to let zsh know that there were no + # completions found by _describe; this is what will trigger other + # matching algorithms to attempt to find completions. + # For example zsh can match letters in the middle of words. + return 1 + else + # Perform file completion + __helm_debug "Activating file completion" + + # We must return the result of this command, so it must be the + # last command, or else we must store its result to return it. + _arguments '*:filename:_files'" ${flagPrefix}" + fi + fi + fi +} + +# don't run the completion function when being source-ed or eval-ed +if [ "$funcstack[1]" = "_helm" ]; then + _helm +fi +compdef _helm helm + diff --git a/zsh/config.d/kind.zsh b/zsh/config.d/kind.zsh new file mode 100644 index 0000000..b608d34 --- /dev/null +++ b/zsh/config.d/kind.zsh @@ -0,0 +1,177 @@ +#compdef _kind kind + +# zsh completion for kind -*- shell-script -*- + +__kind_debug() +{ + local file="$BASH_COMP_DEBUG_FILE" + if [[ -n ${file} ]]; then + echo "$*" >> "${file}" + fi +} + +_kind() +{ + local shellCompDirectiveError=1 + local shellCompDirectiveNoSpace=2 + local shellCompDirectiveNoFileComp=4 + local shellCompDirectiveFilterFileExt=8 + local shellCompDirectiveFilterDirs=16 + + local lastParam lastChar flagPrefix requestComp out directive comp lastComp noSpace + local -a completions + + __kind_debug "\n========= starting completion logic ==========" + __kind_debug "CURRENT: ${CURRENT}, words[*]: ${words[*]}" + + # The user could have moved the cursor backwards on the command-line. + # We need to trigger completion from the $CURRENT location, so we need + # to truncate the command-line ($words) up to the $CURRENT location. + # (We cannot use $CURSOR as its value does not work when a command is an alias.) + words=("${=words[1,CURRENT]}") + __kind_debug "Truncated words[*]: ${words[*]}," + + lastParam=${words[-1]} + lastChar=${lastParam[-1]} + __kind_debug "lastParam: ${lastParam}, lastChar: ${lastChar}" + + # For zsh, when completing a flag with an = (e.g., kind -n=) + # completions must be prefixed with the flag + setopt local_options BASH_REMATCH + if [[ "${lastParam}" =~ '-.*=' ]]; then + # We are dealing with a flag with an = + flagPrefix="-P ${BASH_REMATCH}" + fi + + # Prepare the command to obtain completions + requestComp="${words[1]} __complete ${words[2,-1]}" + if [ "${lastChar}" = "" ]; then + # If the last parameter is complete (there is a space following it) + # We add an extra empty parameter so we can indicate this to the go completion code. + __kind_debug "Adding extra empty parameter" + requestComp="${requestComp} \"\"" + fi + + __kind_debug "About to call: eval ${requestComp}" + + # Use eval to handle any environment variables and such + out=$(eval ${requestComp} 2>/dev/null) + __kind_debug "completion output: ${out}" + + # Extract the directive integer following a : from the last line + local lastLine + while IFS='\n' read -r line; do + lastLine=${line} + done < <(printf "%s\n" "${out[@]}") + __kind_debug "last line: ${lastLine}" + + if [ "${lastLine[1]}" = : ]; then + directive=${lastLine[2,-1]} + # Remove the directive including the : and the newline + local suffix + (( suffix=${#lastLine}+2)) + out=${out[1,-$suffix]} + else + # There is no directive specified. Leave $out as is. + __kind_debug "No directive found. Setting do default" + directive=0 + fi + + __kind_debug "directive: ${directive}" + __kind_debug "completions: ${out}" + __kind_debug "flagPrefix: ${flagPrefix}" + + if [ $((directive & shellCompDirectiveError)) -ne 0 ]; then + __kind_debug "Completion received error. Ignoring completions." + return + fi + + while IFS='\n' read -r comp; do + if [ -n "$comp" ]; then + # If requested, completions are returned with a description. + # The description is preceded by a TAB character. + # For zsh's _describe, we need to use a : instead of a TAB. + # We first need to escape any : as part of the completion itself. + comp=${comp//:/\\:} + + local tab=$(printf '\t') + comp=${comp//$tab/:} + + __kind_debug "Adding completion: ${comp}" + completions+=${comp} + lastComp=$comp + fi + done < <(printf "%s\n" "${out[@]}") + + if [ $((directive & shellCompDirectiveNoSpace)) -ne 0 ]; then + __kind_debug "Activating nospace." + noSpace="-S ''" + fi + + if [ $((directive & shellCompDirectiveFilterFileExt)) -ne 0 ]; then + # File extension filtering + local filteringCmd + filteringCmd='_files' + for filter in ${completions[@]}; do + if [ ${filter[1]} != '*' ]; then + # zsh requires a glob pattern to do file filtering + filter="\*.$filter" + fi + filteringCmd+=" -g $filter" + done + filteringCmd+=" ${flagPrefix}" + + __kind_debug "File filtering command: $filteringCmd" + _arguments '*:filename:'"$filteringCmd" + elif [ $((directive & shellCompDirectiveFilterDirs)) -ne 0 ]; then + # File completion for directories only + local subDir + subdir="${completions[1]}" + if [ -n "$subdir" ]; then + __kind_debug "Listing directories in $subdir" + pushd "${subdir}" >/dev/null 2>&1 + else + __kind_debug "Listing directories in ." + fi + + local result + _arguments '*:dirname:_files -/'" ${flagPrefix}" + result=$? + if [ -n "$subdir" ]; then + popd >/dev/null 2>&1 + fi + return $result + else + __kind_debug "Calling _describe" + if eval _describe "completions" completions $flagPrefix $noSpace; then + __kind_debug "_describe found some completions" + + # Return the success of having called _describe + return 0 + else + __kind_debug "_describe did not find completions." + __kind_debug "Checking if we should do file completion." + if [ $((directive & shellCompDirectiveNoFileComp)) -ne 0 ]; then + __kind_debug "deactivating file completion" + + # We must return an error code here to let zsh know that there were no + # completions found by _describe; this is what will trigger other + # matching algorithms to attempt to find completions. + # For example zsh can match letters in the middle of words. + return 1 + else + # Perform file completion + __kind_debug "Activating file completion" + + # We must return the result of this command, so it must be the + # last command, or else we must store its result to return it. + _arguments '*:filename:_files'" ${flagPrefix}" + fi + fi + fi +} + +# don't run the completion function when being source-ed or eval-ed +if [ "$funcstack[1]" = "_kind" ]; then + _kind +fi diff --git a/zsh/config.d/nvm.zsh b/zsh/config.d/nvm.zsh new file mode 100644 index 0000000..a280dc3 --- /dev/null +++ b/zsh/config.d/nvm.zsh @@ -0,0 +1,4 @@ +export NVM_DIR="$HOME/.nvm" +[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm +[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion + diff --git a/zsh/config.d/oh-my.zsh b/zsh/config.d/oh-my.zsh new file mode 100644 index 0000000..34c5cb3 --- /dev/null +++ b/zsh/config.d/oh-my.zsh @@ -0,0 +1,82 @@ +# Path to your oh-my-zsh installation. +export ZSH=/Users/jacobbohanon/.oh-my-zsh + +# Set name of the theme to load. Optionally, if you set this to "random" +# it'll load a random theme each time that oh-my-zsh is loaded. +# See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes +ZSH_THEME="robbyrussell" +# fzf stuff +_fzf_compgen_path() { + fd --hidden --follow --exclude ".git" . "$1" +} +# Use fd to generate the list for directory completion +_fzf_compgen_dir() { + fd --type d --hidden --follow --exclude ".git" . "$1" +} +# Set list of themes to load +# Setting this variable when ZSH_THEME=random +# cause zsh load theme from this variable instead of +# looking in ~/.oh-my-zsh/themes/ +# An empty array have no effect +# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" ) +# Uncomment the following line to use case-sensitive completion. +# CASE_SENSITIVE="true" +# Uncomment the following line to use hyphen-insensitive completion. Case +# sensitive completion must be off. _ and - will be interchangeable. +# HYPHEN_INSENSITIVE="true" +# Uncomment the following line to disable bi-weekly auto-update checks. +DISABLE_AUTO_UPDATE="true" +# Uncomment the following line to change how often to auto-update (in days). +export UPDATE_ZSH_DAYS=13 +# Uncomment the following line to disable colors in ls. +# DISABLE_LS_COLORS="true" +# Uncomment the following line to disable auto-setting terminal title. +# DISABLE_AUTO_TITLE="true" +# Uncomment the following line to enable command auto-correction. +# ENABLE_CORRECTION="true" +# Uncomment the following line to display red dots whilst waiting for completion. +# COMPLETION_WAITING_DOTS="true" +# Uncomment the following line if you want to disable marking untracked files +# under VCS as dirty. This makes repository status check for large repositories +# much, much faster. +DISABLE_UNTRACKED_FILES_DIRTY="true" +# Uncomment the following line if you want to change the command execution time +# stamp shown in the history command output. +# The optional three formats: "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd" +# HIST_STAMPS="mm/dd/yyyy" +# Would you like to use another custom folder than $ZSH/custom? +# ZSH_CUSTOM=/path/to/new-custom-folder +# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*) +# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/ +# Example format: plugins=(rails git textmate ruby lighthouse) +# Add wisely, as too many plugins slow down shell startup. +plugins=( + git + fzf + zsh-autosuggestions + zsh-syntax-highlighting + kubectl +) +source $ZSH/oh-my-zsh.sh +# User configuration +# export MANPATH="/usr/local/man:$MANPATH" +# You may need to manually set your language environment +# export LANG=en_US.UTF-8 +# Preferred editor for local and remote sessions +# if [[ -n $SSH_CONNECTION ]]; then +# export EDITOR='vim' +# else +# export EDITOR='mvim' +# fi +# Compilation flags +# export ARCHFLAGS="-arch x86_64" +# ssh +export SSH_KEY_PATH="~/.ssh/rsa_id" + +# Set personal aliases, overriding those provided by oh-my-zsh libs, +# plugins, and themes. Aliases can be placed here, though oh-my-zsh +# users are encouraged to define aliases within the ZSH_CUSTOM folder. +# For a full list of active aliases, run `alias`. +[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh +eval "$(starship init zsh)" + diff --git a/zsh/config.d/solo.zsh b/zsh/config.d/solo.zsh new file mode 100644 index 0000000..c1a319a --- /dev/null +++ b/zsh/config.d/solo.zsh @@ -0,0 +1,23 @@ +# Aliases to reach different repos +alias cdsi='cd $GOPATH/src/github.com/solo-io' +alias cdg='cd $GOPATH/src/github.com/solo-io/gloo' +alias nvg='nvim $GOPATH/src/github.com/solo-io/gloo/README.md' +alias cdgf='cd $GOPATH/src/github.com/solo-io/gloo-fed' +alias nvgf='nvim $GOPATH/src/github.com/solo-io/gloo-fed/README.md' +alias cdsp='cd $GOPATH/src/github.com/solo-io/solo-projects' +alias nvsp='nvim $GOPATH/src/github.com/solo-io/solo-projects/README.md' +alias cdsa='cd $GOPATH/src/github.com/solo-io/solo-apis' +alias nvsa='nvim $GOPATH/src/github.com/solo-io/solo-apis/README.md' +alias cddp='cd $GOPATH/src/github.com/solo-io/dev-portal' +alias nvdp='nvim $GOPATH/src/github.com/solo-io/dev-portal/README.md' +alias cdgm='cd $GOPATH/src/github.com/solo-io/gloo-mesh' +alias nvgm='nvim $GOPATH/src/github.com/solo-io/gloo-mesh/README.md' +alias cdgmui='cd $GOPATH/src/github.com/solo-io/gloo-mesh-ui' +alias nvgmui='nvim $GOPATH/src/github.com/solo-io/gloo-mesh-ui/README.md' +alias cdgme='cd $GOPATH/src/github.com/solo-io/gloo-mesh-enterprise' +alias nvgme='nvim $GOPATH/src/github.com/solo-io/gloo-mesh-enterprise/README.md' +alias cdea='cd $GOPATH/src/github.com/solo-io/ext-auth-service' +alias nvea='nvim $GOPATH/src/github.com/solo-io/ext-auth-service/README.md' +alias cdrl='cd $GOPATH/src/github.com/solo-io/rate-limiter' +alias nvrl='nvim $GOPATH/src/github.com/solo-io/rate-limiter/README.md' +