diff --git a/vim/.vim/autoload/plug.vim b/vim/.vim/autoload/plug.vim index b6e4cbf..652caa8 100644 --- a/vim/.vim/autoload/plug.vim +++ b/vim/.vim/autoload/plug.vim @@ -242,6 +242,8 @@ function! plug#begin(...) let home = s:path(s:plug_fnamemodify(s:plug_expand(a:1), ':p')) elseif exists('g:plug_home') let home = s:path(g:plug_home) + elseif has('nvim') + let home = stdpath('data') . '/plugged' elseif !empty(&rtp) let home = s:path(split(&rtp, ',')[0]) . '/plugged' else @@ -350,7 +352,7 @@ function! plug#end() endif let lod = { 'ft': {}, 'map': {}, 'cmd': {} } - if exists('g:did_load_filetypes') + if get(g:, 'did_load_filetypes', 0) filetype off endif for name in g:plugs_order @@ -405,7 +407,7 @@ function! plug#end() for [map, names] in items(lod.map) for [mode, map_prefix, key_prefix] in - \ [['i', '', ''], ['n', '', ''], ['v', '', 'gv'], ['o', '', '']] + \ [['i', '', ''], ['n', '', ''], ['v', '', 'gv'], ['o', '', '']] execute printf( \ '%snoremap %s %s:call lod_map(%s, %s, %s, "%s")', \ mode, map, map_prefix, string(map), string(names), mode != 'i', key_prefix) @@ -2619,26 +2621,34 @@ function! s:preview_commit() let sha = matchstr(getline('.'), '^ \X*\zs[0-9a-f]\{7,9}') if empty(sha) - return + let name = matchstr(getline('.'), '^- \zs[^:]*\ze:$') + if empty(name) + return + endif + let title = 'HEAD@{1}..' + let command = 'git diff --no-color HEAD@{1}' + else + let title = sha + let command = 'git show --no-color --pretty=medium '.sha + let name = s:find_name(line('.')) endif - let name = s:find_name(line('.')) if empty(name) || !has_key(g:plugs, name) || !isdirectory(g:plugs[name].dir) return endif if exists('g:plug_pwindow') && !s:is_preview_window_open() execute g:plug_pwindow - execute 'e' sha + execute 'e' title else - execute 'pedit' sha + execute 'pedit' title wincmd P endif - setlocal previewwindow filetype=git buftype=nofile nobuflisted modifiable + setlocal previewwindow filetype=git buftype=nofile bufhidden=wipe nobuflisted modifiable let batchfile = '' try let [sh, shellcmdflag, shrd] = s:chsh(1) - let cmd = 'cd '.plug#shellescape(g:plugs[name].dir).' && git show --no-color --pretty=medium '.sha + let cmd = 'cd '.plug#shellescape(g:plugs[name].dir).' && '.command if s:is_win let [batchfile, cmd] = s:batchfile(cmd) endif @@ -2764,9 +2774,9 @@ function! s:snapshot(force, ...) abort 1 let anchor = line('$') - 3 let names = sort(keys(filter(copy(g:plugs), - \'has_key(v:val, "uri") && !has_key(v:val, "commit") && isdirectory(v:val.dir)'))) + \'has_key(v:val, "uri") && isdirectory(v:val.dir)'))) for name in reverse(names) - let sha = s:git_revision(g:plugs[name].dir) + let sha = has_key(g:plugs[name], 'commit') ? g:plugs[name].commit : s:git_revision(g:plugs[name].dir) if !empty(sha) call append(anchor, printf("silent! let g:plugs['%s'].commit = '%s'", name, sha)) redraw diff --git a/vim/.vim/plugged/MatchTagAlways b/vim/.vim/plugged/MatchTagAlways new file mode 160000 index 0000000..352eb47 --- /dev/null +++ b/vim/.vim/plugged/MatchTagAlways @@ -0,0 +1 @@ +Subproject commit 352eb479a4ad1608e0880b79ab2357aac2cf4bed diff --git a/vim/.vim/plugged/asyncrun.vim b/vim/.vim/plugged/asyncrun.vim new file mode 160000 index 0000000..aa8a99e --- /dev/null +++ b/vim/.vim/plugged/asyncrun.vim @@ -0,0 +1 @@ +Subproject commit aa8a99e87e64276d52556f4d9d4f4a19afd37556 diff --git a/vim/.vim/plugged/c-syntax.vim b/vim/.vim/plugged/c-syntax.vim new file mode 160000 index 0000000..e0f3636 --- /dev/null +++ b/vim/.vim/plugged/c-syntax.vim @@ -0,0 +1 @@ +Subproject commit e0f36366b8ad6ba9eca32c9e50eb4d47f0eac197 diff --git a/vim/.vim/plugged/cloudformation-syntax.vim b/vim/.vim/plugged/cloudformation-syntax.vim new file mode 160000 index 0000000..20a5098 --- /dev/null +++ b/vim/.vim/plugged/cloudformation-syntax.vim @@ -0,0 +1 @@ +Subproject commit 20a5098e34904197f65647061a34d249d673c5fc diff --git a/vim/.vim/plugged/cmp-buffer b/vim/.vim/plugged/cmp-buffer new file mode 160000 index 0000000..62fc67a --- /dev/null +++ b/vim/.vim/plugged/cmp-buffer @@ -0,0 +1 @@ +Subproject commit 62fc67a2b0205136bc3e312664624ba2ab4a9323 diff --git a/vim/.vim/plugged/cmp-nvim-lsp b/vim/.vim/plugged/cmp-nvim-lsp new file mode 160000 index 0000000..affe808 --- /dev/null +++ b/vim/.vim/plugged/cmp-nvim-lsp @@ -0,0 +1 @@ +Subproject commit affe808a5c56b71630f17aa7c38e15c59fd648a8 diff --git a/vim/.vim/plugged/cmp-nvim-lua b/vim/.vim/plugged/cmp-nvim-lua new file mode 160000 index 0000000..d276254 --- /dev/null +++ b/vim/.vim/plugged/cmp-nvim-lua @@ -0,0 +1 @@ +Subproject commit d276254e7198ab7d00f117e88e223b4bd8c02d21 diff --git a/vim/.vim/plugged/cmp-path b/vim/.vim/plugged/cmp-path new file mode 160000 index 0000000..447c87c --- /dev/null +++ b/vim/.vim/plugged/cmp-path @@ -0,0 +1 @@ +Subproject commit 447c87cdd6e6d6a1d2488b1d43108bfa217f56e1 diff --git a/vim/.vim/plugged/cmp-vsnip b/vim/.vim/plugged/cmp-vsnip new file mode 160000 index 0000000..0abfa18 --- /dev/null +++ b/vim/.vim/plugged/cmp-vsnip @@ -0,0 +1 @@ +Subproject commit 0abfa1860f5e095a07c477da940cfcb0d273b700 diff --git a/vim/.vim/plugged/ejs-syntax b/vim/.vim/plugged/ejs-syntax new file mode 160000 index 0000000..0e704c5 --- /dev/null +++ b/vim/.vim/plugged/ejs-syntax @@ -0,0 +1 @@ +Subproject commit 0e704c523dacfda547215b5936067869e79103c4 diff --git a/vim/.vim/plugged/emmet-vim b/vim/.vim/plugged/emmet-vim new file mode 160000 index 0000000..def5d57 --- /dev/null +++ b/vim/.vim/plugged/emmet-vim @@ -0,0 +1 @@ +Subproject commit def5d57a1ae5afb1b96ebe83c4652d1c03640f4d diff --git a/vim/.vim/plugged/focuspoint-vim b/vim/.vim/plugged/focuspoint-vim new file mode 160000 index 0000000..72b6634 --- /dev/null +++ b/vim/.vim/plugged/focuspoint-vim @@ -0,0 +1 @@ +Subproject commit 72b6634d234c75b1213dd7b379b6405621a83a01 diff --git a/vim/.vim/plugged/fzf.vim b/vim/.vim/plugged/fzf.vim new file mode 160000 index 0000000..c311c0a --- /dev/null +++ b/vim/.vim/plugged/fzf.vim @@ -0,0 +1 @@ +Subproject commit c311c0a95fc2529c26ab36a8f530e9dd4426304c diff --git a/vim/.vim/plugged/gounit-vim b/vim/.vim/plugged/gounit-vim new file mode 160000 index 0000000..69ba1af --- /dev/null +++ b/vim/.vim/plugged/gounit-vim @@ -0,0 +1 @@ +Subproject commit 69ba1afa31d7a3622df678cecd7c480e9ec07c18 diff --git a/vim/.vim/plugged/gv.vim b/vim/.vim/plugged/gv.vim new file mode 160000 index 0000000..1507838 --- /dev/null +++ b/vim/.vim/plugged/gv.vim @@ -0,0 +1 @@ +Subproject commit 1507838ee67f9b298def89cbfc404a0fee4a4b8c diff --git a/vim/.vim/plugged/java-syntax.vim b/vim/.vim/plugged/java-syntax.vim new file mode 160000 index 0000000..eb7b012 --- /dev/null +++ b/vim/.vim/plugged/java-syntax.vim @@ -0,0 +1 @@ +Subproject commit eb7b01237d0752f98a521f51c8daca760ddf082e diff --git a/vim/.vim/plugged/kotlin-vim b/vim/.vim/plugged/kotlin-vim new file mode 160000 index 0000000..1261f85 --- /dev/null +++ b/vim/.vim/plugged/kotlin-vim @@ -0,0 +1 @@ +Subproject commit 1261f851e5fb2192b3a5e1691650597c71dfce2f diff --git a/vim/.vim/plugged/linediff.vim b/vim/.vim/plugged/linediff.vim new file mode 160000 index 0000000..c7710db --- /dev/null +++ b/vim/.vim/plugged/linediff.vim @@ -0,0 +1 @@ +Subproject commit c7710dbc59881b038ca064b6c54fe482303e8304 diff --git a/vim/.vim/plugged/lspkind.nvim b/vim/.vim/plugged/lspkind.nvim new file mode 160000 index 0000000..57e5b5d --- /dev/null +++ b/vim/.vim/plugged/lspkind.nvim @@ -0,0 +1 @@ +Subproject commit 57e5b5dfbe991151b07d272a06e365a77cc3d0e7 diff --git a/vim/.vim/plugged/md-img-paste.vim b/vim/.vim/plugged/md-img-paste.vim new file mode 160000 index 0000000..01d747c --- /dev/null +++ b/vim/.vim/plugged/md-img-paste.vim @@ -0,0 +1 @@ +Subproject commit 01d747cdde905d484871ac2842542b2a34746ffb diff --git a/vim/.vim/plugged/nerdcommenter b/vim/.vim/plugged/nerdcommenter new file mode 160000 index 0000000..6d30ebc --- /dev/null +++ b/vim/.vim/plugged/nerdcommenter @@ -0,0 +1 @@ +Subproject commit 6d30ebcd428eb5a244229a125420a1e044b42b52 diff --git a/vim/.vim/plugged/nerdtree b/vim/.vim/plugged/nerdtree new file mode 160000 index 0000000..fc85a6f --- /dev/null +++ b/vim/.vim/plugged/nerdtree @@ -0,0 +1 @@ +Subproject commit fc85a6f07c2cd694be93496ffad75be126240068 diff --git a/vim/.vim/plugged/nofrils b/vim/.vim/plugged/nofrils new file mode 160000 index 0000000..bad6e49 --- /dev/null +++ b/vim/.vim/plugged/nofrils @@ -0,0 +1 @@ +Subproject commit bad6e490846e098866136ef20fff31e99f428bb9 diff --git a/vim/.vim/plugged/nord-vim b/vim/.vim/plugged/nord-vim new file mode 160000 index 0000000..bc0f057 --- /dev/null +++ b/vim/.vim/plugged/nord-vim @@ -0,0 +1 @@ +Subproject commit bc0f057162491e9228207d74bd88b5efe875316e diff --git a/vim/.vim/plugged/nvim-cmp b/vim/.vim/plugged/nvim-cmp new file mode 160000 index 0000000..706371f --- /dev/null +++ b/vim/.vim/plugged/nvim-cmp @@ -0,0 +1 @@ +Subproject commit 706371f1300e7c0acb98b346f80dad2dd9b5f679 diff --git a/vim/.vim/plugged/nvim-gdb b/vim/.vim/plugged/nvim-gdb new file mode 160000 index 0000000..4408d2c --- /dev/null +++ b/vim/.vim/plugged/nvim-gdb @@ -0,0 +1 @@ +Subproject commit 4408d2c10618636101945e9cd9ef9d68fc335e19 diff --git a/vim/.vim/plugged/nvim-lspconfig b/vim/.vim/plugged/nvim-lspconfig new file mode 160000 index 0000000..ba25b74 --- /dev/null +++ b/vim/.vim/plugged/nvim-lspconfig @@ -0,0 +1 @@ +Subproject commit ba25b747a3cff70c1532c2f28fcc912cf7b938ea diff --git a/vim/.vim/plugged/nvim-treesitter b/vim/.vim/plugged/nvim-treesitter new file mode 160000 index 0000000..42891dc --- /dev/null +++ b/vim/.vim/plugged/nvim-treesitter @@ -0,0 +1 @@ +Subproject commit 42891dccf82438ed021cd4ad338ff2412fb31dfd diff --git a/vim/.vim/plugged/nvim-web-devicons b/vim/.vim/plugged/nvim-web-devicons new file mode 160000 index 0000000..2d02a56 --- /dev/null +++ b/vim/.vim/plugged/nvim-web-devicons @@ -0,0 +1 @@ +Subproject commit 2d02a56189e2bde11edd4712fea16f08a6656944 diff --git a/vim/.vim/plugged/omnisharp-vim b/vim/.vim/plugged/omnisharp-vim new file mode 160000 index 0000000..7e88f13 --- /dev/null +++ b/vim/.vim/plugged/omnisharp-vim @@ -0,0 +1 @@ +Subproject commit 7e88f137ad7b74b0beb7034e592bcd07922be5e8 diff --git a/vim/.vim/plugged/onedark.vim b/vim/.vim/plugged/onedark.vim new file mode 160000 index 0000000..1fe54f2 --- /dev/null +++ b/vim/.vim/plugged/onedark.vim @@ -0,0 +1 @@ +Subproject commit 1fe54f212f09a03c2b5e277f0fe5b7b9d0b0a4ed diff --git a/vim/.vim/plugged/onehalf b/vim/.vim/plugged/onehalf new file mode 160000 index 0000000..141c775 --- /dev/null +++ b/vim/.vim/plugged/onehalf @@ -0,0 +1 @@ +Subproject commit 141c775ace6b71992305f144a8ab68e9a8ca4a25 diff --git a/vim/.vim/plugged/papercolor-theme b/vim/.vim/plugged/papercolor-theme new file mode 160000 index 0000000..9051480 --- /dev/null +++ b/vim/.vim/plugged/papercolor-theme @@ -0,0 +1 @@ +Subproject commit 9051480ad9129ff4ab4fffb38b44779b9081626f diff --git a/vim/.vim/plugged/php.vim b/vim/.vim/plugged/php.vim new file mode 160000 index 0000000..930aec5 --- /dev/null +++ b/vim/.vim/plugged/php.vim @@ -0,0 +1 @@ +Subproject commit 930aec5c7026297a6630bd2940c08c5ff552cf2a diff --git a/vim/.vim/plugged/plenary.nvim b/vim/.vim/plugged/plenary.nvim new file mode 160000 index 0000000..986ad71 --- /dev/null +++ b/vim/.vim/plugged/plenary.nvim @@ -0,0 +1 @@ +Subproject commit 986ad71ae930c7d96e812734540511b4ca838aa2 diff --git a/vim/.vim/plugged/purify b/vim/.vim/plugged/purify new file mode 160000 index 0000000..a6a5c60 --- /dev/null +++ b/vim/.vim/plugged/purify @@ -0,0 +1 @@ +Subproject commit a6a5c600dbb50beff82a20f2374f0bcd868b4414 diff --git a/vim/.vim/plugged/shades-of-teal b/vim/.vim/plugged/shades-of-teal new file mode 160000 index 0000000..5bf8499 --- /dev/null +++ b/vim/.vim/plugged/shades-of-teal @@ -0,0 +1 @@ +Subproject commit 5bf84996df5cd34153c447385b81a78f4c9d3add diff --git a/vim/.vim/plugged/telescope-codesearch.nvim b/vim/.vim/plugged/telescope-codesearch.nvim new file mode 160000 index 0000000..9455a5f --- /dev/null +++ b/vim/.vim/plugged/telescope-codesearch.nvim @@ -0,0 +1 @@ +Subproject commit 9455a5f2a9e837a5e7b22919369b8351ac5cce15 diff --git a/vim/.vim/plugged/telescope.nvim b/vim/.vim/plugged/telescope.nvim new file mode 160000 index 0000000..b5833a6 --- /dev/null +++ b/vim/.vim/plugged/telescope.nvim @@ -0,0 +1 @@ +Subproject commit b5833a682c511885887373aad76272ad70f7b3c2 diff --git a/vim/.vim/plugged/tender.vim b/vim/.vim/plugged/tender.vim new file mode 160000 index 0000000..7746453 --- /dev/null +++ b/vim/.vim/plugged/tender.vim @@ -0,0 +1 @@ +Subproject commit 7746453a045eaa97dc413a7209268345f33f3243 diff --git a/vim/.vim/plugged/trouble.nvim b/vim/.vim/plugged/trouble.nvim new file mode 160000 index 0000000..da61737 --- /dev/null +++ b/vim/.vim/plugged/trouble.nvim @@ -0,0 +1 @@ +Subproject commit da61737d860ddc12f78e638152834487eabf0ee5 diff --git a/vim/.vim/plugged/ultisnips b/vim/.vim/plugged/ultisnips new file mode 160000 index 0000000..1edcb40 --- /dev/null +++ b/vim/.vim/plugged/ultisnips @@ -0,0 +1 @@ +Subproject commit 1edcb40ce749c47d5da42ab02dcdf21f9279bfbb diff --git a/vim/.vim/plugged/vim-airline b/vim/.vim/plugged/vim-airline new file mode 160000 index 0000000..ebb89a0 --- /dev/null +++ b/vim/.vim/plugged/vim-airline @@ -0,0 +1 @@ +Subproject commit ebb89a0846ff8b8bc64579155d661b825f97d3f2 diff --git a/vim/.vim/plugged/vim-airline-themes b/vim/.vim/plugged/vim-airline-themes new file mode 160000 index 0000000..55bad92 --- /dev/null +++ b/vim/.vim/plugged/vim-airline-themes @@ -0,0 +1 @@ +Subproject commit 55bad92d246a31e3425dfaf16b7eec657eab1fad diff --git a/vim/.vim/plugged/vim-android b/vim/.vim/plugged/vim-android new file mode 160000 index 0000000..b8b684f --- /dev/null +++ b/vim/.vim/plugged/vim-android @@ -0,0 +1 @@ +Subproject commit b8b684f60a26a7208771fc39cbeb6a6421a19ea2 diff --git a/vim/.vim/plugged/vim-ansible-yaml b/vim/.vim/plugged/vim-ansible-yaml new file mode 160000 index 0000000..a6f92d1 --- /dev/null +++ b/vim/.vim/plugged/vim-ansible-yaml @@ -0,0 +1 @@ +Subproject commit a6f92d17ff01b2e63d6c9fdbb7f7e13c7fd41d14 diff --git a/vim/.vim/plugged/vim-atom-dark b/vim/.vim/plugged/vim-atom-dark new file mode 160000 index 0000000..44feadc --- /dev/null +++ b/vim/.vim/plugged/vim-atom-dark @@ -0,0 +1 @@ +Subproject commit 44feadcbeb2a8b2a21e373261a6293679f79da94 diff --git a/vim/.vim/plugged/vim-autoflake b/vim/.vim/plugged/vim-autoflake new file mode 160000 index 0000000..5d0a5b4 --- /dev/null +++ b/vim/.vim/plugged/vim-autoflake @@ -0,0 +1 @@ +Subproject commit 5d0a5b437abe2f92d2f306622584de817e216403 diff --git a/vim/.vim/plugged/vim-better-whitespace b/vim/.vim/plugged/vim-better-whitespace new file mode 160000 index 0000000..1b22dc5 --- /dev/null +++ b/vim/.vim/plugged/vim-better-whitespace @@ -0,0 +1 @@ +Subproject commit 1b22dc57a2751c7afbc6025a7da39b7c22db635d diff --git a/vim/.vim/plugged/vim-case-convert b/vim/.vim/plugged/vim-case-convert new file mode 160000 index 0000000..0a75eb4 --- /dev/null +++ b/vim/.vim/plugged/vim-case-convert @@ -0,0 +1 @@ +Subproject commit 0a75eb4cf77976c1cdecaa6155c752b1f0c693d8 diff --git a/vim/.vim/plugged/vim-colors-solarized b/vim/.vim/plugged/vim-colors-solarized new file mode 160000 index 0000000..528a59f --- /dev/null +++ b/vim/.vim/plugged/vim-colors-solarized @@ -0,0 +1 @@ +Subproject commit 528a59f26d12278698bb946f8fb82a63711eec21 diff --git a/vim/.vim/plugged/vim-colorscheme-primary b/vim/.vim/plugged/vim-colorscheme-primary new file mode 160000 index 0000000..cd6d542 --- /dev/null +++ b/vim/.vim/plugged/vim-colorscheme-primary @@ -0,0 +1 @@ +Subproject commit cd6d5422a36afdbdcf28662e63d96827b5e6e226 diff --git a/vim/.vim/plugged/vim-cpp-enhanced-highlight b/vim/.vim/plugged/vim-cpp-enhanced-highlight new file mode 160000 index 0000000..4b7314a --- /dev/null +++ b/vim/.vim/plugged/vim-cpp-enhanced-highlight @@ -0,0 +1 @@ +Subproject commit 4b7314a497ea2dd0a6911ccb94ce83b2d8684617 diff --git a/vim/.vim/plugged/vim-easy-align b/vim/.vim/plugged/vim-easy-align new file mode 160000 index 0000000..12dd631 --- /dev/null +++ b/vim/.vim/plugged/vim-easy-align @@ -0,0 +1 @@ +Subproject commit 12dd6316974f71ce333e360c0260b4e1f81169c3 diff --git a/vim/.vim/plugged/vim-easymotion b/vim/.vim/plugged/vim-easymotion new file mode 160000 index 0000000..b3cfab2 --- /dev/null +++ b/vim/.vim/plugged/vim-easymotion @@ -0,0 +1 @@ +Subproject commit b3cfab2a6302b3b39f53d9fd2cd997e1127d7878 diff --git a/vim/.vim/plugged/vim-exchange b/vim/.vim/plugged/vim-exchange new file mode 160000 index 0000000..784d630 --- /dev/null +++ b/vim/.vim/plugged/vim-exchange @@ -0,0 +1 @@ +Subproject commit 784d63083ad7d613aa96f00021cd0dfb126a781a diff --git a/vim/.vim/plugged/vim-fugitive b/vim/.vim/plugged/vim-fugitive new file mode 160000 index 0000000..9a13fc8 --- /dev/null +++ b/vim/.vim/plugged/vim-fugitive @@ -0,0 +1 @@ +Subproject commit 9a13fc87c4ab83ea81e71ccad9b846a5eb31a998 diff --git a/vim/.vim/plugged/vim-git b/vim/.vim/plugged/vim-git new file mode 160000 index 0000000..5143bea --- /dev/null +++ b/vim/.vim/plugged/vim-git @@ -0,0 +1 @@ +Subproject commit 5143bea9ed17bc32163dbe3ca706344d79507b9d diff --git a/vim/.vim/plugged/vim-gitgutter b/vim/.vim/plugged/vim-gitgutter new file mode 160000 index 0000000..ded1194 --- /dev/null +++ b/vim/.vim/plugged/vim-gitgutter @@ -0,0 +1 @@ +Subproject commit ded11946c04aeab5526f869174044019ae9e3c32 diff --git a/vim/.vim/plugged/vim-go b/vim/.vim/plugged/vim-go new file mode 160000 index 0000000..7ec0a19 --- /dev/null +++ b/vim/.vim/plugged/vim-go @@ -0,0 +1 @@ +Subproject commit 7ec0a19a78a453686cb5c9776e506375562f9a1f diff --git a/vim/.vim/plugged/vim-graphql b/vim/.vim/plugged/vim-graphql new file mode 160000 index 0000000..4bf5d33 --- /dev/null +++ b/vim/.vim/plugged/vim-graphql @@ -0,0 +1 @@ +Subproject commit 4bf5d33bda83117537aa3c117dee5b9b14fc9333 diff --git a/vim/.vim/plugged/vim-helm b/vim/.vim/plugged/vim-helm new file mode 160000 index 0000000..86a63d0 --- /dev/null +++ b/vim/.vim/plugged/vim-helm @@ -0,0 +1 @@ +Subproject commit 86a63d007ffee156d759061850cda9d8daa8ea12 diff --git a/vim/.vim/plugged/vim-hybrid-material b/vim/.vim/plugged/vim-hybrid-material new file mode 160000 index 0000000..ad03127 --- /dev/null +++ b/vim/.vim/plugged/vim-hybrid-material @@ -0,0 +1 @@ +Subproject commit ad031275c63a05b6acb6014a2401d8719a290bd4 diff --git a/vim/.vim/plugged/vim-indent-guides b/vim/.vim/plugged/vim-indent-guides new file mode 160000 index 0000000..765084d --- /dev/null +++ b/vim/.vim/plugged/vim-indent-guides @@ -0,0 +1 @@ +Subproject commit 765084d38bf102a95ab966fb06472e83fa7deff7 diff --git a/vim/.vim/plugged/vim-javascript b/vim/.vim/plugged/vim-javascript new file mode 160000 index 0000000..d6e1375 --- /dev/null +++ b/vim/.vim/plugged/vim-javascript @@ -0,0 +1 @@ +Subproject commit d6e137563c47fb59f26ed25d044c0c7532304f18 diff --git a/vim/.vim/plugged/vim-json b/vim/.vim/plugged/vim-json new file mode 160000 index 0000000..3727f08 --- /dev/null +++ b/vim/.vim/plugged/vim-json @@ -0,0 +1 @@ +Subproject commit 3727f089410e23ae113be6222e8a08dd2613ecf2 diff --git a/vim/.vim/plugged/vim-markdown b/vim/.vim/plugged/vim-markdown new file mode 160000 index 0000000..3a96439 --- /dev/null +++ b/vim/.vim/plugged/vim-markdown @@ -0,0 +1 @@ +Subproject commit 3a9643961233c2812816078af8bd1eaabc530dce diff --git a/vim/.vim/plugged/vim-material-theme b/vim/.vim/plugged/vim-material-theme new file mode 160000 index 0000000..c281959 --- /dev/null +++ b/vim/.vim/plugged/vim-material-theme @@ -0,0 +1 @@ +Subproject commit c28195998d275e6d150f3c9156b9a7c8e2953a40 diff --git a/vim/.vim/plugged/vim-monochrome b/vim/.vim/plugged/vim-monochrome new file mode 160000 index 0000000..c4f1881 --- /dev/null +++ b/vim/.vim/plugged/vim-monochrome @@ -0,0 +1 @@ +Subproject commit c4f18812bbdbe640ffddf69e0c5734ec87d6b5e7 diff --git a/vim/.vim/plugged/vim-monokai-tasty b/vim/.vim/plugged/vim-monokai-tasty new file mode 160000 index 0000000..13a0d38 --- /dev/null +++ b/vim/.vim/plugged/vim-monokai-tasty @@ -0,0 +1 @@ +Subproject commit 13a0d38fea1e21fa39deb27fafcfa35335ccc2f4 diff --git a/vim/.vim/plugged/vim-nerdtree-syntax-highlight b/vim/.vim/plugged/vim-nerdtree-syntax-highlight new file mode 160000 index 0000000..5178ee4 --- /dev/null +++ b/vim/.vim/plugged/vim-nerdtree-syntax-highlight @@ -0,0 +1 @@ +Subproject commit 5178ee4d7f4e7761187df30bb709f703d91df18a diff --git a/vim/.vim/plugged/vim-nuuid b/vim/.vim/plugged/vim-nuuid new file mode 160000 index 0000000..6abc11a --- /dev/null +++ b/vim/.vim/plugged/vim-nuuid @@ -0,0 +1 @@ +Subproject commit 6abc11a7943e5777c27b6271f3b6243f426d68fd diff --git a/vim/.vim/plugged/vim-obsession b/vim/.vim/plugged/vim-obsession new file mode 160000 index 0000000..7d39576 --- /dev/null +++ b/vim/.vim/plugged/vim-obsession @@ -0,0 +1 @@ +Subproject commit 7d39576149d17bde3c096fd57e3a2cdae65deaf5 diff --git a/vim/.vim/plugged/vim-quantum b/vim/.vim/plugged/vim-quantum new file mode 160000 index 0000000..78c435b --- /dev/null +++ b/vim/.vim/plugged/vim-quantum @@ -0,0 +1 @@ +Subproject commit 78c435ba226f465e243b7c728b87ad13d37e9cd6 diff --git a/vim/.vim/plugged/vim-ripgrep b/vim/.vim/plugged/vim-ripgrep new file mode 160000 index 0000000..80c9dc9 --- /dev/null +++ b/vim/.vim/plugged/vim-ripgrep @@ -0,0 +1 @@ +Subproject commit 80c9dc96b3cda9ff9380fa92d91f6851c8d0665b diff --git a/vim/.vim/plugged/vim-scratchpad b/vim/.vim/plugged/vim-scratchpad new file mode 160000 index 0000000..d1f7875 --- /dev/null +++ b/vim/.vim/plugged/vim-scratchpad @@ -0,0 +1 @@ +Subproject commit d1f7875608c50ccd98c4835c1913bfdc65b7b2e1 diff --git a/vim/.vim/plugged/vim-snippets b/vim/.vim/plugged/vim-snippets new file mode 160000 index 0000000..c5d977c --- /dev/null +++ b/vim/.vim/plugged/vim-snippets @@ -0,0 +1 @@ +Subproject commit c5d977c49211883b9241086874fe89c72ae378ca diff --git a/vim/.vim/plugged/vim-stylus b/vim/.vim/plugged/vim-stylus new file mode 160000 index 0000000..0514757 --- /dev/null +++ b/vim/.vim/plugged/vim-stylus @@ -0,0 +1 @@ +Subproject commit 0514757a4795843978517ee73d7fa7d8bf2e5545 diff --git a/vim/.vim/plugged/vim-surround b/vim/.vim/plugged/vim-surround new file mode 160000 index 0000000..bf3480d --- /dev/null +++ b/vim/.vim/plugged/vim-surround @@ -0,0 +1 @@ +Subproject commit bf3480dc9ae7bea34c78fbba4c65b4548b5b1fea diff --git a/vim/.vim/plugged/vim-syntax-extra b/vim/.vim/plugged/vim-syntax-extra new file mode 160000 index 0000000..5906eea --- /dev/null +++ b/vim/.vim/plugged/vim-syntax-extra @@ -0,0 +1 @@ +Subproject commit 5906eeab33e1e50ebf13b6fbbb4442e22f67b2b2 diff --git a/vim/.vim/plugged/vim-table-mode b/vim/.vim/plugged/vim-table-mode new file mode 160000 index 0000000..f47287d --- /dev/null +++ b/vim/.vim/plugged/vim-table-mode @@ -0,0 +1 @@ +Subproject commit f47287df379bd5599ab5f118ed9b71c61097b516 diff --git a/vim/.vim/plugged/vim-titlecase b/vim/.vim/plugged/vim-titlecase new file mode 160000 index 0000000..630089d --- /dev/null +++ b/vim/.vim/plugged/vim-titlecase @@ -0,0 +1 @@ +Subproject commit 630089d75ab7f0597ab6b3b4c4c3e2e011a05e64 diff --git a/vim/.vim/plugged/vim-tmux b/vim/.vim/plugged/vim-tmux new file mode 160000 index 0000000..cfe7628 --- /dev/null +++ b/vim/.vim/plugged/vim-tmux @@ -0,0 +1 @@ +Subproject commit cfe76281efc29890548cf9eedd42ad51c7a1faf0 diff --git a/vim/.vim/plugged/vim-tmux-focus-events b/vim/.vim/plugged/vim-tmux-focus-events new file mode 160000 index 0000000..b1330e0 --- /dev/null +++ b/vim/.vim/plugged/vim-tmux-focus-events @@ -0,0 +1 @@ +Subproject commit b1330e04ffb95ede8e02b2f7df1f238190c67056 diff --git a/vim/.vim/plugged/vim-tmux-navigator b/vim/.vim/plugged/vim-tmux-navigator new file mode 160000 index 0000000..9ca5bfe --- /dev/null +++ b/vim/.vim/plugged/vim-tmux-navigator @@ -0,0 +1 @@ +Subproject commit 9ca5bfe5bd274051b5dd796cc150348afc993b80 diff --git a/vim/.vim/plugged/vim-tmux-syntax b/vim/.vim/plugged/vim-tmux-syntax new file mode 160000 index 0000000..1b6a6a5 --- /dev/null +++ b/vim/.vim/plugged/vim-tmux-syntax @@ -0,0 +1 @@ +Subproject commit 1b6a6a5beb96fa232c8d35d305f77496b12678a9 diff --git a/vim/.vim/plugged/vim-uncrustify b/vim/.vim/plugged/vim-uncrustify new file mode 160000 index 0000000..9cce24f --- /dev/null +++ b/vim/.vim/plugged/vim-uncrustify @@ -0,0 +1 @@ +Subproject commit 9cce24fd7055f9ca4dc38ecbe3b871f52ab03718 diff --git a/vim/.vim/plugged/vim-velocity b/vim/.vim/plugged/vim-velocity new file mode 160000 index 0000000..a494e9e --- /dev/null +++ b/vim/.vim/plugged/vim-velocity @@ -0,0 +1 @@ +Subproject commit a494e9ebbbb0e08226e8fe08ae36d800733252fd diff --git a/vim/.vim/plugged/vim-vsnip b/vim/.vim/plugged/vim-vsnip new file mode 160000 index 0000000..8f199ef --- /dev/null +++ b/vim/.vim/plugged/vim-vsnip @@ -0,0 +1 @@ +Subproject commit 8f199ef690ed26dcbb8973d9a6760d1332449ac9 diff --git a/vim/.vim/plugged/vim-windowswap b/vim/.vim/plugged/vim-windowswap new file mode 160000 index 0000000..15db3f6 --- /dev/null +++ b/vim/.vim/plugged/vim-windowswap @@ -0,0 +1 @@ +Subproject commit 15db3f697aa1fa696d99fcdc920c90cd2cec855e diff --git a/vim/.vim/plugged/vim-yaml b/vim/.vim/plugged/vim-yaml new file mode 160000 index 0000000..dce1954 --- /dev/null +++ b/vim/.vim/plugged/vim-yaml @@ -0,0 +1 @@ +Subproject commit dce19542d5ec1663183b0f6844ec663b5d1f3d24 diff --git a/vim/.vim/plugged/vimux b/vim/.vim/plugged/vimux new file mode 160000 index 0000000..89604a4 --- /dev/null +++ b/vim/.vim/plugged/vimux @@ -0,0 +1 @@ +Subproject commit 89604a4464c3069dbe31f7bc8dd16a5fbc88a303 diff --git a/vim/.vim/plugged/vtl b/vim/.vim/plugged/vtl new file mode 160000 index 0000000..1f75c40 --- /dev/null +++ b/vim/.vim/plugged/vtl @@ -0,0 +1 @@ +Subproject commit 1f75c4069a42bacd9ac3338b98f143830f0de66d diff --git a/vim/.vim/plugged/xterm-color-table.vim b/vim/.vim/plugged/xterm-color-table.vim new file mode 160000 index 0000000..9754e85 --- /dev/null +++ b/vim/.vim/plugged/xterm-color-table.vim @@ -0,0 +1 @@ +Subproject commit 9754e857e5f4fe1f8727106dcc682d21c29a51e4 diff --git a/zsh/.bash_profile b/zsh/.bash_profile index 4808de3..f25712d 100644 --- a/zsh/.bash_profile +++ b/zsh/.bash_profile @@ -1,6 +1,7 @@ export PATH=$PATH:$HOME/bin export PATH=$PATH:$HOME/scripts export MOCWORD_DATA=$HOME/mocword/mocword.sqlite +export BASH_PROFILE_SOURCED=true export PATH=$PATH:. export GOPATH=$HOME/go @@ -21,10 +22,6 @@ export EDITOR='nvim' HISTCONTROL=ignoreboth -source ~/.aliases.sh -# source ~/.funcs.sh - -source ~/.bash-powerline.sh export DEVKITPRO=/opt/devkitpro export DEVKITARM=${DEVKITPRO}/devkitARM @@ -39,3 +36,4 @@ export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion source ~/.bash_profile.local +source ~/.aliases.sh diff --git a/zsh/.bash_profile.local b/zsh/.bash_profile.local index b9957ec..ff5ac26 100644 --- a/zsh/.bash_profile.local +++ b/zsh/.bash_profile.local @@ -2,15 +2,13 @@ # Google Specific # --------------- # For running crow against a remote X server -xhost + +# xhost + export PATH=$PATH:/google/src/head/depot/google3/experimental/users/cnieves/util export XAUTHORITY=~/.Xauthority export GOROOT=/usr/lib/google-golang export PATH=$GOROOT/bin:$PATH export JAVA_HOME=$(readlink -ne /usr/local/buildtools/java/jdk) -source /etc/bash_completion.d/hgd - function gcert() { if [[ -n $TMUX ]]; then eval $(tmux show-environment -s) @@ -30,8 +28,11 @@ if [[ ! -z "$TMUX" ]]; then precmd_functions+=(tmux_title) fi -prodcertstatus &> /dev/null && - /google/data/ro/users/di/diamondm/engfortunes/fortune.sh + +FORTUNES=/google/data/ro/users/di/diamondm/engfortunes/fortune.sh +if [ -f "$FORTUNES" ]; then + prodcertstatus &> /dev/null && $FORTUNES +fi # Install fzf-query export PATH="${PATH}:/google/bin/releases/editor-devtools" diff --git a/zsh/.oh-my-zsh/.editorconfig b/zsh/.oh-my-zsh/.editorconfig deleted file mode 100644 index b5321de..0000000 --- a/zsh/.oh-my-zsh/.editorconfig +++ /dev/null @@ -1,8 +0,0 @@ -root = true - -[*] -end_of_line = lf -insert_final_newline = true -charset = utf-8 -indent_size = 2 -indent_style = space diff --git a/zsh/.oh-my-zsh/.github/CODEOWNERS b/zsh/.oh-my-zsh/.github/CODEOWNERS deleted file mode 100644 index 6c3eac6..0000000 --- a/zsh/.oh-my-zsh/.github/CODEOWNERS +++ /dev/null @@ -1,10 +0,0 @@ -# Plugin owners -plugins/archlinux/ @ratijas -plugins/aws/ @maksyms -plugins/genpass/ @atoponce -plugins/git-lfs/ @hellovietduc -plugins/gitfast/ @felipec -plugins/sdk/ @rgoldberg -plugins/universalarchive/ @Konfekt -plugins/wp-cli/ @joshmedeski -plugins/zoxide/ @ajeetdsouza diff --git a/zsh/.oh-my-zsh/.github/FUNDING.yml b/zsh/.oh-my-zsh/.github/FUNDING.yml deleted file mode 100644 index c44bb24..0000000 --- a/zsh/.oh-my-zsh/.github/FUNDING.yml +++ /dev/null @@ -1,2 +0,0 @@ -github: [robbyrussell, mcornella, larson-carter] -open_collective: ohmyzsh diff --git a/zsh/.oh-my-zsh/.github/ISSUE_TEMPLATE/bug_report.yml b/zsh/.oh-my-zsh/.github/ISSUE_TEMPLATE/bug_report.yml deleted file mode 100644 index af2973f..0000000 --- a/zsh/.oh-my-zsh/.github/ISSUE_TEMPLATE/bug_report.yml +++ /dev/null @@ -1,69 +0,0 @@ -name: Bug report -description: Create a report to help us improve Oh My Zsh -labels: 'Bug' -body: - - type: markdown - attributes: - value: | - ## Self Check - - Try searching existing [GitHub Issues](https://github.com/ohmyzsh/ohmyzsh/issues?q=is%3Aissue) (open or closed) for similar issues. - - Try reaching out on the [Discord server](https://discord.gg/ohmyzsh) for help. - - type: textarea - validations: - required: true - attributes: - label: Describe the bug - description: A clear description of what the bug is. - - type: textarea - validations: - required: true - attributes: - label: Steps to reproduce - description: | - Steps to reproduce the problem. - placeholder: | - For example: - 1. Enable plugin '...' - 2. Run command '...' or try to complete command '...' - 3. See error - - type: textarea - validations: - required: true - attributes: - label: Expected behavior - description: A brief description of what should happen. - - type: textarea - attributes: - label: Screenshots and recordings - description: | - If applicable, add screenshots to help explain your problem. You can also record an asciinema session: https://asciinema.org/ - - type: input - validations: - required: true - attributes: - label: OS / Distro - placeholder: e.g. Windows 10, Ubuntu 20.04, Arch Linux, macOS 10.15... - - type: input - validations: - required: true - attributes: - label: Zsh version - description: Run `echo $ZSH_VERSION` to check. - placeholder: e.g. 5.6 - - type: input - validations: - required: true - attributes: - label: Terminal emulator - placeholder: e.g. iTerm2, Gnome Terminal... - - type: dropdown - attributes: - label: If using WSL on Windows, which version of WSL - description: Run `wsl -l -v` to check. - options: - - WSL1 - - WSL2 - - type: textarea - attributes: - label: Additional context - description: Add any other context about the problem here. This can be themes, plugins, custom settings... diff --git a/zsh/.oh-my-zsh/.github/ISSUE_TEMPLATE/config.yml b/zsh/.oh-my-zsh/.github/ISSUE_TEMPLATE/config.yml deleted file mode 100644 index 3ddd72a..0000000 --- a/zsh/.oh-my-zsh/.github/ISSUE_TEMPLATE/config.yml +++ /dev/null @@ -1,8 +0,0 @@ -blank_issues_enabled: true -contact_links: - - name: Support - url: https://github.com/ohmyzsh/ohmyzsh/discussions - about: Ask the community for support - - name: Get help on Discord - url: https://discord.gg/ohmyzsh - about: Have a quick question? Join the Discord server and ask on the appropriate channel. diff --git a/zsh/.oh-my-zsh/.github/ISSUE_TEMPLATE/feature_request.yml b/zsh/.oh-my-zsh/.github/ISSUE_TEMPLATE/feature_request.yml deleted file mode 100644 index dc4baf2..0000000 --- a/zsh/.oh-my-zsh/.github/ISSUE_TEMPLATE/feature_request.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: Feature request -description: Suggest a feature for Oh My Zsh -labels: 'Feature' -body: - - type: input - attributes: - label: If the feature request is for a plugin or theme, specify it here. - description: The name of the plugin or theme that you would like us to improve. - placeholder: e.g. Git plugin, Agnoster theme - - type: textarea - attributes: - label: If the feature solves a problem you have, specify it here. - description: A description of what the problem is. - placeholder: Ex. I'm always frustrated when... - - type: textarea - attributes: - label: Describe the proposed feature. - description: A description of what you want to happen. Be as specific as possible. - validations: - required: true - - type: textarea - attributes: - label: Describe alternatives you've considered - description: A description of any alternative solutions or features you've considered. This can also include other plugins or themes. - - type: textarea - attributes: - label: Additional context - description: Add any other context, screenshots or Discord conversations about the feature request here. Also if you have any PRs related to this issue that are already open that you would like us to look at. - - type: textarea - attributes: - label: Related Issues - description: Is there any open or closed issues that is related to this feature request? If so please link them below! diff --git a/zsh/.oh-my-zsh/.github/PULL_REQUEST_TEMPLATE.md b/zsh/.oh-my-zsh/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index 1abae89..0000000 --- a/zsh/.oh-my-zsh/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,19 +0,0 @@ -## Standards checklist: - - - -- [ ] The PR title is descriptive. -- [ ] The PR doesn't replicate another PR which is already open. -- [ ] I have read the contribution guide and followed all the instructions. -- [ ] The code follows the code style guide detailed in the wiki. -- [ ] The code is mine or it's from somewhere with an MIT-compatible license. -- [ ] The code is efficient, to the best of my ability, and does not waste computer resources. -- [ ] The code is stable and I have tested it myself, to the best of my abilities. - -## Changes: - -- [...] - -## Other comments: - -... diff --git a/zsh/.oh-my-zsh/.github/workflows/main.yml b/zsh/.oh-my-zsh/.github/workflows/main.yml deleted file mode 100644 index 7ab7efd..0000000 --- a/zsh/.oh-my-zsh/.github/workflows/main.yml +++ /dev/null @@ -1,36 +0,0 @@ -name: CI -on: - pull_request: - types: - - opened - - synchronize - branches: - - master - push: - branches: - - master - -jobs: - tests: - name: Run tests - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-latest, macos-latest] - steps: - - name: Set up git repository - uses: actions/checkout@v2 - - name: Install zsh - if: runner.os == 'Linux' - run: sudo apt-get update; sudo apt-get install zsh - - name: Test installer - run: sh ./tools/install.sh - - name: Check syntax - run: | - for file in ./oh-my-zsh.sh \ - ./lib/*.zsh \ - ./plugins/*/*.plugin.zsh \ - ./plugins/*/_* \ - ./themes/*.zsh-theme; do - zsh -n "$file" || return 1 - done diff --git a/zsh/.oh-my-zsh/.gitignore b/zsh/.oh-my-zsh/.gitignore deleted file mode 100644 index ec24a19..0000000 --- a/zsh/.oh-my-zsh/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -# custom files -custom/ - -# temp files directories -cache/ -log/ -*.swp -.DS_Store diff --git a/zsh/.oh-my-zsh/.gitpod.Dockerfile b/zsh/.oh-my-zsh/.gitpod.Dockerfile deleted file mode 100644 index b35c80d..0000000 --- a/zsh/.oh-my-zsh/.gitpod.Dockerfile +++ /dev/null @@ -1,5 +0,0 @@ -FROM gitpod/workspace-full - -RUN sudo apt-get update && \ - sudo apt-get install -y zsh && \ - sudo rm -rf /var/lib/apt/lists/* diff --git a/zsh/.oh-my-zsh/.gitpod.yml b/zsh/.oh-my-zsh/.gitpod.yml deleted file mode 100644 index ccc5724..0000000 --- a/zsh/.oh-my-zsh/.gitpod.yml +++ /dev/null @@ -1,9 +0,0 @@ -image: - file: .gitpod.Dockerfile - -tasks: - - init: | - export EDITOR="command gp open -w" VISUAL="command gp open -w" - cp -f /workspace/ohmyzsh/templates/zshrc.zsh-template ~/.zshrc - ln -sf /workspace/ohmyzsh ~/.oh-my-zsh - command: exec zsh diff --git a/zsh/.oh-my-zsh/CODE_OF_CONDUCT.md b/zsh/.oh-my-zsh/CODE_OF_CONDUCT.md deleted file mode 100644 index 20ad1cc..0000000 --- a/zsh/.oh-my-zsh/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,76 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -In the interest of fostering an open and welcoming environment, we as -contributors and maintainers pledge to making participation in our project and -our community a harassment-free experience for everyone, regardless of age, body -size, disability, ethnicity, sex characteristics, gender identity and expression, -level of experience, education, socio-economic status, nationality, personal -appearance, race, religion, or sexual identity and orientation. - -## Our Standards - -Examples of behavior that contributes to creating a positive environment -include: - -* Using welcoming and inclusive language -* Being respectful of differing viewpoints and experiences -* Gracefully accepting constructive criticism -* Focusing on what is best for the community -* Showing empathy towards other community members - -Examples of unacceptable behavior by participants include: - -* The use of sexualized language or imagery and unwelcome sexual attention or - advances -* Trolling, insulting/derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or electronic - address, without explicit permission -* Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Our Responsibilities - -Project maintainers are responsible for clarifying the standards of acceptable -behavior and are expected to take appropriate and fair corrective action in -response to any instances of unacceptable behavior. - -Project maintainers have the right and responsibility to remove, edit, or -reject comments, commits, code, wiki edits, issues, and other contributions -that are not aligned to this Code of Conduct, or to ban temporarily or -permanently any contributor for other behaviors that they deem inappropriate, -threatening, offensive, or harmful. - -## Scope - -This Code of Conduct applies within all project spaces, and it also applies when -an individual is representing the project or its community in public spaces. -Examples of representing a project or community include using an official -project e-mail address, posting via an official social media account, or acting -as an appointed representative at an online or offline event. Representation of -a project may be further defined and clarified by project maintainers. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported by contacting the project team at ohmyzsh@planetargon.com. All -complaints will be reviewed and investigated and will result in a response that -is deemed necessary and appropriate to the circumstances. The project team is -obligated to maintain confidentiality with regard to the reporter of an incident. -Further details of specific enforcement policies may be posted separately. - -Project maintainers who do not follow or enforce the Code of Conduct in good -faith may face temporary or permanent repercussions as determined by other -members of the project's leadership. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, -available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html - -[homepage]: https://www.contributor-covenant.org - -For answers to common questions about this code of conduct, see -https://www.contributor-covenant.org/faq diff --git a/zsh/.oh-my-zsh/CONTRIBUTING.md b/zsh/.oh-my-zsh/CONTRIBUTING.md deleted file mode 100644 index 4903584..0000000 --- a/zsh/.oh-my-zsh/CONTRIBUTING.md +++ /dev/null @@ -1,224 +0,0 @@ -# CONTRIBUTING GUIDELINES - -Oh-My-Zsh is a community-driven project. Contribution is welcome, encouraged, and appreciated. -It is also essential for the development of the project. - -First, please take a moment to review our [code of conduct](CODE_OF_CONDUCT.md). - -These guidelines are an attempt at better addressing the huge amount of pending -issues and pull requests. Please read them closely. - -Foremost, be so kind as to [search](#use-the-search-luke). This ensures any contribution -you would make is not already covered. - - - -- [Reporting Issues](#reporting-issues) - - [You have a problem](#you-have-a-problem) - - [You have a suggestion](#you-have-a-suggestion) -- [Submitting Pull Requests](#submitting-pull-requests) - - [Getting started](#getting-started) - - [You have a solution](#you-have-a-solution) - - [You have an addition](#you-have-an-addition) -- [Use the Search, Luke](#use-the-search-luke) -- [Commit Guidelines](#commit-guidelines) - - [Format](#format) - - [Style](#style) -- [Volunteer](#volunteer) - - - -## Reporting Issues - -### You have a problem - -Please be so kind as to [search](#use-the-search-luke) for any open issue already covering -your problem. - -If you find one, comment on it so we can know there are more people experiencing it. - -If not, look at the [Troubleshooting](https://github.com/ohmyzsh/ohmyzsh/wiki/Troubleshooting) -page for instructions on how to gather data to better debug your problem. - -Then, you can go ahead and create an issue with as much detail as you can provide. -It should include the data gathered as indicated above, along with: - -1. How to reproduce the problem -2. What the correct behavior should be -3. What the actual behavior is - -Please copy to anyone relevant (_eg_ plugin maintainers) by mentioning their GitHub handle -(starting with `@`) in your message. - -We will do our very best to help you. - -### You have a suggestion - -Please be so kind as to [search](#use-the-search-luke) for any open issue already covering -your suggestion. - -If you find one, comment on it so we can know there are more people supporting it. - -If not, you can go ahead and create an issue. Please copy to anyone relevant (_eg_ plugin -maintainers) by mentioning their GitHub handle (starting with `@`) in your message. - -## Submitting Pull Requests - -### Getting started - -You should be familiar with the basics of -[contributing on GitHub](https://help.github.com/articles/using-pull-requests) and have a fork -[properly set up](https://github.com/ohmyzsh/ohmyzsh/wiki/Contribution-Technical-Practices). - -You MUST always create PRs with _a dedicated branch_ based on the latest upstream tree. - -If you create your own PR, please make sure you do it right. Also be so kind as to reference -any issue that would be solved in the PR description body, -[for instance](https://help.github.com/articles/closing-issues-via-commit-messages/) -_"Fixes #XXXX"_ for issue number XXXX. - -### You have a solution - -Please be so kind as to [search](#use-the-search-luke) for any open issue already covering -your [problem](#you-have-a-problem), and any pending/merged/rejected PR covering your solution. - -If the solution is already reported, try it out and +1 the pull request if the -solution works ok. On the other hand, if you think your solution is better, post -it with a reference to the other one so we can have both solutions to compare. - -If not, then go ahead and submit a PR. Please copy to anyone relevant (e.g. plugin -maintainers) by mentioning their GitHub handle (starting with `@`) in your message. - -### You have an addition - -Please [do not](https://github.com/ohmyzsh/ohmyzsh/wiki/Themes#dont-send-us-your-theme-for-now) -send themes for now. - -Please be so kind as to [search](#use-the-search-luke) for any pending, merged or rejected Pull Requests -covering or related to what you want to add. - -If you find one, try it out and work with the author on a common solution. - -If not, then go ahead and submit a PR. Please copy to anyone relevant (_eg_ plugin -maintainers) by mentioning their GitHub handle (starting with `@`) in your message. - -For any extensive change, _eg_ a new plugin, you will have to find testers to +1 your PR. - ----- - -## Use the Search, Luke - -_May the Force (of past experiences) be with you_ - -GitHub offers [many search features](https://help.github.com/articles/searching-github/) -to help you check whether a similar contribution to yours already exists. Please search -before making any contribution, it avoids duplicates and eases maintenance. Trust me, -that works 90% of the time. - -You can also take a look at the [FAQ](https://github.com/ohmyzsh/ohmyzsh/wiki/FAQ) -to be sure your contribution has not already come up. - -If all fails, your thing has probably not been reported yet, so you can go ahead -and [create an issue](#reporting-issues) or [submit a PR](#submitting-pull-requests). - ----- - -## Commit Guidelines - -Oh My Zsh uses the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) -specification. The automatic changelog tool uses these to automatically generate -a changelog based on the commit messages. Here's a guide to writing a commit message -to allow this: - -### Format - -``` -type(scope)!: subject -``` - -- `type`: the type of the commit is one of the following: - - - `feat`: new features. - - `fix`: bug fixes. - - `docs`: documentation changes. - - `refactor`: refactor of a particular code section without introducing - new features or bug fixes. - - `style`: code style improvements. - - `perf`: performance improvements. - - `test`: changes to the test suite. - - `ci`: changes to the CI system. - - `build`: changes to the build system (we don't yet have one so this shouldn't apply). - - `chore`: for other changes that don't match previous types. This doesn't appear - in the changelog. - -- `scope`: section of the codebase that the commit makes changes to. If it makes changes to - many sections, or if no section in particular is modified, leave blank without the parentheses. - Examples: - - - Commit that changes the `git` plugin: - ``` - feat(git): add alias for `git commit` - ``` - - - Commit that changes many plugins: - ``` - style: fix inline declaration of arrays - ``` - - For changes to plugins or themes, the scope should be the plugin or theme name: - - - ✅ `fix(agnoster): commit subject` - - ⌠`fix(theme/agnoster): commit subject` - -- `!`: this goes after the `scope` (or the `type` if scope is empty), to indicate that the commit - introduces breaking changes. - - Optionally, you can specify a message that the changelog tool will display to the user to indicate - what's changed and what they can do to deal with it. You can use multiple lines to type this message; - the changelog parser will keep reading until the end of the commit message or until it finds an empty - line. - - Example (made up): - - ``` - style(agnoster)!: change dirty git repo glyph - - BREAKING CHANGE: the glyph to indicate when a git repository is dirty has - changed from a Powerline character to a standard UTF-8 emoji. You can - change it back by setting `ZSH_THEME_DIRTY_GLYPH`. - - Fixes #420 - - Co-authored-by: Username - ``` - -- `subject`: a brief description of the changes. This will be displayed in the changelog. If you need - to specify other details you can use the commit body but it won't be visible. - - Formatting tricks: the commit subject may contain: - - - Links to related issues or PRs by writing `#issue`. This will be highlighted by the changelog tool: - ``` - feat(archlinux): add support for aura AUR helper (#9467) - ``` - - - Formatted inline code by using backticks: the text inbetween backticks will also be highlighted by - the changelog tool: - ``` - feat(shell-proxy): enable unexported `DEFAULT_PROXY` setting (#9774) - ``` - -### Style - -Try to keep the first commit line short. This is harder to do using this commit style but try to be -concise and if you need more space, you can use the commit body. Try to make sure that the commit -subject is clear and precise enough that users will know what change by just looking at the changelog. - ----- - -## Volunteer - -Very nice!! :) - -Please have a look at the [Volunteer](https://github.com/ohmyzsh/ohmyzsh/wiki/Volunteers) -page for instructions on where to start and more. diff --git a/zsh/.oh-my-zsh/LICENSE.txt b/zsh/.oh-my-zsh/LICENSE.txt deleted file mode 100644 index becd6a7..0000000 --- a/zsh/.oh-my-zsh/LICENSE.txt +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2009-2021 Robby Russell and contributors (https://github.com/ohmyzsh/ohmyzsh/contributors) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/zsh/.oh-my-zsh/README.md b/zsh/.oh-my-zsh/README.md deleted file mode 100644 index 3ebea91..0000000 --- a/zsh/.oh-my-zsh/README.md +++ /dev/null @@ -1,314 +0,0 @@ -

Oh My Zsh

- -Oh My Zsh is an open source, community-driven framework for managing your [zsh](https://www.zsh.org/) configuration. - -Sounds boring. Let's try again. - -**Oh My Zsh will not make you a 10x developer...but you may feel like one.** - -Once installed, your terminal shell will become the talk of the town _or your money back!_ With each keystroke in your command prompt, you'll take advantage of the hundreds of powerful plugins and beautiful themes. Strangers will come up to you in cafés and ask you, _"that is amazing! are you some sort of genius?"_ - -Finally, you'll begin to get the sort of attention that you have always felt you deserved. ...or maybe you'll use the time that you're saving to start flossing more often. 😬 - -To learn more, visit [ohmyz.sh](https://ohmyz.sh), follow [@ohmyzsh](https://twitter.com/ohmyzsh) on Twitter, and join us on [Discord](https://discord.gg/ohmyzsh). - -[![CI](https://github.com/ohmyzsh/ohmyzsh/workflows/CI/badge.svg)](https://github.com/ohmyzsh/ohmyzsh/actions?query=workflow%3ACI) -[![Follow @ohmyzsh](https://img.shields.io/twitter/follow/ohmyzsh?label=Follow+@ohmyzsh&style=flat)](https://twitter.com/intent/follow?screen_name=ohmyzsh) -[![Discord server](https://img.shields.io/discord/642496866407284746)](https://discord.gg/ohmyzsh) -[![Gitpod ready](https://img.shields.io/badge/Gitpod-ready-blue?logo=gitpod)](https://gitpod.io/#https://github.com/ohmyzsh/ohmyzsh) - -## Getting Started - -### Prerequisites - -- A Unix-like operating system: macOS, Linux, BSD. On Windows: WSL2 is preferred, but cygwin or msys also mostly work. -- [Zsh](https://www.zsh.org) should be installed (v4.3.9 or more recent is fine but we prefer 5.0.8 and newer). If not pre-installed (run `zsh --version` to confirm), check the following wiki instructions here: [Installing ZSH](https://github.com/ohmyzsh/ohmyzsh/wiki/Installing-ZSH) -- `curl` or `wget` should be installed -- `git` should be installed (recommended v2.4.11 or higher) - -### Basic Installation - -Oh My Zsh is installed by running one of the following commands in your terminal. You can install this via the command-line with either `curl`, `wget` or another similar tool. - -| Method | Command | -|:----------|:--------------------------------------------------------------------------------------------------| -| **curl** | `sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"` | -| **wget** | `sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"` | -| **fetch** | `sh -c "$(fetch -o - https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"` | - -#### Manual inspection - -It's a good idea to inspect the install script from projects you don't yet know. You can do -that by downloading the install script first, looking through it so everything looks normal, -then running it: - -```shell -wget https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh -sh install.sh -``` - -## Using Oh My Zsh - -### Plugins - -Oh My Zsh comes with a shitload of plugins for you to take advantage of. You can take a look in the [plugins](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins) directory and/or the [wiki](https://github.com/ohmyzsh/ohmyzsh/wiki/Plugins) to see what's currently available. - -#### Enabling Plugins - -Once you spot a plugin (or several) that you'd like to use with Oh My Zsh, you'll need to enable them in the `.zshrc` file. You'll find the zshrc file in your `$HOME` directory. Open it with your favorite text editor and you'll see a spot to list all the plugins you want to load. - -```shell -vi ~/.zshrc -``` - -For example, this might begin to look like this: - -```shell -plugins=( - git - bundler - dotenv - osx - rake - rbenv - ruby -) -``` - -_Note that the plugins are separated by whitespace (spaces, tabs, new lines...). **Do not** use commas between them or it will break._ - -#### Using Plugins - -Each plugin includes a __README__, documenting it. This README should show the aliases (if the plugin adds any) and extra goodies that are included in that particular plugin. - -### Themes - -We'll admit it. Early in the Oh My Zsh world, we may have gotten a bit too theme happy. We have over one hundred and fifty themes now bundled. Most of them have [screenshots](https://github.com/ohmyzsh/ohmyzsh/wiki/Themes) on the wiki (We are working on updating this!). Check them out! - -#### Selecting a Theme - -_Robby's theme is the default one. It's not the fanciest one. It's not the simplest one. It's just the right one (for him)._ - -Once you find a theme that you'd like to use, you will need to edit the `~/.zshrc` file. You'll see an environment variable (all caps) in there that looks like: - -```shell -ZSH_THEME="robbyrussell" -``` - -To use a different theme, simply change the value to match the name of your desired theme. For example: - -```shell -ZSH_THEME="agnoster" # (this is one of the fancy ones) -# see https://github.com/ohmyzsh/ohmyzsh/wiki/Themes#agnoster -``` - -_Note: many themes require installing the [Powerline Fonts](https://github.com/powerline/fonts) in order to render properly._ - -Open up a new terminal window and your prompt should look something like this: - -![Agnoster theme](https://cloud.githubusercontent.com/assets/2618447/6316862/70f58fb6-ba03-11e4-82c9-c083bf9a6574.png) - -In case you did not find a suitable theme for your needs, please have a look at the wiki for [more of them](https://github.com/ohmyzsh/ohmyzsh/wiki/External-themes). - -If you're feeling feisty, you can let the computer select one randomly for you each time you open a new terminal window. - -```shell -ZSH_THEME="random" # (...please let it be pie... please be some pie..) -``` - -And if you want to pick random theme from a list of your favorite themes: - -```shell -ZSH_THEME_RANDOM_CANDIDATES=( - "robbyrussell" - "agnoster" -) -``` - -If you only know which themes you don't like, you can add them similarly to an ignored list: - -```shell -ZSH_THEME_RANDOM_IGNORED=(pygmalion tjkirch_mod) -``` - -### FAQ - -If you have some more questions or issues, you might find a solution in our [FAQ](https://github.com/ohmyzsh/ohmyzsh/wiki/FAQ). - -## Advanced Topics - -If you're the type that likes to get their hands dirty, these sections might resonate. - -### Advanced Installation - -Some users may want to manually install Oh My Zsh, or change the default path or other settings that -the installer accepts (these settings are also documented at the top of the install script). - -#### Custom Directory - -The default location is `~/.oh-my-zsh` (hidden in your home directory, you can access it with `cd ~/.oh-my-zsh`) - -If you'd like to change the install directory with the `ZSH` environment variable, either by running -`export ZSH=/your/path` before installing, or by setting it before the end of the install pipeline -like this: - -```shell -ZSH="$HOME/.dotfiles/oh-my-zsh" sh install.sh -``` - -#### Unattended install - -If you're running the Oh My Zsh install script as part of an automated install, you can pass the -flag `--unattended` to the `install.sh` script. This will have the effect of not trying to change -the default shell, and also won't run `zsh` when the installation has finished. - -```shell -sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended -``` - -#### Installing from a forked repository - -The install script also accepts these variables to allow installation of a different repository: - -- `REPO` (default: `ohmyzsh/ohmyzsh`): this takes the form of `owner/repository`. If you set - this variable, the installer will look for a repository at `https://github.com/{owner}/{repository}`. - -- `REMOTE` (default: `https://github.com/${REPO}.git`): this is the full URL of the git repository - clone. You can use this setting if you want to install from a fork that is not on GitHub (GitLab, - Bitbucket...) or if you want to clone with SSH instead of HTTPS (`git@github.com:user/project.git`). - - _NOTE: it's incompatible with setting the `REPO` variable. This setting will take precedence._ - -- `BRANCH` (default: `master`): you can use this setting if you want to change the default branch to be - checked out when cloning the repository. This might be useful for testing a Pull Request, or if you - want to use a branch other than `master`. - -For example: - -```shell -REPO=apjanke/oh-my-zsh BRANCH=edge sh install.sh -``` - -#### Manual Installation - -##### 1. Clone the repository - -```shell -git clone https://github.com/ohmyzsh/ohmyzsh.git ~/.oh-my-zsh -``` - -##### 2. *Optionally*, backup your existing `~/.zshrc` file - -```shell -cp ~/.zshrc ~/.zshrc.orig -``` - -##### 3. Create a new zsh configuration file - -You can create a new zsh config file by copying the template that we have included for you. - -```shell -cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc -``` - -##### 4. Change your default shell - -```shell -chsh -s $(which zsh) -``` - -You must log out from your user session and log back in to see this change. - -##### 5. Initialize your new zsh configuration - -Once you open up a new terminal window, it should load zsh with Oh My Zsh's configuration. - -### Installation Problems - -If you have any hiccups installing, here are a few common fixes. - -- You _might_ need to modify your `PATH` in `~/.zshrc` if you're not able to find some commands after -switching to `oh-my-zsh`. -- If you installed manually or changed the install location, check the `ZSH` environment variable in -`~/.zshrc`. - -### Custom Plugins and Themes - -If you want to override any of the default behaviors, just add a new file (ending in `.zsh`) in the `custom/` directory. - -If you have many functions that go well together, you can put them as a `XYZ.plugin.zsh` file in the `custom/plugins/` directory and then enable this plugin. - -If you would like to override the functionality of a plugin distributed with Oh My Zsh, create a plugin of the same name in the `custom/plugins/` directory and it will be loaded instead of the one in `plugins/`. - -## Getting Updates - -By default, you will be prompted to check for upgrades every few weeks. If you would like `oh-my-zsh` to automatically upgrade itself without prompting you, set the following in your `~/.zshrc`: - -```shell -DISABLE_UPDATE_PROMPT=true -``` - -To disable automatic upgrades, set the following in your `~/.zshrc`: - -```shell -DISABLE_AUTO_UPDATE=true -``` - -### Manual Updates - -If you'd like to upgrade at any point in time (maybe someone just released a new plugin and you don't want to wait a week?) you just need to run: - -```shell -omz update -``` - -Magic! 🎉 - -## Uninstalling Oh My Zsh - -Oh My Zsh isn't for everyone. We'll miss you, but we want to make this an easy breakup. - -If you want to uninstall `oh-my-zsh`, just run `uninstall_oh_my_zsh` from the command-line. It will remove itself and revert your previous `bash` or `zsh` configuration. - -## How do I contribute to Oh My Zsh? - -Before you participate in our delightful community, please read the [code of conduct](CODE_OF_CONDUCT.md). - -I'm far from being a [Zsh](https://www.zsh.org/) expert and suspect there are many ways to improve – if you have ideas on how to make the configuration easier to maintain (and faster), don't hesitate to fork and send pull requests! - -We also need people to test out pull-requests. So take a look through [the open issues](https://github.com/ohmyzsh/ohmyzsh/issues) and help where you can. - -See [Contributing](CONTRIBUTING.md) for more details. - -### Do NOT send us themes - -We have (more than) enough themes for the time being. Please add your theme to the [external themes](https://github.com/ohmyzsh/ohmyzsh/wiki/External-themes) wiki page. - -## Contributors - -Oh My Zsh has a vibrant community of happy users and delightful contributors. Without all the time and help from our contributors, it wouldn't be so awesome. - -Thank you so much! - -## Follow Us - -We're on social media: - -- [@ohmyzsh](https://twitter.com/ohmyzsh) on Twitter. You should follow it. -- [Facebook](https://www.facebook.com/Oh-My-Zsh-296616263819290/) poke us. -- [Instagram](https://www.instagram.com/_ohmyzsh/) tag us in your post showing Oh My Zsh! -- [Discord](https://discord.gg/ohmyzsh) to chat with us! - -## Merchandise - -We have [stickers, shirts, and coffee mugs available](https://shop.planetargon.com/collections/oh-my-zsh?utm_source=github) for you to show off your love of Oh My Zsh. Again, you will become the talk of the town! - -## License - -Oh My Zsh is released under the [MIT license](LICENSE.txt). - -## About Planet Argon - -![Planet Argon](https://pa-github-assets.s3.amazonaws.com/PARGON_logo_digital_COL-small.jpg) - -Oh My Zsh was started by the team at [Planet Argon](https://www.planetargon.com/?utm_source=github), a [Ruby on Rails development agency](https://www.planetargon.com/skills/ruby-on-rails-development?utm_source=github). Check out our [other open source projects](https://www.planetargon.com/open-source?utm_source=github). diff --git a/zsh/.oh-my-zsh/lib/bzr.zsh b/zsh/.oh-my-zsh/lib/bzr.zsh deleted file mode 100644 index 005a165..0000000 --- a/zsh/.oh-my-zsh/lib/bzr.zsh +++ /dev/null @@ -1,10 +0,0 @@ -## Bazaar integration -## Just works with the GIT integration just add $(bzr_prompt_info) to the PROMPT -function bzr_prompt_info() { - BZR_CB=`bzr nick 2> /dev/null | grep -v "ERROR" | cut -d ":" -f2 | awk -F / '{print "bzr::"$1}'` - if [ -n "$BZR_CB" ]; then - BZR_DIRTY="" - [[ -n `bzr status` ]] && BZR_DIRTY=" %{$fg[red]%} * %{$fg[green]%}" - echo "$ZSH_THEME_SCM_PROMPT_PREFIX$BZR_CB$BZR_DIRTY$ZSH_THEME_GIT_PROMPT_SUFFIX" - fi -} \ No newline at end of file diff --git a/zsh/.oh-my-zsh/lib/cli.zsh b/zsh/.oh-my-zsh/lib/cli.zsh deleted file mode 100644 index 4b14360..0000000 --- a/zsh/.oh-my-zsh/lib/cli.zsh +++ /dev/null @@ -1,776 +0,0 @@ -#!/usr/bin/env zsh - -function omz { - [[ $# -gt 0 ]] || { - _omz::help - return 1 - } - - local command="$1" - shift - - # Subcommand functions start with _ so that they don't - # appear as completion entries when looking for `omz` - (( $+functions[_omz::$command] )) || { - _omz::help - return 1 - } - - _omz::$command "$@" -} - -function _omz { - local -a cmds subcmds - cmds=( - 'changelog:Print the changelog' - 'help:Usage information' - 'plugin:Manage plugins' - 'pr:Manage Oh My Zsh Pull Requests' - 'reload:Reload the current zsh session' - 'theme:Manage themes' - 'update:Update Oh My Zsh' - ) - - if (( CURRENT == 2 )); then - _describe 'command' cmds - elif (( CURRENT == 3 )); then - case "$words[2]" in - changelog) local -a refs - refs=("${(@f)$(command git -C "$ZSH" for-each-ref --format="%(refname:short):%(subject)" refs/heads refs/tags)}") - _describe 'command' refs ;; - plugin) subcmds=( - 'disable:Disable plugin(s)' - 'enable:Enable plugin(s)' - 'info:Get plugin information' - 'list:List plugins' - 'load:Load plugin(s)' - ) - _describe 'command' subcmds ;; - pr) subcmds=('clean:Delete all Pull Request branches' 'test:Test a Pull Request') - _describe 'command' subcmds ;; - theme) subcmds=('list:List themes' 'set:Set a theme in your .zshrc file' 'use:Load a theme') - _describe 'command' subcmds ;; - esac - elif (( CURRENT == 4 )); then - case "${words[2]}::${words[3]}" in - plugin::(disable|enable|load)) - local -aU valid_plugins - - if [[ "${words[3]}" = disable ]]; then - # if command is "disable", only offer already enabled plugins - valid_plugins=($plugins) - else - valid_plugins=("$ZSH"/plugins/*/{_*,*.plugin.zsh}(.N:h:t) "$ZSH_CUSTOM"/plugins/*/{_*,*.plugin.zsh}(.N:h:t)) - # if command is "enable", remove already enabled plugins - [[ "${words[3]}" = enable ]] && valid_plugins=(${valid_plugins:|plugins}) - fi - - _describe 'plugin' valid_plugins ;; - plugin::info) - local -aU plugins=("$ZSH"/plugins/*/{_*,*.plugin.zsh}(.N:h:t) "$ZSH_CUSTOM"/plugins/*/{_*,*.plugin.zsh}(.N:h:t)) - _describe 'plugin' plugins ;; - theme::(set|use)) - local -aU themes=("$ZSH"/themes/*.zsh-theme(.N:t:r) "$ZSH_CUSTOM"/**/*.zsh-theme(.N:r:gs:"$ZSH_CUSTOM"/themes/:::gs:"$ZSH_CUSTOM"/:::)) - _describe 'theme' themes ;; - esac - elif (( CURRENT > 4 )); then - case "${words[2]}::${words[3]}" in - plugin::(enable|disable|load)) - local -aU valid_plugins - - if [[ "${words[3]}" = disable ]]; then - # if command is "disable", only offer already enabled plugins - valid_plugins=($plugins) - else - valid_plugins=("$ZSH"/plugins/*/{_*,*.plugin.zsh}(.N:h:t) "$ZSH_CUSTOM"/plugins/*/{_*,*.plugin.zsh}(.N:h:t)) - # if command is "enable", remove already enabled plugins - [[ "${words[3]}" = enable ]] && valid_plugins=(${valid_plugins:|plugins}) - fi - - # Remove plugins already passed as arguments - # NOTE: $(( CURRENT - 1 )) is the last plugin argument completely passed, i.e. that which - # has a space after them. This is to avoid removing plugins partially passed, which makes - # the completion not add a space after the completed plugin. - local -a args - args=(${words[4,$(( CURRENT - 1))]}) - valid_plugins=(${valid_plugins:|args}) - - _describe 'plugin' valid_plugins ;; - esac - fi - - return 0 -} - -compdef _omz omz - -## Utility functions - -function _omz::confirm { - # If question supplied, ask it before reading the answer - # NOTE: uses the logname of the caller function - if [[ -n "$1" ]]; then - _omz::log prompt "$1" "${${functrace[1]#_}%:*}" - fi - - # Read one character - read -r -k 1 - - # If no newline entered, add a newline - if [[ "$REPLY" != $'\n' ]]; then - echo - fi -} - -function _omz::log { - # if promptsubst is set, a message with `` or $() - # will be run even if quoted due to `print -P` - setopt localoptions nopromptsubst - - # $1 = info|warn|error|debug - # $2 = text - # $3 = (optional) name of the logger - - local logtype=$1 - local logname=${3:-${${functrace[1]#_}%:*}} - - # Don't print anything if debug is not active - if [[ $logtype = debug && -z $_OMZ_DEBUG ]]; then - return - fi - - # Choose coloring based on log type - case "$logtype" in - prompt) print -Pn "%S%F{blue}$logname%f%s: $2" ;; - debug) print -P "%F{white}$logname%f: $2" ;; - info) print -P "%F{green}$logname%f: $2" ;; - warn) print -P "%S%F{yellow}$logname%f%s: $2" ;; - error) print -P "%S%F{red}$logname%f%s: $2" ;; - esac >&2 -} - -## User-facing commands - -function _omz::help { - cat >&2 < [options] - -Available commands: - - help Print this help message - changelog Print the changelog - plugin Manage plugins - pr Manage Oh My Zsh Pull Requests - reload Reload the current zsh session - theme Manage themes - update Update Oh My Zsh - -EOF -} - -function _omz::changelog { - local version=${1:-HEAD} format=${3:-"--text"} - - if ! command git -C "$ZSH" show-ref --verify refs/heads/$version &>/dev/null && \ - ! command git -C "$ZSH" show-ref --verify refs/tags/$version &>/dev/null && \ - ! command git -C "$ZSH" rev-parse --verify "${version}^{commit}" &>/dev/null; then - cat >&2 < must be a valid branch, tag or commit. -EOF - return 1 - fi - - "$ZSH/tools/changelog.sh" "$version" "${2:-}" "$format" -} - -function _omz::plugin { - (( $# > 0 && $+functions[_omz::plugin::$1] )) || { - cat >&2 < [options] - -Available commands: - - disable Disable plugin(s) - enable Enable plugin(s) - info Get information of a plugin - list List all available Oh My Zsh plugins - load Load plugin(s) - -EOF - return 1 - } - - local command="$1" - shift - - _omz::plugin::$command "$@" -} - -function _omz::plugin::disable { - if [[ -z "$1" ]]; then - echo >&2 "Usage: omz plugin disable [...]" - return 1 - fi - - # Check that plugin is in $plugins - local -a dis_plugins - for plugin in "$@"; do - if [[ ${plugins[(Ie)$plugin]} -eq 0 ]]; then - _omz::log warn "plugin '$plugin' is not enabled." - continue - fi - dis_plugins+=("$plugin") - done - - # Exit if there are no enabled plugins to disable - if [[ ${#dis_plugins} -eq 0 ]]; then - return 1 - fi - - # Remove plugins substitution awk script - local awk_subst_plugins="\ - gsub(/\s+(${(j:|:)dis_plugins})/, \"\") # with spaces before - gsub(/(${(j:|:)dis_plugins})\s+/, \"\") # with spaces after - gsub(/\((${(j:|:)dis_plugins})\)/, \"\") # without spaces (only plugin) -" - # Disable plugins awk script - local awk_script=" -# if plugins=() is in oneline form, substitute disabled plugins and go to next line -/^\s*plugins=\([^#]+\).*\$/ { - $awk_subst_plugins - print \$0 - next -} - -# if plugins=() is in multiline form, enable multi flag and disable plugins if they're there -/^\s*plugins=\(/ { - multi=1 - $awk_subst_plugins - print \$0 - next -} - -# if multi flag is enabled and we find a valid closing parenthesis, remove plugins and disable multi flag -multi == 1 && /^[^#]*\)/ { - multi=0 - $awk_subst_plugins - print \$0 - next -} - -multi == 1 && length(\$0) > 0 { - $awk_subst_plugins - if (length(\$0) > 0) print \$0 - next -} - -{ print \$0 } -" - - awk "$awk_script" ~/.zshrc > ~/.zshrc.new \ - && command mv -f ~/.zshrc ~/.zshrc.bck \ - && command mv -f ~/.zshrc.new ~/.zshrc - - # Exit if the new .zshrc file wasn't created correctly - [[ $? -eq 0 ]] || { - local ret=$? - _omz::log error "error disabling plugins." - return $ret - } - - # Exit if the new .zshrc file has syntax errors - if ! zsh -n ~/.zshrc; then - _omz::log error "broken syntax in ~/.zshrc. Rolling back changes..." - command mv -f ~/.zshrc ~/.zshrc.new - command mv -f ~/.zshrc.bck ~/.zshrc - return 1 - fi - - # Restart the zsh session if there were no errors - _omz::log info "plugins disabled: ${(j:, :)dis_plugins}." - - # Old zsh versions don't have ZSH_ARGZERO - local zsh="${ZSH_ARGZERO:-${functrace[-1]%:*}}" - # Check whether to run a login shell - [[ "$zsh" = -* || -o login ]] && exec -l "${zsh#-}" || exec "$zsh" -} - -function _omz::plugin::enable { - if [[ -z "$1" ]]; then - echo >&2 "Usage: omz plugin enable [...]" - return 1 - fi - - # Check that plugin is not in $plugins - local -a add_plugins - for plugin in "$@"; do - if [[ ${plugins[(Ie)$plugin]} -ne 0 ]]; then - _omz::log warn "plugin '$plugin' is already enabled." - continue - fi - add_plugins+=("$plugin") - done - - # Exit if there are no plugins to enable - if [[ ${#add_plugins} -eq 0 ]]; then - return 1 - fi - - # Enable plugins awk script - local awk_script=" -# if plugins=() is in oneline form, substitute ) with new plugins and go to the next line -/^\s*plugins=\([^#]+\).*\$/ { - sub(/\)/, \" $add_plugins&\") - print \$0 - next -} - -# if plugins=() is in multiline form, enable multi flag -/^\s*plugins=\(/ { - multi=1 -} - -# if multi flag is enabled and we find a valid closing parenthesis, -# add new plugins and disable multi flag -multi == 1 && /^[^#]*\)/ { - multi=0 - sub(/\)/, \" $add_plugins&\") - print \$0 - next -} - -{ print \$0 } -" - - awk "$awk_script" ~/.zshrc > ~/.zshrc.new \ - && command mv -f ~/.zshrc ~/.zshrc.bck \ - && command mv -f ~/.zshrc.new ~/.zshrc - - # Exit if the new .zshrc file wasn't created correctly - [[ $? -eq 0 ]] || { - local ret=$? - _omz::log error "error enabling plugins." - return $ret - } - - # Exit if the new .zshrc file has syntax errors - if ! zsh -n ~/.zshrc; then - _omz::log error "broken syntax in ~/.zshrc. Rolling back changes..." - command mv -f ~/.zshrc ~/.zshrc.new - command mv -f ~/.zshrc.bck ~/.zshrc - return 1 - fi - - # Restart the zsh session if there were no errors - _omz::log info "plugins enabled: ${(j:, :)add_plugins}." - - # Old zsh versions don't have ZSH_ARGZERO - local zsh="${ZSH_ARGZERO:-${functrace[-1]%:*}}" - # Check whether to run a login shell - [[ "$zsh" = -* || -o login ]] && exec -l "${zsh#-}" || exec "$zsh" -} - -function _omz::plugin::info { - if [[ -z "$1" ]]; then - echo >&2 "Usage: omz plugin info " - return 1 - fi - - local readme - for readme in "$ZSH_CUSTOM/plugins/$1/README.md" "$ZSH/plugins/$1/README.md"; do - if [[ -f "$readme" ]]; then - (( ${+commands[less]} )) && less "$readme" || cat "$readme" - return 0 - fi - done - - if [[ -d "$ZSH_CUSTOM/plugins/$1" || -d "$ZSH/plugins/$1" ]]; then - _omz::log error "the '$1' plugin doesn't have a README file" - else - _omz::log error "'$1' plugin not found" - fi - - return 1 -} - -function _omz::plugin::list { - local -a custom_plugins builtin_plugins - custom_plugins=("$ZSH_CUSTOM"/plugins/*(-/N:t)) - builtin_plugins=("$ZSH"/plugins/*(-/N:t)) - - # If the command is being piped, print all found line by line - if [[ ! -t 1 ]]; then - print -l ${(q-)custom_plugins} ${(q-)builtin_plugins} - return - fi - - if (( ${#custom_plugins} )); then - print -P "%U%BCustom plugins%b%u:" - print -l ${(q-)custom_plugins} | column -x - fi - - if (( ${#builtin_plugins} )); then - (( ${#custom_plugins} )) && echo # add a line of separation - - print -P "%U%BBuilt-in plugins%b%u:" - print -l ${(q-)builtin_plugins} | column -x - fi -} - -function _omz::plugin::load { - if [[ -z "$1" ]]; then - echo >&2 "Usage: omz plugin load [...]" - return 1 - fi - - local plugin base has_completion=0 - for plugin in "$@"; do - if [[ -d "$ZSH_CUSTOM/plugins/$plugin" ]]; then - base="$ZSH_CUSTOM/plugins/$plugin" - elif [[ -d "$ZSH/plugins/$plugin" ]]; then - base="$ZSH/plugins/$plugin" - else - _omz::log warn "plugin '$plugin' not found" - continue - fi - - # Check if its a valid plugin - if [[ ! -f "$base/_$plugin" && ! -f "$base/$plugin.plugin.zsh" ]]; then - _omz::log warn "'$plugin' is not a valid plugin" - continue - # It it is a valid plugin, add its directory to $fpath unless it is already there - elif (( ! ${fpath[(Ie)$base]} )); then - fpath=("$base" $fpath) - fi - - # Check if it has completion to reload compinit - if [[ -f "$base/_$plugin" ]]; then - has_completion=1 - fi - - # Load the plugin - if [[ -f "$base/$plugin.plugin.zsh" ]]; then - source "$base/$plugin.plugin.zsh" - fi - done - - # If we have completion, we need to reload the completion - # We pass -D to avoid generating a new dump file, which would overwrite our - # current one for the next session (and we don't want that because we're not - # actually enabling the plugins for the next session). - # Note that we still have to pass -d "$_comp_dumpfile", so that compinit - # doesn't use the default zcompdump location (${ZDOTDIR:-$HOME}/.zcompdump). - if (( has_completion )); then - compinit -D -d "$_comp_dumpfile" - fi -} - -function _omz::pr { - (( $# > 0 && $+functions[_omz::pr::$1] )) || { - cat >&2 < [options] - -Available commands: - - clean Delete all PR branches (ohmyzsh/pull-*) - test Fetch PR #NUMBER and rebase against master - -EOF - return 1 - } - - local command="$1" - shift - - _omz::pr::$command "$@" -} - -function _omz::pr::clean { - ( - set -e - builtin cd -q "$ZSH" - - # Check if there are PR branches - local fmt branches - fmt="%(color:bold blue)%(align:18,right)%(refname:short)%(end)%(color:reset) %(color:dim bold red)%(objectname:short)%(color:reset) %(color:yellow)%(contents:subject)" - branches="$(command git for-each-ref --sort=-committerdate --color --format="$fmt" "refs/heads/ohmyzsh/pull-*")" - - # Exit if there are no PR branches - if [[ -z "$branches" ]]; then - _omz::log info "there are no Pull Request branches to remove." - return - fi - - # Print found PR branches - echo "$branches\n" - # Confirm before removing the branches - _omz::confirm "do you want remove these Pull Request branches? [Y/n] " - # Only proceed if the answer is a valid yes option - [[ "$REPLY" != [yY$'\n'] ]] && return - - _omz::log info "removing all Oh My Zsh Pull Request branches..." - command git branch --list 'ohmyzsh/pull-*' | while read branch; do - command git branch -D "$branch" - done - ) -} - -function _omz::pr::test { - # Allow $1 to be a URL to the pull request - if [[ "$1" = https://* ]]; then - 1="${1:t}" - fi - - # Check the input - if ! [[ -n "$1" && "$1" =~ ^[[:digit:]]+$ ]]; then - echo >&2 "Usage: omz pr test " - return 1 - fi - - # Save current git HEAD - local branch - branch=$(builtin cd -q "$ZSH"; git symbolic-ref --short HEAD) || { - _omz::log error "error when getting the current git branch. Aborting..." - return 1 - } - - - # Fetch PR onto ohmyzsh/pull- branch and rebase against master - # If any of these operations fail, undo the changes made - ( - set -e - builtin cd -q "$ZSH" - - # Get the ohmyzsh git remote - command git remote -v | while read remote url _; do - case "$url" in - https://github.com/ohmyzsh/ohmyzsh(|.git)) found=1; break ;; - git@github.com:ohmyzsh/ohmyzsh(|.git)) found=1; break ;; - esac - done - - (( $found )) || { - _omz::log error "could not found the ohmyzsh git remote. Aborting..." - return 1 - } - - # Fetch pull request head - _omz::log info "fetching PR #$1 to ohmyzsh/pull-$1..." - command git fetch -f "$remote" refs/pull/$1/head:ohmyzsh/pull-$1 || { - _omz::log error "error when trying to fetch PR #$1." - return 1 - } - - # Rebase pull request branch against the current master - _omz::log info "rebasing PR #$1..." - command git rebase master ohmyzsh/pull-$1 || { - command git rebase --abort &>/dev/null - _omz::log warn "could not rebase PR #$1 on top of master." - _omz::log warn "you might not see the latest stable changes." - _omz::log info "run \`zsh\` to test the changes." - return 1 - } - - _omz::log info "fetch of PR #${1} successful." - ) - - # If there was an error, abort running zsh to test the PR - [[ $? -eq 0 ]] || return 1 - - # Run zsh to test the changes - _omz::log info "running \`zsh\` to test the changes. Run \`exit\` to go back." - command zsh -l - - # After testing, go back to the previous HEAD if the user wants - _omz::confirm "do you want to go back to the previous branch? [Y/n] " - # Only proceed if the answer is a valid yes option - [[ "$REPLY" != [yY$'\n'] ]] && return - - ( - set -e - builtin cd -q "$ZSH" - - command git checkout "$branch" -- || { - _omz::log error "could not go back to the previous branch ('$branch')." - return 1 - } - ) -} - -function _omz::reload { - # Delete current completion cache - command rm -f $_comp_dumpfile $ZSH_COMPDUMP - - # Old zsh versions don't have ZSH_ARGZERO - local zsh="${ZSH_ARGZERO:-${functrace[-1]%:*}}" - # Check whether to run a login shell - [[ "$zsh" = -* || -o login ]] && exec -l "${zsh#-}" || exec "$zsh" -} - -function _omz::theme { - (( $# > 0 && $+functions[_omz::theme::$1] )) || { - cat >&2 < [options] - -Available commands: - - list List all available Oh My Zsh themes - set Set a theme in your .zshrc file - use Load a theme - -EOF - return 1 - } - - local command="$1" - shift - - _omz::theme::$command "$@" -} - -function _omz::theme::list { - local -a custom_themes builtin_themes - custom_themes=("$ZSH_CUSTOM"/**/*.zsh-theme(-.N:r:gs:"$ZSH_CUSTOM"/themes/:::gs:"$ZSH_CUSTOM"/:::)) - builtin_themes=("$ZSH"/themes/*.zsh-theme(-.N:t:r)) - - # If the command is being piped, print all found line by line - if [[ ! -t 1 ]]; then - print -l ${(q-)custom_themes} ${(q-)builtin_themes} - return - fi - - # Print theme in use - if [[ -n "$ZSH_THEME" ]]; then - print -Pn "%U%BCurrent theme%b%u: " - [[ $ZSH_THEME = random ]] && echo "$RANDOM_THEME (via random)" || echo "$ZSH_THEME" - echo - fi - - # Print custom themes if there are any - if (( ${#custom_themes} )); then - print -P "%U%BCustom themes%b%u:" - print -l ${(q-)custom_themes} | column -x - echo - fi - - # Print built-in themes - print -P "%U%BBuilt-in themes%b%u:" - print -l ${(q-)builtin_themes} | column -x -} - -function _omz::theme::set { - if [[ -z "$1" ]]; then - echo >&2 "Usage: omz theme set " - return 1 - fi - - # Check that theme exists - if [[ ! -f "$ZSH_CUSTOM/$1.zsh-theme" ]] \ - && [[ ! -f "$ZSH_CUSTOM/themes/$1.zsh-theme" ]] \ - && [[ ! -f "$ZSH/themes/$1.zsh-theme" ]]; then - _omz::log error "%B$1%b theme not found" - return 1 - fi - - # Enable theme in .zshrc - local awk_script=' -!set && /^\s*ZSH_THEME=[^#]+.*$/ { - set=1 - sub(/^\s*ZSH_THEME=[^#]+.*$/, "ZSH_THEME=\"'$1'\" # set by `omz`") - print $0 - next -} - -{ print $0 } - -END { - # If no ZSH_THEME= line was found, return an error - if (!set) exit 1 -} -' - - awk "$awk_script" ~/.zshrc > ~/.zshrc.new \ - || { - # Prepend ZSH_THEME= line to .zshrc if it doesn't exist - cat < ~/.zshrc.new \ - && command mv -f ~/.zshrc ~/.zshrc.bck \ - && command mv -f ~/.zshrc.new ~/.zshrc - - # Exit if the new .zshrc file wasn't created correctly - [[ $? -eq 0 ]] || { - local ret=$? - _omz::log error "error setting theme." - return $ret - } - - # Exit if the new .zshrc file has syntax errors - if ! zsh -n ~/.zshrc; then - _omz::log error "broken syntax in ~/.zshrc. Rolling back changes..." - command mv -f ~/.zshrc ~/.zshrc.new - command mv -f ~/.zshrc.bck ~/.zshrc - return 1 - fi - - # Restart the zsh session if there were no errors - _omz::log info "'$1' theme set correctly." - - # Old zsh versions don't have ZSH_ARGZERO - local zsh="${ZSH_ARGZERO:-${functrace[-1]%:*}}" - # Check whether to run a login shell - [[ "$zsh" = -* || -o login ]] && exec -l "${zsh#-}" || exec "$zsh" -} - -function _omz::theme::use { - if [[ -z "$1" ]]; then - echo >&2 "Usage: omz theme use " - return 1 - fi - - # Respect compatibility with old lookup order - if [[ -f "$ZSH_CUSTOM/$1.zsh-theme" ]]; then - source "$ZSH_CUSTOM/$1.zsh-theme" - elif [[ -f "$ZSH_CUSTOM/themes/$1.zsh-theme" ]]; then - source "$ZSH_CUSTOM/themes/$1.zsh-theme" - elif [[ -f "$ZSH/themes/$1.zsh-theme" ]]; then - source "$ZSH/themes/$1.zsh-theme" - else - _omz::log error "%B$1%b theme not found" - return 1 - fi - - # Update theme settings - ZSH_THEME="$1" - [[ $1 = random ]] || unset RANDOM_THEME -} - -function _omz::update { - local last_commit=$(cd "$ZSH"; git rev-parse HEAD) - - # Run update script - if [[ "$1" != --unattended ]]; then - ZSH="$ZSH" zsh -f "$ZSH/tools/upgrade.sh" --interactive - else - ZSH="$ZSH" zsh -f "$ZSH/tools/upgrade.sh" - fi - - # Update last updated file - zmodload zsh/datetime - echo "LAST_EPOCH=$(( EPOCHSECONDS / 60 / 60 / 24 ))" >! "${ZSH_CACHE_DIR}/.zsh-update" - # Remove update lock if it exists - command rm -rf "$ZSH/log/update.lock" - - # Restart the zsh session if there were changes - if [[ "$1" != --unattended && "$(cd "$ZSH"; git rev-parse HEAD)" != "$last_commit" ]]; then - # Old zsh versions don't have ZSH_ARGZERO - local zsh="${ZSH_ARGZERO:-${functrace[-1]%:*}}" - # Check whether to run a login shell - [[ "$zsh" = -* || -o login ]] && exec -l "${zsh#-}" || exec "$zsh" - fi -} diff --git a/zsh/.oh-my-zsh/lib/clipboard.zsh b/zsh/.oh-my-zsh/lib/clipboard.zsh deleted file mode 100644 index 4e3ba0a..0000000 --- a/zsh/.oh-my-zsh/lib/clipboard.zsh +++ /dev/null @@ -1,107 +0,0 @@ -# System clipboard integration -# -# This file has support for doing system clipboard copy and paste operations -# from the command line in a generic cross-platform fashion. -# -# This is uses essentially the same heuristic as neovim, with the additional -# special support for Cygwin. -# See: https://github.com/neovim/neovim/blob/e682d799fa3cf2e80a02d00c6ea874599d58f0e7/runtime/autoload/provider/clipboard.vim#L55-L121 -# -# - pbcopy, pbpaste (macOS) -# - cygwin (Windows running Cygwin) -# - wl-copy, wl-paste (if $WAYLAND_DISPLAY is set) -# - xclip (if $DISPLAY is set) -# - xsel (if $DISPLAY is set) -# - lemonade (for SSH) https://github.com/pocke/lemonade -# - doitclient (for SSH) http://www.chiark.greenend.org.uk/~sgtatham/doit/ -# - win32yank (Windows) -# - tmux (if $TMUX is set) -# -# Defines two functions, clipcopy and clippaste, based on the detected platform. -## -# -# clipcopy - Copy data to clipboard -# -# Usage: -# -# | clipcopy - copies stdin to clipboard -# -# clipcopy - copies a file's contents to clipboard -# -## -# -# clippaste - "Paste" data from clipboard to stdout -# -# Usage: -# -# clippaste - writes clipboard's contents to stdout -# -# clippaste | - pastes contents and pipes it to another process -# -# clippaste > - paste contents to a file -# -# Examples: -# -# # Pipe to another process -# clippaste | grep foo -# -# # Paste to a file -# clippaste > file.txt -# -function detect-clipboard() { - emulate -L zsh - - if [[ "${OSTYPE}" == darwin* ]] && (( ${+commands[pbcopy]} )) && (( ${+commands[pbpaste]} )); then - function clipcopy() { pbcopy < "${1:-/dev/stdin}"; } - function clippaste() { pbpaste; } - elif [[ "${OSTYPE}" == (cygwin|msys)* ]]; then - function clipcopy() { cat "${1:-/dev/stdin}" > /dev/clipboard; } - function clippaste() { cat /dev/clipboard; } - elif [ -n "${WAYLAND_DISPLAY:-}" ] && (( ${+commands[wl-copy]} )) && (( ${+commands[wl-paste]} )); then - function clipcopy() { wl-copy < "${1:-/dev/stdin}"; } - function clippaste() { wl-paste; } - elif [ -n "${DISPLAY:-}" ] && (( ${+commands[xclip]} )); then - function clipcopy() { xclip -in -selection clipboard < "${1:-/dev/stdin}"; } - function clippaste() { xclip -out -selection clipboard; } - elif [ -n "${DISPLAY:-}" ] && (( ${+commands[xsel]} )); then - function clipcopy() { xsel --clipboard --input < "${1:-/dev/stdin}"; } - function clippaste() { xsel --clipboard --output; } - elif (( ${+commands[lemonade]} )); then - function clipcopy() { lemonade copy < "${1:-/dev/stdin}"; } - function clippaste() { lemonade paste; } - elif (( ${+commands[doitclient]} )); then - function clipcopy() { doitclient wclip < "${1:-/dev/stdin}"; } - function clippaste() { doitclient wclip -r; } - elif (( ${+commands[win32yank]} )); then - function clipcopy() { win32yank -i < "${1:-/dev/stdin}"; } - function clippaste() { win32yank -o; } - elif [[ $OSTYPE == linux-android* ]] && (( $+commands[termux-clipboard-set] )); then - function clipcopy() { termux-clipboard-set < "${1:-/dev/stdin}"; } - function clippaste() { termux-clipboard-get; } - elif [ -n "${TMUX:-}" ] && (( ${+commands[tmux]} )); then - function clipcopy() { tmux load-buffer "${1:--}"; } - function clippaste() { tmux save-buffer -; } - elif [[ $(uname -r) = *icrosoft* ]]; then - function clipcopy() { clip.exe < "${1:-/dev/stdin}"; } - function clippaste() { powershell.exe -noprofile -command Get-Clipboard; } - else - function _retry_clipboard_detection_or_fail() { - local clipcmd="${1}"; shift - if detect-clipboard; then - "${clipcmd}" "$@" - else - print "${clipcmd}: Platform $OSTYPE not supported or xclip/xsel not installed" >&2 - return 1 - fi - } - function clipcopy() { _retry_clipboard_detection_or_fail clipcopy "$@"; } - function clippaste() { _retry_clipboard_detection_or_fail clippaste "$@"; } - return 1 - fi -} - -# Detect at startup. A non-zero exit here indicates that the dummy clipboards were set, -# which is not really an error. If the user calls them, they will attempt to redetect -# (for example, perhaps the user has now installed xclip) and then either print an error -# or proceed successfully. -detect-clipboard || true diff --git a/zsh/.oh-my-zsh/lib/compfix.zsh b/zsh/.oh-my-zsh/lib/compfix.zsh deleted file mode 100644 index b09b283..0000000 --- a/zsh/.oh-my-zsh/lib/compfix.zsh +++ /dev/null @@ -1,44 +0,0 @@ -# Handle completions insecurities (i.e., completion-dependent directories with -# insecure ownership or permissions) by: -# -# * Human-readably notifying the user of these insecurities. -function handle_completion_insecurities() { - # List of the absolute paths of all unique insecure directories, split on - # newline from compaudit()'s output resembling: - # - # There are insecure directories: - # /usr/share/zsh/site-functions - # /usr/share/zsh/5.0.6/functions - # /usr/share/zsh - # /usr/share/zsh/5.0.6 - # - # Since the ignorable first line is printed to stderr and thus not captured, - # stderr is squelched to prevent this output from leaking to the user. - local -aU insecure_dirs - insecure_dirs=( ${(f@):-"$(compaudit 2>/dev/null)"} ) - - # If no such directories exist, get us out of here. - [[ -z "${insecure_dirs}" ]] && return - - # List ownership and permissions of all insecure directories. - print "[oh-my-zsh] Insecure completion-dependent directories detected:" - ls -ld "${(@)insecure_dirs}" - - cat < -# -# Usage: -# -# omz_diagnostic_dump [-v] [-V] [file] -# -# NOTE: This is a work in progress. Its interface and behavior are going to change, -# and probably in non-back-compatible ways. -# -# Outputs a bunch of information about the state and configuration of -# oh-my-zsh, zsh, and the user's system. This is intended to provide a -# bunch of context for diagnosing your own or a third party's problems, and to -# be suitable for posting to public bug reports. -# -# The output is human-readable and its format may change over time. It is not -# suitable for parsing. All the output is in one single file so it can be posted -# as a gist or bug comment on GitHub. GitHub doesn't support attaching tarballs -# or other files to bugs; otherwise, this would probably have an option to produce -# tarballs that contain copies of the config and customization files instead of -# catting them all in to one file. -# -# This is intended to be widely portable, and run anywhere that oh-my-zsh does. -# Feel free to report any portability issues as bugs. -# -# This is written in a defensive style so it still works (and can detect) cases when -# basic functionality like echo and which have been redefined. In particular, almost -# everything is invoked with "builtin" or "command", to work in the face of user -# redefinitions. -# -# OPTIONS -# -# [file] Specifies the output file. If not given, a file in the current directory -# is selected automatically. -# -# -v Increase the verbosity of the dump output. May be specified multiple times. -# Verbosity levels: -# 0 - Basic info, shell state, omz configuration, git state -# 1 - (default) Adds key binding info and configuration file contents -# 2 - Adds zcompdump file contents -# -# -V Reduce the verbosity of the dump output. May be specified multiple times. -# -# TODO: -# * Multi-file capture -# * Add automatic gist uploading -# * Consider whether to move default output file location to TMPDIR. More robust -# but less user friendly. -# - -autoload -Uz is-at-least - -function omz_diagnostic_dump() { - emulate -L zsh - - builtin echo "Generating diagnostic dump; please be patient..." - - local thisfcn=omz_diagnostic_dump - local -A opts - local opt_verbose opt_noverbose opt_outfile - local timestamp=$(date +%Y%m%d-%H%M%S) - local outfile=omz_diagdump_$timestamp.txt - builtin zparseopts -A opts -D -- "v+=opt_verbose" "V+=opt_noverbose" - local verbose n_verbose=${#opt_verbose} n_noverbose=${#opt_noverbose} - (( verbose = 1 + n_verbose - n_noverbose )) - - if [[ ${#*} > 0 ]]; then - opt_outfile=$1 - fi - if [[ ${#*} > 1 ]]; then - builtin echo "$thisfcn: error: too many arguments" >&2 - return 1 - fi - if [[ -n "$opt_outfile" ]]; then - outfile="$opt_outfile" - fi - - # Always write directly to a file so terminal escape sequences are - # captured cleanly - _omz_diag_dump_one_big_text &> "$outfile" - if [[ $? != 0 ]]; then - builtin echo "$thisfcn: error while creating diagnostic dump; see $outfile for details" - fi - - builtin echo - builtin echo Diagnostic dump file created at: "$outfile" - builtin echo - builtin echo To share this with OMZ developers, post it as a gist on GitHub - builtin echo at "https://gist.github.com" and share the link to the gist. - builtin echo - builtin echo "WARNING: This dump file contains all your zsh and omz configuration files," - builtin echo "so don't share it publicly if there's sensitive information in them." - builtin echo - -} - -function _omz_diag_dump_one_big_text() { - local program programs progfile md5 - - builtin echo oh-my-zsh diagnostic dump - builtin echo - builtin echo $outfile - builtin echo - - # Basic system and zsh information - command date - command uname -a - builtin echo OSTYPE=$OSTYPE - builtin echo ZSH_VERSION=$ZSH_VERSION - builtin echo User: $USERNAME - builtin echo umask: $(umask) - builtin echo - _omz_diag_dump_os_specific_version - builtin echo - - # Installed programs - programs=(sh zsh ksh bash sed cat grep ls find git posh) - local progfile="" extra_str="" sha_str="" - for program in $programs; do - extra_str="" sha_str="" - progfile=$(builtin which $program) - if [[ $? == 0 ]]; then - if [[ -e $progfile ]]; then - if builtin whence shasum &>/dev/null; then - sha_str=($(command shasum $progfile)) - sha_str=$sha_str[1] - extra_str+=" SHA $sha_str" - fi - if [[ -h "$progfile" ]]; then - extra_str+=" ( -> ${progfile:A} )" - fi - fi - builtin printf '%-9s %-20s %s\n' "$program is" "$progfile" "$extra_str" - else - builtin echo "$program: not found" - fi - done - builtin echo - builtin echo Command Versions: - builtin echo "zsh: $(zsh --version)" - builtin echo "this zsh session: $ZSH_VERSION" - builtin echo "bash: $(bash --version | command grep bash)" - builtin echo "git: $(git --version)" - builtin echo "grep: $(grep --version)" - builtin echo - - # Core command definitions - _omz_diag_dump_check_core_commands || return 1 - builtin echo - - # ZSH Process state - builtin echo Process state: - builtin echo pwd: $PWD - if builtin whence pstree &>/dev/null; then - builtin echo Process tree for this shell: - pstree -p $$ - else - ps -fT - fi - builtin set | command grep -a '^\(ZSH\|plugins\|TERM\|LC_\|LANG\|precmd\|chpwd\|preexec\|FPATH\|TTY\|DISPLAY\|PATH\)\|OMZ' - builtin echo - #TODO: Should this include `env` instead of or in addition to `export`? - builtin echo Exported: - builtin echo $(builtin export | command sed 's/=.*//') - builtin echo - builtin echo Locale: - command locale - builtin echo - - # Zsh installation and configuration - builtin echo Zsh configuration: - builtin echo setopt: $(builtin setopt) - builtin echo - builtin echo zstyle: - builtin zstyle - builtin echo - builtin echo 'compaudit output:' - compaudit - builtin echo - builtin echo '$fpath directories:' - command ls -lad $fpath - builtin echo - - # Oh-my-zsh installation - builtin echo oh-my-zsh installation: - command ls -ld ~/.z* - command ls -ld ~/.oh* - builtin echo - builtin echo oh-my-zsh git state: - (builtin cd $ZSH && builtin echo "HEAD: $(git rev-parse HEAD)" && git remote -v && git status | command grep "[^[:space:]]") - if [[ $verbose -ge 1 ]]; then - (builtin cd $ZSH && git reflog --date=default | command grep pull) - fi - builtin echo - if [[ -e $ZSH_CUSTOM ]]; then - local custom_dir=$ZSH_CUSTOM - if [[ -h $custom_dir ]]; then - custom_dir=$(builtin cd $custom_dir && pwd -P) - fi - builtin echo "oh-my-zsh custom dir:" - builtin echo " $ZSH_CUSTOM ($custom_dir)" - (builtin cd ${custom_dir:h} && command find ${custom_dir:t} -name .git -prune -o -print) - builtin echo - fi - - # Key binding and terminal info - if [[ $verbose -ge 1 ]]; then - builtin echo "bindkey:" - builtin bindkey - builtin echo - builtin echo "infocmp:" - command infocmp -L - builtin echo - fi - - # Configuration file info - local zdotdir=${ZDOTDIR:-$HOME} - builtin echo "Zsh configuration files:" - local cfgfile cfgfiles - # Some files for bash that zsh does not use are intentionally included - # to help with diagnosing behavior differences between bash and zsh - cfgfiles=( /etc/zshenv /etc/zprofile /etc/zshrc /etc/zlogin /etc/zlogout - $zdotdir/.zshenv $zdotdir/.zprofile $zdotdir/.zshrc $zdotdir/.zlogin $zdotdir/.zlogout - ~/.zsh.pre-oh-my-zsh - /etc/bashrc /etc/profile ~/.bashrc ~/.profile ~/.bash_profile ~/.bash_logout ) - command ls -lad $cfgfiles 2>&1 - builtin echo - if [[ $verbose -ge 1 ]]; then - for cfgfile in $cfgfiles; do - _omz_diag_dump_echo_file_w_header $cfgfile - done - fi - builtin echo - builtin echo "Zsh compdump files:" - local dumpfile dumpfiles - command ls -lad $zdotdir/.zcompdump* - dumpfiles=( $zdotdir/.zcompdump*(N) ) - if [[ $verbose -ge 2 ]]; then - for dumpfile in $dumpfiles; do - _omz_diag_dump_echo_file_w_header $dumpfile - done - fi - -} - -function _omz_diag_dump_check_core_commands() { - builtin echo "Core command check:" - local redefined name builtins externals reserved_words - redefined=() - # All the zsh non-module builtin commands - # These are taken from the zsh reference manual for 5.0.2 - # Commands from modules should not be included. - # (For back-compatibility, if any of these are newish, they should be removed, - # or at least made conditional on the version of the current running zsh.) - # "history" is also excluded because OMZ is known to redefine that - reserved_words=( do done esac then elif else fi for case if while function - repeat time until select coproc nocorrect foreach end '!' '[[' '{' '}' - ) - builtins=( alias autoload bg bindkey break builtin bye cd chdir command - comparguments compcall compctl compdescribe compfiles compgroups compquote comptags - comptry compvalues continue dirs disable disown echo echotc echoti emulate - enable eval exec exit false fc fg functions getln getopts hash - jobs kill let limit log logout noglob popd print printf - pushd pushln pwd r read rehash return sched set setopt shift - source suspend test times trap true ttyctl type ulimit umask unalias - unfunction unhash unlimit unset unsetopt vared wait whence where which zcompile - zle zmodload zparseopts zregexparse zstyle ) - if is-at-least 5.1; then - reserved_word+=( declare export integer float local readonly typeset ) - else - builtins+=( declare export integer float local readonly typeset ) - fi - builtins_fatal=( builtin command local ) - externals=( zsh ) - for name in $reserved_words; do - if [[ $(builtin whence -w $name) != "$name: reserved" ]]; then - builtin echo "reserved word '$name' has been redefined" - builtin which $name - redefined+=$name - fi - done - for name in $builtins; do - if [[ $(builtin whence -w $name) != "$name: builtin" ]]; then - builtin echo "builtin '$name' has been redefined" - builtin which $name - redefined+=$name - fi - done - for name in $externals; do - if [[ $(builtin whence -w $name) != "$name: command" ]]; then - builtin echo "command '$name' has been redefined" - builtin which $name - redefined+=$name - fi - done - - if [[ -n "$redefined" ]]; then - builtin echo "SOME CORE COMMANDS HAVE BEEN REDEFINED: $redefined" - else - builtin echo "All core commands are defined normally" - fi - -} - -function _omz_diag_dump_echo_file_w_header() { - local file=$1 - if [[ ( -f $file || -h $file ) ]]; then - builtin echo "========== $file ==========" - if [[ -h $file ]]; then - builtin echo "========== ( => ${file:A} ) ==========" - fi - command cat $file - builtin echo "========== end $file ==========" - builtin echo - elif [[ -d $file ]]; then - builtin echo "File '$file' is a directory" - elif [[ ! -e $file ]]; then - builtin echo "File '$file' does not exist" - else - command ls -lad "$file" - fi -} - -function _omz_diag_dump_os_specific_version() { - local osname osver version_file version_files - case "$OSTYPE" in - darwin*) - osname=$(command sw_vers -productName) - osver=$(command sw_vers -productVersion) - builtin echo "OS Version: $osname $osver build $(sw_vers -buildVersion)" - ;; - cygwin) - command systeminfo | command head -4 | command tail -2 - ;; - esac - - if builtin which lsb_release >/dev/null; then - builtin echo "OS Release: $(command lsb_release -s -d)" - fi - - version_files=( /etc/*-release(N) /etc/*-version(N) /etc/*_version(N) ) - for version_file in $version_files; do - builtin echo "$version_file:" - command cat "$version_file" - builtin echo - done -} - diff --git a/zsh/.oh-my-zsh/lib/directories.zsh b/zsh/.oh-my-zsh/lib/directories.zsh deleted file mode 100644 index cf87bd7..0000000 --- a/zsh/.oh-my-zsh/lib/directories.zsh +++ /dev/null @@ -1,38 +0,0 @@ -# Changing/making/removing directory -setopt auto_pushd -setopt pushd_ignore_dups -setopt pushdminus - -alias -g ...='../..' -alias -g ....='../../..' -alias -g .....='../../../..' -alias -g ......='../../../../..' - -alias -- -='cd -' -alias 1='cd -' -alias 2='cd -2' -alias 3='cd -3' -alias 4='cd -4' -alias 5='cd -5' -alias 6='cd -6' -alias 7='cd -7' -alias 8='cd -8' -alias 9='cd -9' - -alias md='mkdir -p' -alias rd=rmdir - -function d () { - if [[ -n $1 ]]; then - dirs "$@" - else - dirs -v | head -10 - fi -} -compdef _dirs d - -# List directory contents -alias lsa='ls -lah' -alias l='ls -lah' -alias ll='ls -lh' -alias la='ls -lAh' diff --git a/zsh/.oh-my-zsh/lib/functions.zsh b/zsh/.oh-my-zsh/lib/functions.zsh deleted file mode 100644 index 73b491a..0000000 --- a/zsh/.oh-my-zsh/lib/functions.zsh +++ /dev/null @@ -1,256 +0,0 @@ -function zsh_stats() { - fc -l 1 \ - | awk '{ CMD[$2]++; count++; } END { for (a in CMD) print CMD[a] " " CMD[a]*100/count "% " a }' \ - | grep -v "./" | sort -nr | head -20 | column -c3 -s " " -t | nl -} - -function uninstall_oh_my_zsh() { - env ZSH="$ZSH" sh "$ZSH/tools/uninstall.sh" -} - -function upgrade_oh_my_zsh() { - echo >&2 "${fg[yellow]}Note: \`$0\` is deprecated. Use \`omz update\` instead.$reset_color" - omz update -} - -function open_command() { - local open_cmd - - # define the open command - case "$OSTYPE" in - darwin*) open_cmd='open' ;; - cygwin*) open_cmd='cygstart' ;; - linux*) [[ "$(uname -r)" != *icrosoft* ]] && open_cmd='nohup xdg-open' || { - open_cmd='cmd.exe /c start ""' - [[ -e "$1" ]] && { 1="$(wslpath -w "${1:a}")" || return 1 } - } ;; - msys*) open_cmd='start ""' ;; - *) echo "Platform $OSTYPE not supported" - return 1 - ;; - esac - - ${=open_cmd} "$@" &>/dev/null -} - -# take functions - -# mkcd is equivalent to takedir -function mkcd takedir() { - mkdir -p $@ && cd ${@:$#} -} - -function takeurl() { - local data thedir - data="$(mktemp)" - curl -L "$1" > "$data" - tar xf "$data" - thedir="$(tar tf "$data" | head -1)" - rm "$data" - cd "$thedir" -} - -function takegit() { - git clone "$1" - cd "$(basename ${1%%.git})" -} - -function take() { - if [[ $1 =~ ^(https?|ftp).*\.tar\.(gz|bz2|xz)$ ]]; then - takeurl "$1" - elif [[ $1 =~ ^([A-Za-z0-9]\+@|https?|git|ssh|ftps?|rsync).*\.git/?$ ]]; then - takegit "$1" - else - takedir "$@" - fi -} - -# -# Get the value of an alias. -# -# Arguments: -# 1. alias - The alias to get its value from -# STDOUT: -# The value of alias $1 (if it has one). -# Return value: -# 0 if the alias was found, -# 1 if it does not exist -# -function alias_value() { - (( $+aliases[$1] )) && echo $aliases[$1] -} - -# -# Try to get the value of an alias, -# otherwise return the input. -# -# Arguments: -# 1. alias - The alias to get its value from -# STDOUT: -# The value of alias $1, or $1 if there is no alias $1. -# Return value: -# Always 0 -# -function try_alias_value() { - alias_value "$1" || echo "$1" -} - -# -# Set variable "$1" to default value "$2" if "$1" is not yet defined. -# -# Arguments: -# 1. name - The variable to set -# 2. val - The default value -# Return value: -# 0 if the variable exists, 3 if it was set -# -function default() { - (( $+parameters[$1] )) && return 0 - typeset -g "$1"="$2" && return 3 -} - -# -# Set environment variable "$1" to default value "$2" if "$1" is not yet defined. -# -# Arguments: -# 1. name - The env variable to set -# 2. val - The default value -# Return value: -# 0 if the env variable exists, 3 if it was set -# -function env_default() { - [[ ${parameters[$1]} = *-export* ]] && return 0 - export "$1=$2" && return 3 -} - - -# Required for $langinfo -zmodload zsh/langinfo - -# URL-encode a string -# -# Encodes a string using RFC 2396 URL-encoding (%-escaped). -# See: https://www.ietf.org/rfc/rfc2396.txt -# -# By default, reserved characters and unreserved "mark" characters are -# not escaped by this function. This allows the common usage of passing -# an entire URL in, and encoding just special characters in it, with -# the expectation that reserved and mark characters are used appropriately. -# The -r and -m options turn on escaping of the reserved and mark characters, -# respectively, which allows arbitrary strings to be fully escaped for -# embedding inside URLs, where reserved characters might be misinterpreted. -# -# Prints the encoded string on stdout. -# Returns nonzero if encoding failed. -# -# Usage: -# omz_urlencode [-r] [-m] [-P] -# -# -r causes reserved characters (;/?:@&=+$,) to be escaped -# -# -m causes "mark" characters (_.!~*''()-) to be escaped -# -# -P causes spaces to be encoded as '%20' instead of '+' -function omz_urlencode() { - emulate -L zsh - local -a opts - zparseopts -D -E -a opts r m P - - local in_str=$1 - local url_str="" - local spaces_as_plus - if [[ -z $opts[(r)-P] ]]; then spaces_as_plus=1; fi - local str="$in_str" - - # URLs must use UTF-8 encoding; convert str to UTF-8 if required - local encoding=$langinfo[CODESET] - local safe_encodings - safe_encodings=(UTF-8 utf8 US-ASCII) - if [[ -z ${safe_encodings[(r)$encoding]} ]]; then - str=$(echo -E "$str" | iconv -f $encoding -t UTF-8) - if [[ $? != 0 ]]; then - echo "Error converting string from $encoding to UTF-8" >&2 - return 1 - fi - fi - - # Use LC_CTYPE=C to process text byte-by-byte - local i byte ord LC_ALL=C - export LC_ALL - local reserved=';/?:@&=+$,' - local mark='_.!~*''()-' - local dont_escape="[A-Za-z0-9" - if [[ -z $opts[(r)-r] ]]; then - dont_escape+=$reserved - fi - # $mark must be last because of the "-" - if [[ -z $opts[(r)-m] ]]; then - dont_escape+=$mark - fi - dont_escape+="]" - - # Implemented to use a single printf call and avoid subshells in the loop, - # for performance (primarily on Windows). - local url_str="" - for (( i = 1; i <= ${#str}; ++i )); do - byte="$str[i]" - if [[ "$byte" =~ "$dont_escape" ]]; then - url_str+="$byte" - else - if [[ "$byte" == " " && -n $spaces_as_plus ]]; then - url_str+="+" - else - ord=$(( [##16] #byte )) - url_str+="%$ord" - fi - fi - done - echo -E "$url_str" -} - -# URL-decode a string -# -# Decodes a RFC 2396 URL-encoded (%-escaped) string. -# This decodes the '+' and '%' escapes in the input string, and leaves -# other characters unchanged. Does not enforce that the input is a -# valid URL-encoded string. This is a convenience to allow callers to -# pass in a full URL or similar strings and decode them for human -# presentation. -# -# Outputs the encoded string on stdout. -# Returns nonzero if encoding failed. -# -# Usage: -# omz_urldecode - prints decoded string followed by a newline -function omz_urldecode { - emulate -L zsh - local encoded_url=$1 - - # Work bytewise, since URLs escape UTF-8 octets - local caller_encoding=$langinfo[CODESET] - local LC_ALL=C - export LC_ALL - - # Change + back to ' ' - local tmp=${encoded_url:gs/+/ /} - # Protect other escapes to pass through the printf unchanged - tmp=${tmp:gs/\\/\\\\/} - # Handle %-escapes by turning them into `\xXX` printf escapes - tmp=${tmp:gs/%/\\x/} - local decoded - eval "decoded=\$'$tmp'" - - # Now we have a UTF-8 encoded string in the variable. We need to re-encode - # it if caller is in a non-UTF-8 locale. - local safe_encodings - safe_encodings=(UTF-8 utf8 US-ASCII) - if [[ -z ${safe_encodings[(r)$caller_encoding]} ]]; then - decoded=$(echo -E "$decoded" | iconv -f UTF-8 -t $caller_encoding) - if [[ $? != 0 ]]; then - echo "Error converting string from UTF-8 to $caller_encoding" >&2 - return 1 - fi - fi - - echo -E "$decoded" -} diff --git a/zsh/.oh-my-zsh/lib/git.zsh b/zsh/.oh-my-zsh/lib/git.zsh deleted file mode 100644 index 9a615e7..0000000 --- a/zsh/.oh-my-zsh/lib/git.zsh +++ /dev/null @@ -1,281 +0,0 @@ -# The git prompt's git commands are read-only and should not interfere with -# other processes. This environment variable is equivalent to running with `git -# --no-optional-locks`, but falls back gracefully for older versions of git. -# See git(1) for and git-status(1) for a description of that flag. -# -# We wrap in a local function instead of exporting the variable directly in -# order to avoid interfering with manually-run git commands by the user. -function __git_prompt_git() { - GIT_OPTIONAL_LOCKS=0 command git "$@" -} - -function git_prompt_info() { - # If we are on a folder not tracked by git, get out. - # Otherwise, check for hide-info at global and local repository level - if ! __git_prompt_git rev-parse --git-dir &> /dev/null \ - || [[ "$(__git_prompt_git config --get oh-my-zsh.hide-info 2>/dev/null)" == 1 ]]; then - return 0 - fi - - local ref - ref=$(__git_prompt_git symbolic-ref --short HEAD 2> /dev/null) \ - || ref=$(__git_prompt_git rev-parse --short HEAD 2> /dev/null) \ - || return 0 - - # Use global ZSH_THEME_GIT_SHOW_UPSTREAM=1 for including upstream remote info - local upstream - if (( ${+ZSH_THEME_GIT_SHOW_UPSTREAM} )); then - upstream=$(__git_prompt_git rev-parse --abbrev-ref --symbolic-full-name "@{upstream}" 2>/dev/null) \ - && upstream=" -> ${upstream}" - fi - - echo "${ZSH_THEME_GIT_PROMPT_PREFIX}${ref}${upstream}$(parse_git_dirty)${ZSH_THEME_GIT_PROMPT_SUFFIX}" -} - -# Checks if working tree is dirty -function parse_git_dirty() { - local STATUS - local -a FLAGS - FLAGS=('--porcelain') - if [[ "$(__git_prompt_git config --get oh-my-zsh.hide-dirty)" != "1" ]]; then - if [[ "${DISABLE_UNTRACKED_FILES_DIRTY:-}" == "true" ]]; then - FLAGS+='--untracked-files=no' - fi - case "${GIT_STATUS_IGNORE_SUBMODULES:-}" in - git) - # let git decide (this respects per-repo config in .gitmodules) - ;; - *) - # if unset: ignore dirty submodules - # other values are passed to --ignore-submodules - FLAGS+="--ignore-submodules=${GIT_STATUS_IGNORE_SUBMODULES:-dirty}" - ;; - esac - STATUS=$(__git_prompt_git status ${FLAGS} 2> /dev/null | tail -1) - fi - if [[ -n $STATUS ]]; then - echo "$ZSH_THEME_GIT_PROMPT_DIRTY" - else - echo "$ZSH_THEME_GIT_PROMPT_CLEAN" - fi -} - -# Gets the difference between the local and remote branches -function git_remote_status() { - local remote ahead behind git_remote_status git_remote_status_detailed - remote=${$(__git_prompt_git rev-parse --verify ${hook_com[branch]}@{upstream} --symbolic-full-name 2>/dev/null)/refs\/remotes\/} - if [[ -n ${remote} ]]; then - ahead=$(__git_prompt_git rev-list ${hook_com[branch]}@{upstream}..HEAD 2>/dev/null | wc -l) - behind=$(__git_prompt_git rev-list HEAD..${hook_com[branch]}@{upstream} 2>/dev/null | wc -l) - - if [[ $ahead -eq 0 ]] && [[ $behind -eq 0 ]]; then - git_remote_status="$ZSH_THEME_GIT_PROMPT_EQUAL_REMOTE" - elif [[ $ahead -gt 0 ]] && [[ $behind -eq 0 ]]; then - git_remote_status="$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE" - git_remote_status_detailed="$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE_COLOR$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE$((ahead))%{$reset_color%}" - elif [[ $behind -gt 0 ]] && [[ $ahead -eq 0 ]]; then - git_remote_status="$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE" - git_remote_status_detailed="$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE_COLOR$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE$((behind))%{$reset_color%}" - elif [[ $ahead -gt 0 ]] && [[ $behind -gt 0 ]]; then - git_remote_status="$ZSH_THEME_GIT_PROMPT_DIVERGED_REMOTE" - git_remote_status_detailed="$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE_COLOR$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE$((ahead))%{$reset_color%}$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE_COLOR$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE$((behind))%{$reset_color%}" - fi - - if [[ -n $ZSH_THEME_GIT_PROMPT_REMOTE_STATUS_DETAILED ]]; then - git_remote_status="$ZSH_THEME_GIT_PROMPT_REMOTE_STATUS_PREFIX$remote$git_remote_status_detailed$ZSH_THEME_GIT_PROMPT_REMOTE_STATUS_SUFFIX" - fi - - echo $git_remote_status - fi -} - -# Outputs the name of the current branch -# Usage example: git pull origin $(git_current_branch) -# Using '--quiet' with 'symbolic-ref' will not cause a fatal error (128) if -# it's not a symbolic ref, but in a Git repo. -function git_current_branch() { - local ref - ref=$(__git_prompt_git symbolic-ref --quiet HEAD 2> /dev/null) - local ret=$? - if [[ $ret != 0 ]]; then - [[ $ret == 128 ]] && return # no git repo. - ref=$(__git_prompt_git rev-parse --short HEAD 2> /dev/null) || return - fi - echo ${ref#refs/heads/} -} - - -# Gets the number of commits ahead from remote -function git_commits_ahead() { - if __git_prompt_git rev-parse --git-dir &>/dev/null; then - local commits="$(__git_prompt_git rev-list --count @{upstream}..HEAD 2>/dev/null)" - if [[ -n "$commits" && "$commits" != 0 ]]; then - echo "$ZSH_THEME_GIT_COMMITS_AHEAD_PREFIX$commits$ZSH_THEME_GIT_COMMITS_AHEAD_SUFFIX" - fi - fi -} - -# Gets the number of commits behind remote -function git_commits_behind() { - if __git_prompt_git rev-parse --git-dir &>/dev/null; then - local commits="$(__git_prompt_git rev-list --count HEAD..@{upstream} 2>/dev/null)" - if [[ -n "$commits" && "$commits" != 0 ]]; then - echo "$ZSH_THEME_GIT_COMMITS_BEHIND_PREFIX$commits$ZSH_THEME_GIT_COMMITS_BEHIND_SUFFIX" - fi - fi -} - -# Outputs if current branch is ahead of remote -function git_prompt_ahead() { - if [[ -n "$(__git_prompt_git rev-list origin/$(git_current_branch)..HEAD 2> /dev/null)" ]]; then - echo "$ZSH_THEME_GIT_PROMPT_AHEAD" - fi -} - -# Outputs if current branch is behind remote -function git_prompt_behind() { - if [[ -n "$(__git_prompt_git rev-list HEAD..origin/$(git_current_branch) 2> /dev/null)" ]]; then - echo "$ZSH_THEME_GIT_PROMPT_BEHIND" - fi -} - -# Outputs if current branch exists on remote or not -function git_prompt_remote() { - if [[ -n "$(__git_prompt_git show-ref origin/$(git_current_branch) 2> /dev/null)" ]]; then - echo "$ZSH_THEME_GIT_PROMPT_REMOTE_EXISTS" - else - echo "$ZSH_THEME_GIT_PROMPT_REMOTE_MISSING" - fi -} - -# Formats prompt string for current git commit short SHA -function git_prompt_short_sha() { - local SHA - SHA=$(__git_prompt_git rev-parse --short HEAD 2> /dev/null) && echo "$ZSH_THEME_GIT_PROMPT_SHA_BEFORE$SHA$ZSH_THEME_GIT_PROMPT_SHA_AFTER" -} - -# Formats prompt string for current git commit long SHA -function git_prompt_long_sha() { - local SHA - SHA=$(__git_prompt_git rev-parse HEAD 2> /dev/null) && echo "$ZSH_THEME_GIT_PROMPT_SHA_BEFORE$SHA$ZSH_THEME_GIT_PROMPT_SHA_AFTER" -} - -function git_prompt_status() { - [[ "$(__git_prompt_git config --get oh-my-zsh.hide-status 2>/dev/null)" = 1 ]] && return - - # Maps a git status prefix to an internal constant - # This cannot use the prompt constants, as they may be empty - local -A prefix_constant_map - prefix_constant_map=( - '\?\? ' 'UNTRACKED' - 'A ' 'ADDED' - 'M ' 'ADDED' - 'MM ' 'MODIFIED' - ' M ' 'MODIFIED' - 'AM ' 'MODIFIED' - ' T ' 'MODIFIED' - 'R ' 'RENAMED' - ' D ' 'DELETED' - 'D ' 'DELETED' - 'UU ' 'UNMERGED' - 'ahead' 'AHEAD' - 'behind' 'BEHIND' - 'diverged' 'DIVERGED' - 'stashed' 'STASHED' - ) - - # Maps the internal constant to the prompt theme - local -A constant_prompt_map - constant_prompt_map=( - 'UNTRACKED' "$ZSH_THEME_GIT_PROMPT_UNTRACKED" - 'ADDED' "$ZSH_THEME_GIT_PROMPT_ADDED" - 'MODIFIED' "$ZSH_THEME_GIT_PROMPT_MODIFIED" - 'RENAMED' "$ZSH_THEME_GIT_PROMPT_RENAMED" - 'DELETED' "$ZSH_THEME_GIT_PROMPT_DELETED" - 'UNMERGED' "$ZSH_THEME_GIT_PROMPT_UNMERGED" - 'AHEAD' "$ZSH_THEME_GIT_PROMPT_AHEAD" - 'BEHIND' "$ZSH_THEME_GIT_PROMPT_BEHIND" - 'DIVERGED' "$ZSH_THEME_GIT_PROMPT_DIVERGED" - 'STASHED' "$ZSH_THEME_GIT_PROMPT_STASHED" - ) - - # The order that the prompt displays should be added to the prompt - local status_constants - status_constants=( - UNTRACKED ADDED MODIFIED RENAMED DELETED - STASHED UNMERGED AHEAD BEHIND DIVERGED - ) - - local status_text - status_text="$(__git_prompt_git status --porcelain -b 2> /dev/null)" - - # Don't continue on a catastrophic failure - if [[ $? -eq 128 ]]; then - return 1 - fi - - # A lookup table of each git status encountered - local -A statuses_seen - - if __git_prompt_git rev-parse --verify refs/stash &>/dev/null; then - statuses_seen[STASHED]=1 - fi - - local status_lines - status_lines=("${(@f)${status_text}}") - - # If the tracking line exists, get and parse it - if [[ "$status_lines[1]" =~ "^## [^ ]+ \[(.*)\]" ]]; then - local branch_statuses - branch_statuses=("${(@s/,/)match}") - for branch_status in $branch_statuses; do - if [[ ! $branch_status =~ "(behind|diverged|ahead) ([0-9]+)?" ]]; then - continue - fi - local last_parsed_status=$prefix_constant_map[$match[1]] - statuses_seen[$last_parsed_status]=$match[2] - done - fi - - # For each status prefix, do a regex comparison - for status_prefix in ${(k)prefix_constant_map}; do - local status_constant="${prefix_constant_map[$status_prefix]}" - local status_regex=$'(^|\n)'"$status_prefix" - - if [[ "$status_text" =~ $status_regex ]]; then - statuses_seen[$status_constant]=1 - fi - done - - # Display the seen statuses in the order specified - local status_prompt - for status_constant in $status_constants; do - if (( ${+statuses_seen[$status_constant]} )); then - local next_display=$constant_prompt_map[$status_constant] - status_prompt="$next_display$status_prompt" - fi - done - - echo $status_prompt -} - -# Outputs the name of the current user -# Usage example: $(git_current_user_name) -function git_current_user_name() { - __git_prompt_git config user.name 2>/dev/null -} - -# Outputs the email of the current user -# Usage example: $(git_current_user_email) -function git_current_user_email() { - __git_prompt_git config user.email 2>/dev/null -} - -# Output the name of the root directory of the git repository -# Usage example: $(git_repo_name) -function git_repo_name() { - local repo_path - if repo_path="$(__git_prompt_git rev-parse --show-toplevel 2>/dev/null)" && [[ -n "$repo_path" ]]; then - echo ${repo_path:t} - fi -} diff --git a/zsh/.oh-my-zsh/lib/grep.zsh b/zsh/.oh-my-zsh/lib/grep.zsh deleted file mode 100644 index a725e0f..0000000 --- a/zsh/.oh-my-zsh/lib/grep.zsh +++ /dev/null @@ -1,41 +0,0 @@ -__GREP_CACHE_FILE="$ZSH_CACHE_DIR"/grep-alias - -# See if there's a cache file modified in the last day -__GREP_ALIAS_CACHES=("$__GREP_CACHE_FILE"(Nm-1)) -if [[ -n "$__GREP_ALIAS_CACHES" ]]; then - source "$__GREP_CACHE_FILE" -else - grep-flags-available() { - command grep "$@" "" &>/dev/null <<< "" - } - - # Ignore these folders (if the necessary grep flags are available) - EXC_FOLDERS="{.bzr,CVS,.git,.hg,.svn,.idea,.tox}" - - # Check for --exclude-dir, otherwise check for --exclude. If --exclude - # isn't available, --color won't be either (they were released at the same - # time (v2.5): https://git.savannah.gnu.org/cgit/grep.git/tree/NEWS?id=1236f007 - if grep-flags-available --color=auto --exclude-dir=.cvs; then - GREP_OPTIONS="--color=auto --exclude-dir=$EXC_FOLDERS" - elif grep-flags-available --color=auto --exclude=.cvs; then - GREP_OPTIONS="--color=auto --exclude=$EXC_FOLDERS" - fi - - if [[ -n "$GREP_OPTIONS" ]]; then - # export grep, egrep and fgrep settings - alias grep="grep $GREP_OPTIONS" - alias egrep="egrep $GREP_OPTIONS" - alias fgrep="fgrep $GREP_OPTIONS" - - # write to cache file if cache directory is writable - if [[ -w "$ZSH_CACHE_DIR" ]]; then - alias -L grep egrep fgrep >| "$__GREP_CACHE_FILE" - fi - fi - - # Clean up - unset GREP_OPTIONS EXC_FOLDERS - unfunction grep-flags-available -fi - -unset __GREP_CACHE_FILE __GREP_ALIAS_CACHES diff --git a/zsh/.oh-my-zsh/lib/history.zsh b/zsh/.oh-my-zsh/lib/history.zsh deleted file mode 100644 index 7940769..0000000 --- a/zsh/.oh-my-zsh/lib/history.zsh +++ /dev/null @@ -1,40 +0,0 @@ -## History wrapper -function omz_history { - local clear list - zparseopts -E c=clear l=list - - if [[ -n "$clear" ]]; then - # if -c provided, clobber the history file - echo -n >| "$HISTFILE" - fc -p "$HISTFILE" - echo >&2 History file deleted. - elif [[ -n "$list" ]]; then - # if -l provided, run as if calling `fc' directly - builtin fc "$@" - else - # unless a number is provided, show all history events (starting from 1) - [[ ${@[-1]-} = *[0-9]* ]] && builtin fc -l "$@" || builtin fc -l "$@" 1 - fi -} - -# Timestamp format -case ${HIST_STAMPS-} in - "mm/dd/yyyy") alias history='omz_history -f' ;; - "dd.mm.yyyy") alias history='omz_history -E' ;; - "yyyy-mm-dd") alias history='omz_history -i' ;; - "") alias history='omz_history' ;; - *) alias history="omz_history -t '$HIST_STAMPS'" ;; -esac - -## History file configuration -[ -z "$HISTFILE" ] && HISTFILE="$HOME/.zsh_history" -[ "$HISTSIZE" -lt 50000 ] && HISTSIZE=50000 -[ "$SAVEHIST" -lt 10000 ] && SAVEHIST=10000 - -## History command configuration -setopt extended_history # record timestamp of command in HISTFILE -setopt hist_expire_dups_first # delete duplicates first when HISTFILE size exceeds HISTSIZE -setopt hist_ignore_dups # ignore duplicated commands history list -setopt hist_ignore_space # ignore commands that start with space -setopt hist_verify # show command with history expansion to user before running it -setopt share_history # share command history data diff --git a/zsh/.oh-my-zsh/lib/key-bindings.zsh b/zsh/.oh-my-zsh/lib/key-bindings.zsh deleted file mode 100644 index aaa7304..0000000 --- a/zsh/.oh-my-zsh/lib/key-bindings.zsh +++ /dev/null @@ -1,138 +0,0 @@ -# http://zsh.sourceforge.net/Doc/Release/Zsh-Line-Editor.html -# http://zsh.sourceforge.net/Doc/Release/Zsh-Line-Editor.html#Zle-Builtins -# http://zsh.sourceforge.net/Doc/Release/Zsh-Line-Editor.html#Standard-Widgets - -# Make sure that the terminal is in application mode when zle is active, since -# only then values from $terminfo are valid -if (( ${+terminfo[smkx]} )) && (( ${+terminfo[rmkx]} )); then - function zle-line-init() { - echoti smkx - } - function zle-line-finish() { - echoti rmkx - } - zle -N zle-line-init - zle -N zle-line-finish -fi - -# Use emacs key bindings -bindkey -e - -# [PageUp] - Up a line of history -if [[ -n "${terminfo[kpp]}" ]]; then - bindkey -M emacs "${terminfo[kpp]}" up-line-or-history - bindkey -M viins "${terminfo[kpp]}" up-line-or-history - bindkey -M vicmd "${terminfo[kpp]}" up-line-or-history -fi -# [PageDown] - Down a line of history -if [[ -n "${terminfo[knp]}" ]]; then - bindkey -M emacs "${terminfo[knp]}" down-line-or-history - bindkey -M viins "${terminfo[knp]}" down-line-or-history - bindkey -M vicmd "${terminfo[knp]}" down-line-or-history -fi - -# Start typing + [Up-Arrow] - fuzzy find history forward -if [[ -n "${terminfo[kcuu1]}" ]]; then - autoload -U up-line-or-beginning-search - zle -N up-line-or-beginning-search - - bindkey -M emacs "${terminfo[kcuu1]}" up-line-or-beginning-search - bindkey -M viins "${terminfo[kcuu1]}" up-line-or-beginning-search - bindkey -M vicmd "${terminfo[kcuu1]}" up-line-or-beginning-search -fi -# Start typing + [Down-Arrow] - fuzzy find history backward -if [[ -n "${terminfo[kcud1]}" ]]; then - autoload -U down-line-or-beginning-search - zle -N down-line-or-beginning-search - - bindkey -M emacs "${terminfo[kcud1]}" down-line-or-beginning-search - bindkey -M viins "${terminfo[kcud1]}" down-line-or-beginning-search - bindkey -M vicmd "${terminfo[kcud1]}" down-line-or-beginning-search -fi - -# [Home] - Go to beginning of line -if [[ -n "${terminfo[khome]}" ]]; then - bindkey -M emacs "${terminfo[khome]}" beginning-of-line - bindkey -M viins "${terminfo[khome]}" beginning-of-line - bindkey -M vicmd "${terminfo[khome]}" beginning-of-line -fi -# [End] - Go to end of line -if [[ -n "${terminfo[kend]}" ]]; then - bindkey -M emacs "${terminfo[kend]}" end-of-line - bindkey -M viins "${terminfo[kend]}" end-of-line - bindkey -M vicmd "${terminfo[kend]}" end-of-line -fi - -# [Shift-Tab] - move through the completion menu backwards -if [[ -n "${terminfo[kcbt]}" ]]; then - bindkey -M emacs "${terminfo[kcbt]}" reverse-menu-complete - bindkey -M viins "${terminfo[kcbt]}" reverse-menu-complete - bindkey -M vicmd "${terminfo[kcbt]}" reverse-menu-complete -fi - -# [Backspace] - delete backward -bindkey -M emacs '^?' backward-delete-char -bindkey -M viins '^?' backward-delete-char -bindkey -M vicmd '^?' backward-delete-char -# [Delete] - delete forward -if [[ -n "${terminfo[kdch1]}" ]]; then - bindkey -M emacs "${terminfo[kdch1]}" delete-char - bindkey -M viins "${terminfo[kdch1]}" delete-char - bindkey -M vicmd "${terminfo[kdch1]}" delete-char -else - bindkey -M emacs "^[[3~" delete-char - bindkey -M viins "^[[3~" delete-char - bindkey -M vicmd "^[[3~" delete-char - - bindkey -M emacs "^[3;5~" delete-char - bindkey -M viins "^[3;5~" delete-char - bindkey -M vicmd "^[3;5~" delete-char -fi - -# [Ctrl-Delete] - delete whole forward-word -bindkey -M emacs '^[[3;5~' kill-word -bindkey -M viins '^[[3;5~' kill-word -bindkey -M vicmd '^[[3;5~' kill-word - -# [Ctrl-RightArrow] - move forward one word -bindkey -M emacs '^[[1;5C' forward-word -bindkey -M viins '^[[1;5C' forward-word -bindkey -M vicmd '^[[1;5C' forward-word -# [Ctrl-LeftArrow] - move backward one word -bindkey -M emacs '^[[1;5D' backward-word -bindkey -M viins '^[[1;5D' backward-word -bindkey -M vicmd '^[[1;5D' backward-word - - -bindkey '\ew' kill-region # [Esc-w] - Kill from the cursor to the mark -bindkey -s '\el' 'ls\n' # [Esc-l] - run command: ls -bindkey '^r' history-incremental-search-backward # [Ctrl-r] - Search backward incrementally for a specified string. The string may begin with ^ to anchor the search to the beginning of the line. -bindkey ' ' magic-space # [Space] - don't do history expansion - - -# Edit the current command line in $EDITOR -autoload -U edit-command-line -zle -N edit-command-line -bindkey '\C-x\C-e' edit-command-line - -# file rename magick -bindkey "^[m" copy-prev-shell-word - -# consider emacs keybindings: - -#bindkey -e ## emacs key bindings -# -#bindkey '^[[A' up-line-or-search -#bindkey '^[[B' down-line-or-search -#bindkey '^[^[[C' emacs-forward-word -#bindkey '^[^[[D' emacs-backward-word -# -#bindkey -s '^X^Z' '%-^M' -#bindkey '^[e' expand-cmd-path -#bindkey '^[^I' reverse-menu-complete -#bindkey '^X^N' accept-and-infer-next-history -#bindkey '^W' kill-region -#bindkey '^I' complete-word -## Fix weird sequence that rxvt produces -#bindkey -s '^[[Z' '\t' -# diff --git a/zsh/.oh-my-zsh/lib/misc.zsh b/zsh/.oh-my-zsh/lib/misc.zsh deleted file mode 100644 index a5d3af9..0000000 --- a/zsh/.oh-my-zsh/lib/misc.zsh +++ /dev/null @@ -1,35 +0,0 @@ -autoload -Uz is-at-least - -# *-magic is known buggy in some versions; disable if so -if [[ $DISABLE_MAGIC_FUNCTIONS != true ]]; then - for d in $fpath; do - if [[ -e "$d/url-quote-magic" ]]; then - if is-at-least 5.1; then - autoload -Uz bracketed-paste-magic - zle -N bracketed-paste bracketed-paste-magic - fi - autoload -Uz url-quote-magic - zle -N self-insert url-quote-magic - break - fi - done -fi - -## jobs -setopt long_list_jobs - -env_default 'PAGER' 'less' -env_default 'LESS' '-R' - -## super user alias -alias _='sudo ' - -## more intelligent acking for ubuntu users -if (( $+commands[ack-grep] )); then - alias afind='ack-grep -il' -else - alias afind='ack -il' -fi - -# recognize comments -setopt interactivecomments diff --git a/zsh/.oh-my-zsh/lib/nvm.zsh b/zsh/.oh-my-zsh/lib/nvm.zsh deleted file mode 100644 index 2fe57a8..0000000 --- a/zsh/.oh-my-zsh/lib/nvm.zsh +++ /dev/null @@ -1,6 +0,0 @@ -# get the nvm-controlled node.js version -function nvm_prompt_info() { - which nvm &>/dev/null || return - local nvm_prompt=${$(nvm current)#v} - echo "${ZSH_THEME_NVM_PROMPT_PREFIX}${nvm_prompt}${ZSH_THEME_NVM_PROMPT_SUFFIX}" -} diff --git a/zsh/.oh-my-zsh/lib/prompt_info_functions.zsh b/zsh/.oh-my-zsh/lib/prompt_info_functions.zsh deleted file mode 100644 index 48f033d..0000000 --- a/zsh/.oh-my-zsh/lib/prompt_info_functions.zsh +++ /dev/null @@ -1,43 +0,0 @@ -# *_prompt_info functions for usage in your prompt -# -# Plugin creators, please add your *_prompt_info function to the list -# of dummy implementations to help theme creators not receiving errors -# without the need of implementing conditional clauses. -# -# See also lib/bzr.zsh, lib/git.zsh and lib/nvm.zsh for -# git_prompt_info, bzr_prompt_info and nvm_prompt_info - -# Dummy implementations that return false to prevent command_not_found -# errors with themes, that implement these functions -# Real implementations will be used when the respective plugins are loaded -function chruby_prompt_info \ - rbenv_prompt_info \ - hg_prompt_info \ - pyenv_prompt_info \ - svn_prompt_info \ - vi_mode_prompt_info \ - virtualenv_prompt_info \ - jenv_prompt_info \ - tf_prompt_info \ -{ - return 1 -} - -# oh-my-zsh supports an rvm prompt by default -# get the name of the rvm ruby version -function rvm_prompt_info() { - [ -f $HOME/.rvm/bin/rvm-prompt ] || return 1 - local rvm_prompt - rvm_prompt=$($HOME/.rvm/bin/rvm-prompt ${=ZSH_THEME_RVM_PROMPT_OPTIONS} 2>/dev/null) - [[ -z "${rvm_prompt}" ]] && return 1 - echo "${ZSH_THEME_RUBY_PROMPT_PREFIX}${rvm_prompt}${ZSH_THEME_RUBY_PROMPT_SUFFIX}" -} - -ZSH_THEME_RVM_PROMPT_OPTIONS="i v g" - - -# use this to enable users to see their ruby version, no matter which -# version management system they use -function ruby_prompt_info() { - echo $(rvm_prompt_info || rbenv_prompt_info || chruby_prompt_info) -} diff --git a/zsh/.oh-my-zsh/lib/spectrum.zsh b/zsh/.oh-my-zsh/lib/spectrum.zsh deleted file mode 100644 index d5c22a8..0000000 --- a/zsh/.oh-my-zsh/lib/spectrum.zsh +++ /dev/null @@ -1,35 +0,0 @@ -# A script to make using 256 colors in zsh less painful. -# P.C. Shyamshankar -# Copied from https://github.com/sykora/etc/blob/master/zsh/functions/spectrum/ - -typeset -AHg FX FG BG - -FX=( - reset "%{%}" - bold "%{%}" no-bold "%{%}" - italic "%{%}" no-italic "%{%}" - underline "%{%}" no-underline "%{%}" - blink "%{%}" no-blink "%{%}" - reverse "%{%}" no-reverse "%{%}" -) - -for color in {000..255}; do - FG[$color]="%{[38;5;${color}m%}" - BG[$color]="%{[48;5;${color}m%}" -done - -# Show all 256 colors with color number -function spectrum_ls() { - local ZSH_SPECTRUM_TEXT=${ZSH_SPECTRUM_TEXT:-Arma virumque cano Troiae qui primus ab oris} - for code in {000..255}; do - print -P -- "$code: $FG[$code]$ZSH_SPECTRUM_TEXT%{$reset_color%}" - done -} - -# Show all 256 colors where the background is set to specific color -function spectrum_bls() { - local ZSH_SPECTRUM_TEXT=${ZSH_SPECTRUM_TEXT:-Arma virumque cano Troiae qui primus ab oris} - for code in {000..255}; do - print -P -- "$code: $BG[$code]$ZSH_SPECTRUM_TEXT%{$reset_color%}" - done -} diff --git a/zsh/.oh-my-zsh/lib/termsupport.zsh b/zsh/.oh-my-zsh/lib/termsupport.zsh deleted file mode 100644 index ef0d788..0000000 --- a/zsh/.oh-my-zsh/lib/termsupport.zsh +++ /dev/null @@ -1,137 +0,0 @@ -# Set terminal window and tab/icon title -# -# usage: title short_tab_title [long_window_title] -# -# See: http://www.faqs.org/docs/Linux-mini/Xterm-Title.html#ss3.1 -# Fully supports screen, iterm, and probably most modern xterm and rxvt -# (In screen, only short_tab_title is used) -# Limited support for Apple Terminal (Terminal can't set window and tab separately) -function title { - emulate -L zsh - setopt prompt_subst - - # Don't set the title if inside emacs, unless using vterm - [[ -n "$INSIDE_EMACS" && "$INSIDE_EMACS" != vterm ]] && return - - # if $2 is unset use $1 as default - # if it is set and empty, leave it as is - : ${2=$1} - - case "$TERM" in - cygwin|xterm*|putty*|rxvt*|konsole*|ansi|mlterm*|alacritty|st*) - print -Pn "\e]2;${2:q}\a" # set window name - print -Pn "\e]1;${1:q}\a" # set tab name - ;; - screen*|tmux*) - print -Pn "\ek${1:q}\e\\" # set screen hardstatus - ;; - *) - if [[ "$TERM_PROGRAM" == "iTerm.app" ]]; then - print -Pn "\e]2;${2:q}\a" # set window name - print -Pn "\e]1;${1:q}\a" # set tab name - else - # Try to use terminfo to set the title if the feature is available - if (( ${+terminfo[fsl]} && ${+terminfo[tsl]} )); then - print -Pn "${terminfo[tsl]}$1${terminfo[fsl]}" - fi - fi - ;; - esac -} - -ZSH_THEME_TERM_TAB_TITLE_IDLE="%15<..<%~%<<" #15 char left truncated PWD -ZSH_THEME_TERM_TITLE_IDLE="%n@%m:%~" -# Avoid duplication of directory in terminals with independent dir display -if [[ "$TERM_PROGRAM" == Apple_Terminal ]]; then - ZSH_THEME_TERM_TITLE_IDLE="%n@%m" -fi - -# Runs before showing the prompt -function omz_termsupport_precmd { - [[ "${DISABLE_AUTO_TITLE:-}" == true ]] && return - title $ZSH_THEME_TERM_TAB_TITLE_IDLE $ZSH_THEME_TERM_TITLE_IDLE -} - -# Runs before executing the command -function omz_termsupport_preexec { - [[ "${DISABLE_AUTO_TITLE:-}" == true ]] && return - - emulate -L zsh - setopt extended_glob - - # split command into array of arguments - local -a cmdargs - cmdargs=("${(z)2}") - # if running fg, extract the command from the job description - if [[ "${cmdargs[1]}" = fg ]]; then - # get the job id from the first argument passed to the fg command - local job_id jobspec="${cmdargs[2]#%}" - # logic based on jobs arguments: - # http://zsh.sourceforge.net/Doc/Release/Jobs-_0026-Signals.html#Jobs - # https://www.zsh.org/mla/users/2007/msg00704.html - case "$jobspec" in - <->) # %number argument: - # use the same passed as an argument - job_id=${jobspec} ;; - ""|%|+) # empty, %% or %+ argument: - # use the current job, which appears with a + in $jobstates: - # suspended:+:5071=suspended (tty output) - job_id=${(k)jobstates[(r)*:+:*]} ;; - -) # %- argument: - # use the previous job, which appears with a - in $jobstates: - # suspended:-:6493=suspended (signal) - job_id=${(k)jobstates[(r)*:-:*]} ;; - [?]*) # %?string argument: - # use $jobtexts to match for a job whose command *contains* - job_id=${(k)jobtexts[(r)*${(Q)jobspec}*]} ;; - *) # %string argument: - # use $jobtexts to match for a job whose command *starts with* - job_id=${(k)jobtexts[(r)${(Q)jobspec}*]} ;; - esac - - # override preexec function arguments with job command - if [[ -n "${jobtexts[$job_id]}" ]]; then - 1="${jobtexts[$job_id]}" - 2="${jobtexts[$job_id]}" - fi - fi - - # cmd name only, or if this is sudo or ssh, the next cmd - local CMD=${1[(wr)^(*=*|sudo|ssh|mosh|rake|-*)]:gs/%/%%} - local LINE="${2:gs/%/%%}" - - title '$CMD' '%100>...>$LINE%<<' -} - -autoload -Uz add-zsh-hook - -if [[ -z "$INSIDE_EMACS" || "$INSIDE_EMACS" = vterm ]]; then - add-zsh-hook precmd omz_termsupport_precmd - add-zsh-hook preexec omz_termsupport_preexec -fi - -# Keep Apple Terminal.app's current working directory updated -# Based on this answer: https://superuser.com/a/315029 -# With extra fixes to handle multibyte chars and non-UTF-8 locales - -if [[ "$TERM_PROGRAM" == "Apple_Terminal" ]] && [[ -z "$INSIDE_EMACS" ]]; then - # Emits the control sequence to notify Terminal.app of the cwd - # Identifies the directory using a file: URI scheme, including - # the host name to disambiguate local vs. remote paths. - function update_terminalapp_cwd() { - emulate -L zsh - - # Percent-encode the host and path names. - local URL_HOST URL_PATH - URL_HOST="$(omz_urlencode -P $HOST)" || return 1 - URL_PATH="$(omz_urlencode -P $PWD)" || return 1 - - # Undocumented Terminal.app-specific control sequence - printf '\e]7;%s\a' "file://$URL_HOST$URL_PATH" - } - - # Use a precmd hook instead of a chpwd hook to avoid contaminating output - add-zsh-hook precmd update_terminalapp_cwd - # Run once to get initial cwd set - update_terminalapp_cwd -fi diff --git a/zsh/.oh-my-zsh/lib/theme-and-appearance.zsh b/zsh/.oh-my-zsh/lib/theme-and-appearance.zsh deleted file mode 100644 index 00947f7..0000000 --- a/zsh/.oh-my-zsh/lib/theme-and-appearance.zsh +++ /dev/null @@ -1,59 +0,0 @@ -# ls colors -autoload -U colors && colors - -# Enable ls colors -export LSCOLORS="Gxfxcxdxbxegedabagacad" - -# TODO organise this chaotic logic - -if [[ "$DISABLE_LS_COLORS" != "true" ]]; then - # Find the option for using colors in ls, depending on the version - if [[ "$OSTYPE" == netbsd* ]]; then - # On NetBSD, test if "gls" (GNU ls) is installed (this one supports colors); - # otherwise, leave ls as is, because NetBSD's ls doesn't support -G - gls --color -d . &>/dev/null && alias ls='gls --color=tty' - elif [[ "$OSTYPE" == openbsd* ]]; then - # On OpenBSD, "gls" (ls from GNU coreutils) and "colorls" (ls from base, - # with color and multibyte support) are available from ports. "colorls" - # will be installed on purpose and can't be pulled in by installing - # coreutils, so prefer it to "gls". - gls --color -d . &>/dev/null && alias ls='gls --color=tty' - colorls -G -d . &>/dev/null && alias ls='colorls -G' - elif [[ "$OSTYPE" == (darwin|freebsd)* ]]; then - # this is a good alias, it works by default just using $LSCOLORS - ls -G . &>/dev/null && alias ls='ls -G' - - # only use coreutils ls if there is a dircolors customization present ($LS_COLORS or .dircolors file) - # otherwise, gls will use the default color scheme which is ugly af - [[ -n "$LS_COLORS" || -f "$HOME/.dircolors" ]] && gls --color -d . &>/dev/null && alias ls='gls --color=tty' - else - # For GNU ls, we use the default ls color theme. They can later be overwritten by themes. - if [[ -z "$LS_COLORS" ]]; then - (( $+commands[dircolors] )) && eval "$(dircolors -b)" - fi - - ls --color -d . &>/dev/null && alias ls='ls --color=tty' || { ls -G . &>/dev/null && alias ls='ls -G' } - - # Take advantage of $LS_COLORS for completion as well. - zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}" - fi -fi - -# enable diff color if possible. -if command diff --color /dev/null /dev/null &>/dev/null; then - alias diff='diff --color' -fi - -setopt auto_cd -setopt multios -setopt prompt_subst - -[[ -n "$WINDOW" ]] && SCREEN_NO="%B$WINDOW%b " || SCREEN_NO="" - -# git theming default: Variables for theming the git info prompt -ZSH_THEME_GIT_PROMPT_PREFIX="git:(" # Prefix at the very beginning of the prompt, before the branch name -ZSH_THEME_GIT_PROMPT_SUFFIX=")" # At the very end of the prompt -ZSH_THEME_GIT_PROMPT_DIRTY="*" # Text to display if the branch is dirty -ZSH_THEME_GIT_PROMPT_CLEAN="" # Text to display if the branch is clean -ZSH_THEME_RUBY_PROMPT_PREFIX="(" -ZSH_THEME_RUBY_PROMPT_SUFFIX=")" diff --git a/zsh/.oh-my-zsh/oh-my-zsh.sh b/zsh/.oh-my-zsh/oh-my-zsh.sh deleted file mode 100644 index b388b34..0000000 --- a/zsh/.oh-my-zsh/oh-my-zsh.sh +++ /dev/null @@ -1,179 +0,0 @@ -# Protect against non-zsh execution of Oh My Zsh (use POSIX syntax here) -[ -n "$ZSH_VERSION" ] || { - # ANSI formatting function (\033[m) - # 0: reset, 1: bold, 4: underline, 22: no bold, 24: no underline, 31: red, 33: yellow - omz_f() { - [ $# -gt 0 ] || return - IFS=";" printf "\033[%sm" $* - } - # If stdout is not a terminal ignore all formatting - [ -t 1 ] || omz_f() { :; } - - omz_ptree() { - # Get process tree of the current process - pid=$$; pids="$pid" - while [ ${pid-0} -ne 1 ] && ppid=$(ps -e -o pid,ppid | awk "\$1 == $pid { print \$2 }"); do - pids="$pids $pid"; pid=$ppid - done - - # Show process tree - case "$(uname)" in - Linux) ps -o ppid,pid,command -f -p $pids 2>/dev/null ;; - Darwin|*) ps -o ppid,pid,command -p $pids 2>/dev/null ;; - esac - - # If ps command failed, try Busybox ps - [ $? -eq 0 ] || ps -o ppid,pid,comm | awk "NR == 1 || index(\"$pids\", \$2) != 0" - } - - { - shell=$(ps -o pid,comm | awk "\$1 == $$ { print \$2 }") - printf "$(omz_f 1 31)Error:$(omz_f 22) Oh My Zsh can't be loaded from: $(omz_f 1)${shell}$(omz_f 22). " - printf "You need to run $(omz_f 1)zsh$(omz_f 22) instead.$(omz_f 0)\n" - printf "$(omz_f 33)Here's the process tree:$(omz_f 22)\n\n" - omz_ptree - printf "$(omz_f 0)\n" - } >&2 - - return 1 -} - -# If ZSH is not defined, use the current script's directory. -[[ -z "$ZSH" ]] && export ZSH="${${(%):-%x}:a:h}" - -# Set ZSH_CACHE_DIR to the path where cache files should be created -# or else we will use the default cache/ -if [[ -z "$ZSH_CACHE_DIR" ]]; then - ZSH_CACHE_DIR="$ZSH/cache" -fi - -# Make sure $ZSH_CACHE_DIR is writable, otherwise use a directory in $HOME -if [[ ! -w "$ZSH_CACHE_DIR" ]]; then - ZSH_CACHE_DIR="${XDG_CACHE_HOME:-$HOME/.cache}/oh-my-zsh" -fi - -# Create cache and completions dir and add to $fpath -mkdir -p "$ZSH_CACHE_DIR/completions" -(( ${fpath[(Ie)"$ZSH_CACHE_DIR/completions"]} )) || fpath=("$ZSH_CACHE_DIR/completions" $fpath) - -# Check for updates on initial load... -if [ "$DISABLE_AUTO_UPDATE" != "true" ]; then - source $ZSH/tools/check_for_upgrade.sh -fi - -# Initializes Oh My Zsh - -# add a function path -fpath=($ZSH/functions $ZSH/completions $fpath) - -# Load all stock functions (from $fpath files) called below. -autoload -U compaudit compinit - -# Set ZSH_CUSTOM to the path where your custom config files -# and plugins exists, or else we will use the default custom/ -if [[ -z "$ZSH_CUSTOM" ]]; then - ZSH_CUSTOM="$ZSH/custom" -fi - - -is_plugin() { - local base_dir=$1 - local name=$2 - builtin test -f $base_dir/plugins/$name/$name.plugin.zsh \ - || builtin test -f $base_dir/plugins/$name/_$name -} - -# Add all defined plugins to fpath. This must be done -# before running compinit. -for plugin ($plugins); do - if is_plugin $ZSH_CUSTOM $plugin; then - fpath=($ZSH_CUSTOM/plugins/$plugin $fpath) - elif is_plugin $ZSH $plugin; then - fpath=($ZSH/plugins/$plugin $fpath) - else - echo "[oh-my-zsh] plugin '$plugin' not found" - fi -done - -# Figure out the SHORT hostname -if [[ "$OSTYPE" = darwin* ]]; then - # macOS's $HOST changes with dhcp, etc. Use ComputerName if possible. - SHORT_HOST=$(scutil --get ComputerName 2>/dev/null) || SHORT_HOST=${HOST/.*/} -else - SHORT_HOST=${HOST/.*/} -fi - -# Save the location of the current completion dump file. -if [ -z "$ZSH_COMPDUMP" ]; then - ZSH_COMPDUMP="${ZDOTDIR:-${HOME}}/.zcompdump-${SHORT_HOST}-${ZSH_VERSION}" -fi - -# Construct zcompdump OMZ metadata -zcompdump_revision="#omz revision: $(builtin cd -q "$ZSH"; git rev-parse HEAD 2>/dev/null)" -zcompdump_fpath="#omz fpath: $fpath" - -# Delete the zcompdump file if OMZ zcompdump metadata changed -if ! command grep -q -Fx "$zcompdump_revision" "$ZSH_COMPDUMP" 2>/dev/null \ - || ! command grep -q -Fx "$zcompdump_fpath" "$ZSH_COMPDUMP" 2>/dev/null; then - command rm -f "$ZSH_COMPDUMP" - zcompdump_refresh=1 -fi - -if [[ $ZSH_DISABLE_COMPFIX != true ]]; then - source $ZSH/lib/compfix.zsh - # If completion insecurities exist, warn the user - handle_completion_insecurities - # Load only from secure directories - compinit -i -C -d "${ZSH_COMPDUMP}" -else - # If the user wants it, load from all found directories - compinit -u -C -d "${ZSH_COMPDUMP}" -fi - -# Append zcompdump metadata if missing -if (( $zcompdump_refresh )); then - # Use `tee` in case the $ZSH_COMPDUMP filename is invalid, to silence the error - # See https://github.com/ohmyzsh/ohmyzsh/commit/dd1a7269#commitcomment-39003489 - tee -a "$ZSH_COMPDUMP" &>/dev/null <device only if changed (-l means list but dont copy)' -'start-server:ensure that there is a server running' -'tcpip:restart host adb in tcpip mode' -'uninstall:remove this app package from the device' -'usb:restart the adbd daemon listing on USB' -'version:show version num' -'wait-for-device:block until device is online' -) - -local expl -local -a pkgs installed_pkgs - -_arguments \ - '-s[devices]:specify device:->specify_device' \ - '*:: :->subcmds' && return 0 - -case "$state" in - specify_device) - _values -C 'devices' ${$(adb devices -l|awk 'NR>1&& $1 \ - {sub(/ +/," ",$0); \ - gsub(":","\\:",$1); \ - for(i=1;i<=NF;i++) { - if($i ~ /model:/) { split($i,m,":") } \ - else if($i ~ /product:/) { split($i,p,":") } } \ - printf "%s[%s(%s)] ",$1, p[2], m[2]}'):-""} - return - ;; -esac - -if (( CURRENT == 1 )); then - _describe -t commands "adb subcommand" _1st_arguments - return -fi - -_files diff --git a/zsh/.oh-my-zsh/plugins/ag/README.md b/zsh/.oh-my-zsh/plugins/ag/README.md deleted file mode 100644 index 1983aaa..0000000 --- a/zsh/.oh-my-zsh/plugins/ag/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# The Silver Searcher - -This plugin provides completion support for [`ag`](https://github.com/ggreer/the_silver_searcher). - -To use it, add ag to the plugins array in your zshrc file. - -```zsh -plugins=(... ag) -``` - -## INSTALLATION NOTES - -Besides oh-my-zsh, `ag` needs to be installed by following these steps: https://github.com/ggreer/the_silver_searcher#installing. diff --git a/zsh/.oh-my-zsh/plugins/ag/_ag b/zsh/.oh-my-zsh/plugins/ag/_ag deleted file mode 100644 index 25b0c27..0000000 --- a/zsh/.oh-my-zsh/plugins/ag/_ag +++ /dev/null @@ -1,66 +0,0 @@ -#compdef ag -#autoload - -typeset -A opt_args - -# Took the liberty of not listing every option… specially aliases and -D -_ag () { - local -a _1st_arguments - _1st_arguments=( - '--ackmate:Print results in AckMate-parseable format' - {'-A','--after'}':[LINES] Print lines after match (Default: 2)' - {'-B','--before'}':[LINES] Print lines before match (Default: 2)' - '--break:Print newlines between matches in different files' - '--nobreak:Do not print newlines between matches in different files' - {'-c','--count'}':Only print the number of matches in each file' - '--color:Print color codes in results (Default: On)' - '--nocolor:Do not print color codes in results' - '--color-line-number:Color codes for line numbers (Default: 1;33)' - '--color-match:Color codes for result match numbers (Default: 30;43)' - '--color-path:Color codes for path names (Default: 1;32)' - '--column:Print column numbers in results' - {'-H','--heading'}':Print file names (On unless searching a single file)' - '--noheading:Do not print file names (On unless searching a single file)' - '--line-numbers:Print line numbers even for streams' - {'-C','--context'}':[LINES] Print lines before and after matches (Default: 2)' - '-g:[PATTERN] Print filenames matching PATTERN' - {'-l','--files-with-matches'}':Only print filenames that contain matches' - {'-L','--files-without-matches'}':Only print filenames that do not contain matches' - '--no-numbers:Do not print line numbers' - {'-o','--only-matching'}':Prints only the matching part of the lines' - '--print-long-lines:Print matches on very long lines (Default: 2k characters)' - '--passthrough:When searching a stream, print all lines even if they do not match' - '--silent:Suppress all log messages, including errors' - '--stats:Print stats (files scanned, time taken, etc.)' - '--vimgrep:Print results like vim :vimgrep /pattern/g would' - {'-0','--null'}':Separate filenames with null (for "xargs -0")' - - {'-a','--all-types'}':Search all files (does not include hidden files / .gitignore)' - '--depth:[NUM] Search up to NUM directories deep (Default: 25)' - {'-f','--follow'}':Follow symlinks' - {'-G','--file-search-regex'}':[PATTERN] Limit search to filenames matching PATTERN' - '--hidden:Search hidden files (obeys .*ignore files)' - {'-i','--ignore-case'}':Match case insensitively' - '--ignore:[PATTERN] Ignore files/directories matching PATTERN' - {'-m','--max-count'}':[NUM] Skip the rest of a file after NUM matches (Default: 10k)' - {'-p','--path-to-agignore'}':[PATH] Use .agignore file at PATH' - {'-Q','--literal'}':Do not parse PATTERN as a regular expression' - {'-s','--case-sensitive'}':Match case' - {'-S','--smart-case'}':Insensitive match unless PATTERN has uppercase (Default: On)' - '--search-binary:Search binary files for matches' - {'-t','--all-text'}':Search all text files (Hidden files not included)' - {'-u','--unrestricted'}':Search all files (ignore .agignore and _all_)' - {'-U','--skip-vcs-ignores'}':Ignore VCS files (stil obey .agignore)' - {'-v','--invert-match'}':Invert match' - {'-w','--word-regexp'}':Only match whole words' - {'-z','--search-zip'}':Search contents of compressed (e.g., gzip) files' - - '--list-file-types:list of supported file types' - ) - - if [[ $words[-1] =~ "^-" ]]; then - _describe -t commands "ag options" _1st_arguments && ret=0 - else - _files && ret=0 - fi -} diff --git a/zsh/.oh-my-zsh/plugins/alias-finder/README.md b/zsh/.oh-my-zsh/plugins/alias-finder/README.md deleted file mode 100644 index 409f4b6..0000000 --- a/zsh/.oh-my-zsh/plugins/alias-finder/README.md +++ /dev/null @@ -1,46 +0,0 @@ -# alias-finder plugin - -This plugin searches the defined aliases and outputs any that match the command inputted. This makes learning new aliases easier. - -To use it, add `alias-finder` to the `plugins` array of your zshrc file: -``` -plugins=(... alias-finder) -``` - -## Usage -To see if there is an alias defined for the command, pass it as an argument to `alias-finder`. This can also run automatically before each command you input - add `ZSH_ALIAS_FINDER_AUTOMATIC=true` to your zshrc if you want this. - -## Options - -- Use `--longer` or `-l` to allow the aliases to be longer than the input (match aliases if they contain the input). -- Use `--exact` or `-e` to avoid matching aliases that are shorter than the input. - -## Examples -``` -$ alias-finder "git pull" -gl='git pull' -g=git -``` -``` -$ alias-finder "web_search google oh my zsh" -google='web_search google' -``` -``` -$ alias-finder "git commit -v" -gc="git commit -v" -g=git -``` -``` -$ alias-finder -e "git commit -v" -gc='git commit -v' -``` -``` -$ alias-finder -l "git commit -v" -gc='git commit -v' -'gc!'='git commit -v --amend' -gca='git commit -v -a' -'gca!'='git commit -v -a --amend' -'gcan!'='git commit -v -a --no-edit --amend' -'gcans!'='git commit -v -a -s --no-edit --amend' -'gcn!'='git commit -v --no-edit --amend' -``` diff --git a/zsh/.oh-my-zsh/plugins/alias-finder/alias-finder.plugin.zsh b/zsh/.oh-my-zsh/plugins/alias-finder/alias-finder.plugin.zsh deleted file mode 100644 index caee9b5..0000000 --- a/zsh/.oh-my-zsh/plugins/alias-finder/alias-finder.plugin.zsh +++ /dev/null @@ -1,47 +0,0 @@ -alias-finder() { - local cmd="" exact="" longer="" wordStart="" wordEnd="" multiWordEnd="" - for i in $@; do - case $i in - -e|--exact) exact=true;; - -l|--longer) longer=true;; - *) - if [[ -z $cmd ]]; then - cmd=$i - else - cmd="$cmd $i" - fi - ;; - esac - done - cmd=$(sed 's/[].\|$(){}?+*^[]/\\&/g' <<< $cmd) # adds escaping for grep - if (( $(wc -l <<< $cmd) == 1 )); then - while [[ $cmd != "" ]]; do - if [[ $longer = true ]]; then - wordStart="'{0,1}" - else - wordEnd="$" - multiWordEnd="'$" - fi - if [[ $cmd == *" "* ]]; then - local finder="'$cmd$multiWordEnd" - else - local finder=$wordStart$cmd$wordEnd - fi - alias | grep -E "=$finder" - if [[ $exact = true || $longer = true ]]; then - break - else - cmd=$(sed -E 's/ {0,1}[^ ]*$//' <<< $cmd) # removes last word - fi - done - fi -} - -preexec_alias-finder() { - if [[ $ZSH_ALIAS_FINDER_AUTOMATIC = true ]]; then - alias-finder $1 - fi -} - -autoload -U add-zsh-hook -add-zsh-hook preexec preexec_alias-finder diff --git a/zsh/.oh-my-zsh/plugins/aliases/README.md b/zsh/.oh-my-zsh/plugins/aliases/README.md deleted file mode 100644 index 481c1bd..0000000 --- a/zsh/.oh-my-zsh/plugins/aliases/README.md +++ /dev/null @@ -1,21 +0,0 @@ -## Aliases Cheatsheet - -**Maintainer:** [@hqingyi](https://github.com/hqingyi) - -With lots of 3rd-party amazing aliases installed, this plugin helps list the shortcuts -that are currently available based on the plugins you have enabled. - -Enable this plugin by adding it to your `plugins` definition in `~/.zshrc`. - - ``` - plugins=(aliases) - ``` - -Requirements: Python needs to be installed. - -### Usage - -``` - acs: group all alias - acs $keywordquickly filter alias & highlight -``` diff --git a/zsh/.oh-my-zsh/plugins/aliases/aliases.plugin.zsh b/zsh/.oh-my-zsh/plugins/aliases/aliases.plugin.zsh deleted file mode 100644 index 28d8fba..0000000 --- a/zsh/.oh-my-zsh/plugins/aliases/aliases.plugin.zsh +++ /dev/null @@ -1,10 +0,0 @@ -# with lots of 3rd-party amazing aliases installed, just need something to explore it quickly. -# -# - acs: alias cheatsheet -# group alias by command, pass addition argv to grep. -ALIASES_PLUGIN_ROOT=$(cd `dirname $0` && pwd) -function acs(){ - which python >>/dev/null - [[ $? -eq 1 ]] && echo "[error]no python executable detected!" && return - alias | python $ALIASES_PLUGIN_ROOT/cheatsheet.py $@ -} diff --git a/zsh/.oh-my-zsh/plugins/aliases/cheatsheet.py b/zsh/.oh-my-zsh/plugins/aliases/cheatsheet.py deleted file mode 100644 index d6d507b..0000000 --- a/zsh/.oh-my-zsh/plugins/aliases/cheatsheet.py +++ /dev/null @@ -1,55 +0,0 @@ -#!/usr/bin/env python -import sys -import itertools -import termcolor - -def parse(line): - left = line[0:line.find('=')].strip() - right = line[line.find('=')+1:].strip('\'"\n ') - try: - cmd = next(part for part in right.split() if len([char for char in '=<>' if char in part])==0) - except StopIteration: - cmd = right - return (left, right, cmd) - -def cheatsheet(lines): - exps = [ parse(line) for line in lines ] - cheatsheet = {'_default': []} - for key, group in itertools.groupby(exps, lambda exp:exp[2]): - group_list = [ item for item in group ] - if len(group_list)==1: - target_aliases = cheatsheet['_default'] - else: - if key not in cheatsheet: - cheatsheet[key] = [] - target_aliases = cheatsheet[key] - target_aliases.extend(group_list) - return cheatsheet - -def pretty_print_group(key, aliases, hightlight=None): - if len(aliases) == 0: - return - group_hl_formatter = lambda g, hl: termcolor.colored(hl, 'yellow').join([termcolor.colored(part, 'red') for part in ('[%s]' % g).split(hl)]) - alias_hl_formatter = lambda alias, hl: termcolor.colored(hl, 'yellow').join([termcolor.colored(part, 'green') for part in ('\t%s = %s' % alias[0:2]).split(hl)]) - group_formatter = lambda g: termcolor.colored('[%s]' % g, 'red') - alias_formatter = lambda alias: termcolor.colored('\t%s = %s' % alias[0:2], 'green') - if hightlight and len(hightlight)>0: - print (group_hl_formatter(key, hightlight)) - print ('\n'.join([alias_hl_formatter(alias, hightlight) for alias in aliases])) - else: - print (group_formatter(key)) - print ('\n'.join([alias_formatter(alias) for alias in aliases])) - print ('') - -def pretty_print(cheatsheet, wfilter): - sorted_key = sorted(cheatsheet.keys()) - for key in sorted_key: - aliases = cheatsheet.get(key) - if not wfilter: - pretty_print_group(key, aliases, wfilter) - else: - pretty_print_group(key, [ alias for alias in aliases if alias[0].find(wfilter)>-1 or alias[1].find(wfilter)>-1], wfilter) - -if __name__ == '__main__': - lines = sys.stdin.readlines() - pretty_print(cheatsheet(lines), sys.argv[1] if len(sys.argv)>1 else None) diff --git a/zsh/.oh-my-zsh/plugins/aliases/termcolor.py b/zsh/.oh-my-zsh/plugins/aliases/termcolor.py deleted file mode 100644 index f11b824..0000000 --- a/zsh/.oh-my-zsh/plugins/aliases/termcolor.py +++ /dev/null @@ -1,168 +0,0 @@ -# coding: utf-8 -# Copyright (c) 2008-2011 Volvox Development Team -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. -# -# Author: Konstantin Lepa - -"""ANSII Color formatting for output in terminal.""" - -from __future__ import print_function -import os - - -__ALL__ = [ 'colored', 'cprint' ] - -VERSION = (1, 1, 0) - -ATTRIBUTES = dict( - list(zip([ - 'bold', - 'dark', - '', - 'underline', - 'blink', - '', - 'reverse', - 'concealed' - ], - list(range(1, 9)) - )) - ) -del ATTRIBUTES[''] - - -HIGHLIGHTS = dict( - list(zip([ - 'on_grey', - 'on_red', - 'on_green', - 'on_yellow', - 'on_blue', - 'on_magenta', - 'on_cyan', - 'on_white' - ], - list(range(40, 48)) - )) - ) - - -COLORS = dict( - list(zip([ - 'grey', - 'red', - 'green', - 'yellow', - 'blue', - 'magenta', - 'cyan', - 'white', - ], - list(range(30, 38)) - )) - ) - - -RESET = '\033[0m' - - -def colored(text, color=None, on_color=None, attrs=None): - """Colorize text. - - Available text colors: - red, green, yellow, blue, magenta, cyan, white. - - Available text highlights: - on_red, on_green, on_yellow, on_blue, on_magenta, on_cyan, on_white. - - Available attributes: - bold, dark, underline, blink, reverse, concealed. - - Example: - colored('Hello, World!', 'red', 'on_grey', ['blue', 'blink']) - colored('Hello, World!', 'green') - """ - if os.getenv('ANSI_COLORS_DISABLED') is None: - fmt_str = '\033[%dm%s' - if color is not None: - text = fmt_str % (COLORS[color], text) - - if on_color is not None: - text = fmt_str % (HIGHLIGHTS[on_color], text) - - if attrs is not None: - for attr in attrs: - text = fmt_str % (ATTRIBUTES[attr], text) - - text += RESET - return text - - -def cprint(text, color=None, on_color=None, attrs=None, **kwargs): - """Print colorize text. - - It accepts arguments of print function. - """ - - print((colored(text, color, on_color, attrs)), **kwargs) - - -if __name__ == '__main__': - print('Current terminal type: %s' % os.getenv('TERM')) - print('Test basic colors:') - cprint('Grey color', 'grey') - cprint('Red color', 'red') - cprint('Green color', 'green') - cprint('Yellow color', 'yellow') - cprint('Blue color', 'blue') - cprint('Magenta color', 'magenta') - cprint('Cyan color', 'cyan') - cprint('White color', 'white') - print(('-' * 78)) - - print('Test highlights:') - cprint('On grey color', on_color='on_grey') - cprint('On red color', on_color='on_red') - cprint('On green color', on_color='on_green') - cprint('On yellow color', on_color='on_yellow') - cprint('On blue color', on_color='on_blue') - cprint('On magenta color', on_color='on_magenta') - cprint('On cyan color', on_color='on_cyan') - cprint('On white color', color='grey', on_color='on_white') - print('-' * 78) - - print('Test attributes:') - cprint('Bold grey color', 'grey', attrs=['bold']) - cprint('Dark red color', 'red', attrs=['dark']) - cprint('Underline green color', 'green', attrs=['underline']) - cprint('Blink yellow color', 'yellow', attrs=['blink']) - cprint('Reversed blue color', 'blue', attrs=['reverse']) - cprint('Concealed Magenta color', 'magenta', attrs=['concealed']) - cprint('Bold underline reverse cyan color', 'cyan', - attrs=['bold', 'underline', 'reverse']) - cprint('Dark blink concealed white color', 'white', - attrs=['dark', 'blink', 'concealed']) - print(('-' * 78)) - - print('Test mixing:') - cprint('Underline red on grey color', 'red', 'on_grey', - ['underline']) - cprint('Reversed green on red color', 'green', 'on_red', ['reverse']) - diff --git a/zsh/.oh-my-zsh/plugins/ansible/README.md b/zsh/.oh-my-zsh/plugins/ansible/README.md deleted file mode 100644 index e0e6a19..0000000 --- a/zsh/.oh-my-zsh/plugins/ansible/README.md +++ /dev/null @@ -1,34 +0,0 @@ -# ansible plugin - -## Introduction - -The `ansible plugin` adds several aliases for useful [ansible](https://docs.ansible.com/ansible/latest/index.html) commands and [aliases](#aliases). - -To use it, add `ansible` to the plugins array of your zshrc file: - -``` -plugins=(... ansible) -``` - -## Aliases - -| Command | Description | -|:-------------------------------------------|:--------------------------------------------------------------------| -| `ansible-version` / `aver` | Show the version on ansible installed in this host | -| `ansible-role-init ` / `arinit` | Creates the Ansible Role as per Ansible Galaxy standard | -| `a` | command `ansible` | -| `aconf` | command `ansible-config` | -| `acon` | command `ansible-console` | -| `ainv` | command `ansible-inventory` | -| `aplaybook` | command `ansible-playbook` | -| `ainv` | command `ansible-inventory` | -| `adoc` | command `ansible-doc` | -| `agal` | command `ansible-galaxy` | -| `apull` | command `ansible-pull` | -| `aval` | command `ansible-vault` | - -## Maintainer - -### [Deepankumar](https://github.com/deepan10) - -[https://github.com/deepan10/oh-my-zsh/tree/features/ansible-plugin](https://github.com/deepan10/oh-my-zsh/tree/features/ansible-plugin) diff --git a/zsh/.oh-my-zsh/plugins/ansible/ansible.plugin.zsh b/zsh/.oh-my-zsh/plugins/ansible/ansible.plugin.zsh deleted file mode 100644 index 75393b7..0000000 --- a/zsh/.oh-my-zsh/plugins/ansible/ansible.plugin.zsh +++ /dev/null @@ -1,28 +0,0 @@ -# Functions -function ansible-version(){ - ansible --version -} - -function ansible-role-init(){ - if ! [ -z $1 ] ; then - echo "Ansible Role : $1 Creating...." - ansible-galaxy init $1 - tree $1 - else - echo "Usage : ansible-role-init " - echo "Example : ansible-role-init role1" - fi -} - -# Alias -alias a='ansible ' -alias aconf='ansible-config ' -alias acon='ansible-console ' -alias aver='ansible-version' -alias arinit='ansible-role-init' -alias aplaybook='ansible-playbook ' -alias ainv='ansible-inventory ' -alias adoc='ansible-doc ' -alias agal='ansible-galaxy ' -alias apull='ansible-pull ' -alias aval='ansible-vault' diff --git a/zsh/.oh-my-zsh/plugins/ant/README.md b/zsh/.oh-my-zsh/plugins/ant/README.md deleted file mode 100644 index 5f88984..0000000 --- a/zsh/.oh-my-zsh/plugins/ant/README.md +++ /dev/null @@ -1,12 +0,0 @@ -# Ant - -This plugin provides completion for [Ant](https://ant.apache.org/). - -To use it add ant to the plugins array in your zshrc file. - -```bash -plugins=(... ant) -``` - -It caches ant targets in a file named `.ant_targets`, you might want to add that to -your `.gitignore` file. diff --git a/zsh/.oh-my-zsh/plugins/ant/ant.plugin.zsh b/zsh/.oh-my-zsh/plugins/ant/ant.plugin.zsh deleted file mode 100644 index 0b738c9..0000000 --- a/zsh/.oh-my-zsh/plugins/ant/ant.plugin.zsh +++ /dev/null @@ -1,16 +0,0 @@ -_ant_does_target_list_need_generating () { - [ ! -f .ant_targets ] && return 0; - [ build.xml -nt .ant_targets ] && return 0; - return 1; -} - -_ant () { - if [ -f build.xml ]; then - if _ant_does_target_list_need_generating; then - ant -p | awk -F " " 'NR > 5 { print lastTarget }{lastTarget = $1}' > .ant_targets - fi - compadd -- `cat .ant_targets` - fi -} - -compdef _ant ant diff --git a/zsh/.oh-my-zsh/plugins/apache2-macports/README.md b/zsh/.oh-my-zsh/plugins/apache2-macports/README.md deleted file mode 100644 index dbf2e89..0000000 --- a/zsh/.oh-my-zsh/plugins/apache2-macports/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# apache2-macports plugin - -Enables aliases to control a local Apache2 installed via [MacPorts](https://www.macports.org/). - -To use it, add `apache2-macports` to the plugins array in your zshrc file: - -```zsh -plugins=(... apache2-macports) -``` - -## Aliases - -| Alias | Function | Description | -|----------------|-----------------------------------------|-----------------------| -| apache2restart | `sudo /path/to/apache2.wrapper restart` | Restart apache daemon | -| apache2start | `sudo /path/to/apache2.wrapper start` | Start apache daemon | -| apache2stop | `sudo /path/to/apache2.wrapper stop` | Stop apache daemon | - -## Contributors - -- Alexander Rinass (alex@rinass.net) diff --git a/zsh/.oh-my-zsh/plugins/apache2-macports/apache2-macports.plugin.zsh b/zsh/.oh-my-zsh/plugins/apache2-macports/apache2-macports.plugin.zsh deleted file mode 100644 index 1caa4cf..0000000 --- a/zsh/.oh-my-zsh/plugins/apache2-macports/apache2-macports.plugin.zsh +++ /dev/null @@ -1,6 +0,0 @@ -# commands to control local apache2 server installation -# paths are for osx installation via macports - -alias apache2start='sudo /opt/local/etc/LaunchDaemons/org.macports.apache2/apache2.wrapper start' -alias apache2stop='sudo /opt/local/etc/LaunchDaemons/org.macports.apache2/apache2.wrapper stop' -alias apache2restart='sudo /opt/local/etc/LaunchDaemons/org.macports.apache2/apache2.wrapper restart' diff --git a/zsh/.oh-my-zsh/plugins/arcanist/README.md b/zsh/.oh-my-zsh/plugins/arcanist/README.md deleted file mode 100644 index f49e434..0000000 --- a/zsh/.oh-my-zsh/plugins/arcanist/README.md +++ /dev/null @@ -1,41 +0,0 @@ -## arcanist - -This plugin adds many useful aliases for [arcanist](https://github.com/phacility/arcanist). - -To use it, add `arcanist` to the plugins array of your zshrc file: - -```zsh -plugins=(... arcanist) -``` - -## Aliases - -| Alias | Command | -| ------- | ---------------------------------- | -| ara | `arc amend` | -| arb | `arc branch` | -| arco | `arc cover` | -| arci | `arc commit` | -| ard | `arc diff` | -| ardc | `arc diff --create` | -| ardp | `arc diff --preview` | -| ardnu | `arc diff --nounit` | -| ardnupc | `arc diff --nounit --plan-changes` | -| ardpc | `arc diff --plan-changes` | -| are | `arc export` | -| arh | `arc help` | -| arl | `arc land` | -| arli | `arc lint` | -| arls | `arc list` | -| arpa | `arc patch` | - -## Functions - -The following functions make copy pasting revision ids from the URL bar of your browser -easier, as they allow for copy pasting the whole URL. For example: `ardu` accepts -both `https://arcanist-url.com/` as well as ``. - -| Function | Command | -| ------------------------- | --------------------------------- | -| ardu [URL or revision_id] | `arc diff --update` [revision_id] | -| arpa [URL or revision_id] | `arc patch` [revision_id] | diff --git a/zsh/.oh-my-zsh/plugins/arcanist/arcanist.plugin.zsh b/zsh/.oh-my-zsh/plugins/arcanist/arcanist.plugin.zsh deleted file mode 100644 index 88e6713..0000000 --- a/zsh/.oh-my-zsh/plugins/arcanist/arcanist.plugin.zsh +++ /dev/null @@ -1,37 +0,0 @@ -# -# Aliases -# (sorted alphabetically) -# - -alias ara='arc amend' -alias arb='arc branch' -alias arco='arc cover' -alias arci='arc commit' - -alias ard='arc diff' -alias ardc='arc diff --create' -alias ardnu='arc diff --nounit' -alias ardnupc='arc diff --nounit --plan-changes' -alias ardpc='arc diff --plan-changes' -alias ardp='arc diff --preview' # creates a new diff in the phab interface - -alias are='arc export' -alias arh='arc help' -alias arl='arc land' -alias arli='arc lint' -alias arls='arc list' - -# -# Functions -# (sorted alphabetically) -# - -ardu() { - # Both `ardu https://arcanist-url.com/`, and `ardu ` work. - arc diff --update "${1:t}" -} - -arpa() { - # Both `arpa https://arcanist-url.com/`, and `arpa ` work. - arc patch "${1:t}" -} diff --git a/zsh/.oh-my-zsh/plugins/archlinux/README.md b/zsh/.oh-my-zsh/plugins/archlinux/README.md deleted file mode 100644 index c8ec1de..0000000 --- a/zsh/.oh-my-zsh/plugins/archlinux/README.md +++ /dev/null @@ -1,172 +0,0 @@ -# Arch Linux plugin - -This plugin adds some aliases and functions to work with Arch Linux. - -To use it, add `archlinux` to the plugins array in your zshrc file: - -```zsh -plugins=(... archlinux) -``` - -## Features - -### Pacman - -| Alias | Command | Description | -|--------------|----------------------------------------|------------------------------------------------------------------| -| pacin | `sudo pacman -S` | Install packages from the repositories | -| pacins | `sudo pacman -U` | Install a package from a local file | -| pacinsd | `sudo pacman -S --asdeps` | Install packages as dependencies of another package | -| pacloc | `pacman -Qi` | Display information about a package in the local database | -| paclocs | `pacman -Qs` | Search for packages in the local database | -| paclsorphans | `sudo pacman -Qdt` | List all orphaned packages | -| pacmir | `sudo pacman -Syy` | Force refresh of all package lists after updating mirrorlist | -| pacre | `sudo pacman -R` | Remove packages, keeping its settings and dependencies | -| pacrem | `sudo pacman -Rns` | Remove packages, including its settings and dependencies | -| pacrep | `pacman -Si` | Display information about a package in the repositories | -| pacreps | `pacman -Ss` | Search for packages in the repositories | -| pacrmorphans | `sudo pacman -Rs $(pacman -Qtdq)` | Delete all orphaned packages | -| pacupd | `sudo pacman -Sy` | Update and refresh local package, ABS and AUR databases | -| pacupg | `sudo pacman -Syu` | Sync with repositories before upgrading packages | -| pacfileupg | `sudo pacman -Fy` | Download fresh package databases from the server | -| pacfiles | `pacman -F` | Search package file names for matching strings | -| pacls | `pacman -Ql` | List files in a package | -| pacown | `pacman -Qo` | Show which package owns a file | -| upgrade[¹](#f1) | `sudo pacman -Syu` | Sync with repositories before upgrading packages | - -| Function | Description | -|----------------|-----------------------------------------------------------| -| pacdisowned | List all disowned files in your system | -| paclist | List all explicitly installed packages with a description | -| pacmanallkeys | Get all keys for developers and trusted users | -| pacmansignkeys | Locally trust all keys passed as parameters | -| pacweb | Open the website of an ArchLinux package | - -Note: paclist used to print packages with a description which are (1) explicitly installed -and (2) available for upgrade. Due to flawed scripting, it also printed all packages if no -upgrades were available. Use `pacman -Que` instead. - -### AUR helpers - -#### Aura - -| Alias | Command | Description | -|---------|-------------------------------------------------|-------------------------------------------------------------------------| -| auin | `sudo aura -S` | Install packages from the repositories | -| aurin | `sudo aura -A` | Install packages from the repositories | -| auins | `sudo aura -U` | Install a package from a local file | -| auinsd | `sudo aura -S --asdeps` | Install packages as dependencies of another package (repositories only) | -| aurinsd | `sudo aura -A --asdeps` | Install packages as dependencies of another package (AUR only) | -| auloc | `aura -Qi` | Display information about a package in the local database | -| aulocs | `aura -Qs` | Search for packages in the local database | -| auls | `aura -Qql` | List all files owned by a given package | -| aulst | `aura -Qe` | List installed packages including from AUR (tagged as "local") | -| aumir | `sudo aura -Syy` | Force refresh of all package lists after updating mirrorlist | -| aurph | `sudo aura -Oj` | Remove orphans using aura | -| auown | `aura -Qqo` | Search for packages that own the specified file(s) | -| aure | `sudo aura -R` | Remove packages, keeping its settings and dependencies | -| aurem | `sudo aura -Rns` | Remove packages, including its settings and unneeded dependencies | -| aurep | `aura -Si` | Display information about a package in the repositories | -| aurrep | `aura -Ai` | Display information about a package from AUR | -| aureps | `aura -As --both` | Search for packages in the repositories and AUR | -| auras | `aura -As --both` | Same as above | -| auupd | `sudo aura -Sy` | Update and refresh local package, ABS and AUR databases | -| auupg | `sudo sh -c "aura -Syu && aura -Au"` | Sync with repositories before upgrading all packages (from AUR too) | -| ausu | `sudo sh -c "aura -Syu --no-confirm && aura -Au --no-confirm"` | Same as `auupg`, but without confirmation | -| upgrade[¹](#f1) | `sudo aura -Syu` | Sync with repositories before upgrading packages | - -| Function | Description | -|-----------------|---------------------------------------------------------------------| -| auownloc _file_ | Display information about a package that owns the specified file(s) | -| auownls _file_ | List all files owned by a package that owns the specified file(s) | - -#### Pacaur - -| Alias | Command | Description | -|---------|-----------------------------------|---------------------------------------------------------------------| -| pain | `pacaur -S` | Install packages from the repositories | -| pains | `pacaur -U` | Install a package from a local file | -| painsd | `pacaur -S --asdeps` | Install packages as dependencies of another package | -| paloc | `pacaur -Qi` | Display information about a package in the local database | -| palocs | `pacaur -Qs` | Search for packages in the local database | -| palst | `pacaur -Qe` | List installed packages including from AUR (tagged as "local") | -| pamir | `pacaur -Syy` | Force refresh of all package lists after updating mirrorlist | -| paorph | `pacaur -Qtd` | Remove orphans using pacaur | -| pare | `pacaur -R` | Remove packages, keeping its settings and dependencies | -| parem | `pacaur -Rns` | Remove packages, including its settings and unneeded dependencies | -| parep | `pacaur -Si` | Display information about a package in the repositories | -| pareps | `pacaur -Ss` | Search for packages in the repositories | -| paupd | `pacaur -Sy` | Update and refresh local package, ABS and AUR databases | -| paupg | `pacaur -Syua` | Sync with repositories before upgrading all packages (from AUR too) | -| pasu | `pacaur -Syua --no-confirm` | Same as `paupg`, but without confirmation | -| upgrade[¹](#f1) | `pacaur -Syu` | Sync with repositories before upgrading packages | - -#### Trizen - -| Alias | Command | Description | -|---------|-----------------------------------|---------------------------------------------------------------------| -| trconf | `trizen -C` | Fix all configuration files with vimdiff | -| trin | `trizen -S` | Install packages from the repositories | -| trins | `trizen -U` | Install a package from a local file | -| trinsd | `trizen -S --asdeps` | Install packages as dependencies of another package | -| trloc | `trizen -Qi` | Display information about a package in the local database | -| trlocs | `trizen -Qs` | Search for packages in the local database | -| trlst | `trizen -Qe` | List installed packages including from AUR (tagged as "local") | -| trmir | `trizen -Syy` | Force refresh of all package lists after updating mirrorlist | -| trorph | `trizen -Qtd` | Remove orphans using yaourt | -| trre | `trizen -R` | Remove packages, keeping its settings and dependencies | -| trrem | `trizen -Rns` | Remove packages, including its settings and unneeded dependencies | -| trrep | `trizen -Si` | Display information about a package in the repositories | -| trreps | `trizen -Ss` | Search for packages in the repositories | -| trupd | `trizen -Sy` | Update and refresh local package, ABS and AUR databases | -| trupg | `trizen -Syua` | Sync with repositories before upgrading all packages (from AUR too) | -| trsu | `trizen -Syua --no-confirm` | Same as `trupg`, but without confirmation | -| upgrade[¹](#f1) | `trizen -Syu` | Sync with repositories before upgrading packages | - -#### Yay - -| Alias | Command | Description | -|---------|--------------------------------|-------------------------------------------------------------------| -| yaconf | `yay -Pg` | Print current configuration | -| yain | `yay -S` | Install packages from the repositories | -| yains | `yay -U` | Install a package from a local file | -| yainsd | `yay -S --asdeps` | Install packages as dependencies of another package | -| yaloc | `yay -Qi` | Display information about a package in the local database | -| yalocs | `yay -Qs` | Search for packages in the local database | -| yalst | `yay -Qe` | List installed packages including from AUR (tagged as "local") | -| yamir | `yay -Syy` | Force refresh of all package lists after updating mirrorlist | -| yaorph | `yay -Qtd` | Remove orphans using yay | -| yare | `yay -R` | Remove packages, keeping its settings and dependencies | -| yarem | `yay -Rns` | Remove packages, including its settings and unneeded dependencies | -| yarep | `yay -Si` | Display information about a package in the repositories | -| yareps | `yay -Ss` | Search for packages in the repositories | -| yaupd | `yay -Sy` | Update and refresh local package, ABS and AUR databases | -| yaupg | `yay -Syu` | Sync with repositories before upgrading packages | -| yasu | `yay -Syu --no-confirm` | Same as `yaupg`, but without confirmation | -| upgrade[¹](#f1) | `yay -Syu` | Sync with repositories before upgrading packages | - ---- - -¹ -The `upgrade` alias is set for all package managers. Its value will depend on -whether the package manager is installed, checked in the following order: - -1. `yay` -2. `trizen` -3. `pacaur` -4. `aura` -5. `pacman` - -## Contributors - -- Benjamin Boudreau - dreurmail@gmail.com -- Celso Miranda - contacto@celsomiranda.net -- ratijas (ivan tkachenko) - me@ratijas.tk -- Juraj Fiala - doctorjellyface@riseup.net -- KhasMek - Boushh@gmail.com -- Majora320 (Moses Miller) - Majora320@gmail.com -- Martin Putniorz - mputniorz@gmail.com -- MatthR3D - matthr3d@gmail.com -- ornicar - thibault.duplessis@gmail.com -- Ybalrid (Arthur Brainville) - ybalrid@ybalrid.info -- Jeff M. Hubbard - jeffmhubbard@gmail.com diff --git a/zsh/.oh-my-zsh/plugins/archlinux/archlinux.plugin.zsh b/zsh/.oh-my-zsh/plugins/archlinux/archlinux.plugin.zsh deleted file mode 100644 index 0c5782d..0000000 --- a/zsh/.oh-my-zsh/plugins/archlinux/archlinux.plugin.zsh +++ /dev/null @@ -1,174 +0,0 @@ -####################################### -# Pacman # -####################################### - -# Pacman - https://wiki.archlinux.org/index.php/Pacman_Tips -alias pacupg='sudo pacman -Syu' -alias pacin='sudo pacman -S' -alias pacins='sudo pacman -U' -alias pacre='sudo pacman -R' -alias pacrem='sudo pacman -Rns' -alias pacrep='pacman -Si' -alias pacreps='pacman -Ss' -alias pacloc='pacman -Qi' -alias paclocs='pacman -Qs' -alias pacinsd='sudo pacman -S --asdeps' -alias pacmir='sudo pacman -Syy' -alias paclsorphans='sudo pacman -Qdt' -alias pacrmorphans='sudo pacman -Rs $(pacman -Qtdq)' -alias pacfileupg='sudo pacman -Fy' -alias pacfiles='pacman -F' -alias pacls='pacman -Ql' -alias pacown='pacman -Qo' -alias pacupd="sudo pacman -Sy" -alias upgrade='sudo pacman -Syu' - -function paclist() { - # Based on https://bbs.archlinux.org/viewtopic.php?id=93683 - pacman -Qqe | \ - xargs -I '{}' \ - expac "${bold_color}% 20n ${fg_no_bold[white]}%d${reset_color}" '{}' -} - -function pacdisowned() { - local tmp db fs - tmp=${TMPDIR-/tmp}/pacman-disowned-$UID-$$ - db=$tmp/db - fs=$tmp/fs - - mkdir "$tmp" - trap 'rm -rf "$tmp"' EXIT - - pacman -Qlq | sort -u > "$db" - - find /bin /etc /lib /sbin /usr ! -name lost+found \ - \( -type d -printf '%p/\n' -o -print \) | sort > "$fs" - - comm -23 "$fs" "$db" -} - -alias pacmanallkeys='sudo pacman-key --refresh-keys' - -function pacmansignkeys() { - local key - for key in $@; do - sudo pacman-key --recv-keys $key - sudo pacman-key --lsign-key $key - printf 'trust\n3\n' | sudo gpg --homedir /etc/pacman.d/gnupg \ - --no-permission-warning --command-fd 0 --edit-key $key - done -} - -if (( $+commands[xdg-open] )); then - function pacweb() { - if [[ $# = 0 || "$1" =~ '--help|-h' ]]; then - local underline_color="\e[${color[underline]}m" - echo "$0 - open the website of an ArchLinux package" - echo - echo "Usage:" - echo " $bold_color$0$reset_color ${underline_color}target${reset_color}" - return 1 - fi - - local pkg="$1" - local infos="$(LANG=C pacman -Si "$pkg")" - if [[ -z "$infos" ]]; then - return - fi - local repo="$(grep -m 1 '^Repo' <<< "$infos" | grep -oP '[^ ]+$')" - local arch="$(grep -m 1 '^Arch' <<< "$infos" | grep -oP '[^ ]+$')" - xdg-open "https://www.archlinux.org/packages/$repo/$arch/$pkg/" &>/dev/null - } -fi - -####################################### -# AUR helpers # -####################################### - -if (( $+commands[aura] )); then - alias auin='sudo aura -S' - alias aurin='sudo aura -A' - alias auins='sudo aura -U' - alias auinsd='sudo aura -S --asdeps' - alias aurinsd='sudo aura -A --asdeps' - alias auloc='aura -Qi' - alias aulocs='aura -Qs' - alias aulst='aura -Qe' - alias aumir='sudo aura -Syy' - alias aurph='sudo aura -Oj' - alias aure='sudo aura -R' - alias aurem='sudo aura -Rns' - alias aurep='aura -Si' - alias aurrep='aura -Ai' - alias aureps='aura -As --both' - alias auras='aura -As --both' - alias auupd="sudo aura -Sy" - alias auupg='sudo sh -c "aura -Syu && aura -Au"' - alias ausu='sudo sh -c "aura -Syu --no-confirm && aura -Au --no-confirm"' - alias upgrade='sudo aura -Syu' - - # extra bonus specially for aura - alias auown="aura -Qqo" - alias auls="aura -Qql" - function auownloc() { aura -Qi $(aura -Qqo $@); } - function auownls () { aura -Qql $(aura -Qqo $@); } -fi - -if (( $+commands[pacaur] )); then - alias paupg='pacaur -Syu' - alias pasu='pacaur -Syu --noconfirm' - alias pain='pacaur -S' - alias pains='pacaur -U' - alias pare='pacaur -R' - alias parem='pacaur -Rns' - alias parep='pacaur -Si' - alias pareps='pacaur -Ss' - alias paloc='pacaur -Qi' - alias palocs='pacaur -Qs' - alias palst='pacaur -Qe' - alias paorph='pacaur -Qtd' - alias painsd='pacaur -S --asdeps' - alias pamir='pacaur -Syy' - alias paupd="pacaur -Sy" - alias upgrade='pacaur -Syu' -fi - -if (( $+commands[trizen] )); then - alias trconf='trizen -C' - alias trupg='trizen -Syua' - alias trsu='trizen -Syua --noconfirm' - alias trin='trizen -S' - alias trins='trizen -U' - alias trre='trizen -R' - alias trrem='trizen -Rns' - alias trrep='trizen -Si' - alias trreps='trizen -Ss' - alias trloc='trizen -Qi' - alias trlocs='trizen -Qs' - alias trlst='trizen -Qe' - alias trorph='trizen -Qtd' - alias trinsd='trizen -S --asdeps' - alias trmir='trizen -Syy' - alias trupd="trizen -Sy" - alias upgrade='trizen -Syu' -fi - -if (( $+commands[yay] )); then - alias yaconf='yay -Pg' - alias yaupg='yay -Syu' - alias yasu='yay -Syu --noconfirm' - alias yain='yay -S' - alias yains='yay -U' - alias yare='yay -R' - alias yarem='yay -Rns' - alias yarep='yay -Si' - alias yareps='yay -Ss' - alias yaloc='yay -Qi' - alias yalocs='yay -Qs' - alias yalst='yay -Qe' - alias yaorph='yay -Qtd' - alias yainsd='yay -S --asdeps' - alias yamir='yay -Syy' - alias yaupd="yay -Sy" - alias upgrade='yay -Syu' -fi diff --git a/zsh/.oh-my-zsh/plugins/asdf/README.md b/zsh/.oh-my-zsh/plugins/asdf/README.md deleted file mode 100644 index e8aa976..0000000 --- a/zsh/.oh-my-zsh/plugins/asdf/README.md +++ /dev/null @@ -1,27 +0,0 @@ -## asdf - -**Maintainer:** [@RobLoach](https://github.com/RobLoach) - -Adds integration with [asdf](https://github.com/asdf-vm/asdf), the extendable version manager, with support for Ruby, Node.js, Elixir, Erlang and more. - -### Installation - -1. Enable the plugin by adding it to your `plugins` definition in `~/.zshrc`. - - ``` - plugins=(asdf) - ``` - -2. [Install asdf](https://github.com/asdf-vm/asdf#setup) by running the following: - ``` - git clone https://github.com/asdf-vm/asdf.git ~/.asdf - ``` - -### Usage - -See the [asdf usage documentation](https://github.com/asdf-vm/asdf#usage) for information on how to use asdf: - -``` -asdf plugin-add nodejs git@github.com:asdf-vm/asdf-nodejs.git -asdf install nodejs 5.9.1 -``` diff --git a/zsh/.oh-my-zsh/plugins/asdf/asdf.plugin.zsh b/zsh/.oh-my-zsh/plugins/asdf/asdf.plugin.zsh deleted file mode 100644 index c386d57..0000000 --- a/zsh/.oh-my-zsh/plugins/asdf/asdf.plugin.zsh +++ /dev/null @@ -1,19 +0,0 @@ -# Find where asdf should be installed -ASDF_DIR="${ASDF_DIR:-$HOME/.asdf}" -ASDF_COMPLETIONS="$ASDF_DIR/completions" - -# If not found, check for Homebrew package -if [[ ! -f "$ASDF_DIR/asdf.sh" || ! -f "$ASDF_COMPLETIONS/asdf.bash" ]] && (( $+commands[brew] )); then - ASDF_DIR="$(brew --prefix asdf)" - ASDF_COMPLETIONS="$ASDF_DIR/etc/bash_completion.d" -fi - -# Load command -if [[ -f "$ASDF_DIR/asdf.sh" ]]; then - . "$ASDF_DIR/asdf.sh" - - # Load completions - if [[ -f "$ASDF_COMPLETIONS/asdf.bash" ]]; then - . "$ASDF_COMPLETIONS/asdf.bash" - fi -fi diff --git a/zsh/.oh-my-zsh/plugins/autoenv/README.md b/zsh/.oh-my-zsh/plugins/autoenv/README.md deleted file mode 100644 index 5dfb5fb..0000000 --- a/zsh/.oh-my-zsh/plugins/autoenv/README.md +++ /dev/null @@ -1,20 +0,0 @@ -# Autoenv plugin - -This plugin loads the [Autoenv](https://github.com/inishchith/autoenv). - -To use it, add `autoenv` to the plugins array in your zshrc file: - -```zsh -plugins=(... autoenv) -``` - -## Functions - -* `use_env()`: creates and/or activates a virtualenv. For use in `.env` files. - See the source code for details. - -## Requirements - -In order to make this work, you will need to have the autoenv installed. - -More info on the usage and install at [the project's homepage](https://github.com/inishchith/autoenv). diff --git a/zsh/.oh-my-zsh/plugins/autoenv/autoenv.plugin.zsh b/zsh/.oh-my-zsh/plugins/autoenv/autoenv.plugin.zsh deleted file mode 100644 index bd03cf4..0000000 --- a/zsh/.oh-my-zsh/plugins/autoenv/autoenv.plugin.zsh +++ /dev/null @@ -1,71 +0,0 @@ -# Initialization: activate autoenv or report its absence -() { -local d autoenv_dir install_locations -if ! type autoenv_init >/dev/null; then - # Check if activate.sh is in $PATH - if (( $+commands[activate.sh] )); then - autoenv_dir="${commands[activate.sh]:h}" - fi - - # Locate autoenv installation - if [[ -z $autoenv_dir ]]; then - install_locations=( - ~/.autoenv - ~/.local/bin - /usr/local/opt/autoenv - /usr/local/bin - /usr/share/autoenv-git - ~/Library/Python/bin - ) - for d ( $install_locations ); do - if [[ -e $d/activate.sh ]]; then - autoenv_dir=$d - break - fi - done - fi - - # Look for Homebrew path as a last resort - if [[ -z "$autoenv_dir" ]] && (( $+commands[brew] )); then - d=$(brew --prefix)/opt/autoenv - if [[ -e $d/activate.sh ]]; then - autoenv_dir=$d - fi - fi - - # Complain if autoenv is not installed - if [[ -z $autoenv_dir ]]; then - cat <&2 --------- AUTOENV --------- -Could not locate autoenv installation. -Please check if autoenv is correctly installed. -In the meantime the autoenv plugin is DISABLED. --------------------------- -END - return 1 - fi - # Load autoenv - source $autoenv_dir/activate.sh -fi -} -[[ $? != 0 ]] && return $? - -# The use_env call below is a reusable command to activate/create a new Python -# virtualenv, requiring only a single declarative line of code in your .env files. -# It only performs an action if the requested virtualenv is not the current one. - -use_env() { - local venv - venv="$1" - if [[ "${VIRTUAL_ENV:t}" != "$venv" ]]; then - if workon | grep -q "$venv"; then - workon "$venv" - else - echo -n "Create virtualenv $venv now? (Yn) " - read answer - if [[ "$answer" == "Y" ]]; then - mkvirtualenv "$venv" - fi - fi - fi -} diff --git a/zsh/.oh-my-zsh/plugins/autojump/README.md b/zsh/.oh-my-zsh/plugins/autojump/README.md deleted file mode 100644 index 750ff56..0000000 --- a/zsh/.oh-my-zsh/plugins/autojump/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# Autojump plugin - -This plugin loads the [autojump navigation tool](https://github.com/wting/autojump). - -To use it, add `autojump` to the plugins array in your zshrc file: - -```zsh -plugins=(... autojump) -``` - -**Note:** you have to [install autojump](https://github.com/wting/autojump#installation) first. diff --git a/zsh/.oh-my-zsh/plugins/autojump/autojump.plugin.zsh b/zsh/.oh-my-zsh/plugins/autojump/autojump.plugin.zsh deleted file mode 100644 index 3117c6d..0000000 --- a/zsh/.oh-my-zsh/plugins/autojump/autojump.plugin.zsh +++ /dev/null @@ -1,35 +0,0 @@ -declare -a autojump_paths -autojump_paths=( - $HOME/.autojump/etc/profile.d/autojump.zsh # manual installation - $HOME/.autojump/share/autojump/autojump.zsh # manual installation - $HOME/.nix-profile/etc/profile.d/autojump.sh # NixOS installation - /run/current-system/sw/share/autojump/autojump.zsh # NixOS installation - /usr/share/autojump/autojump.zsh # Debian and Ubuntu package - /etc/profile.d/autojump.zsh # manual installation - /etc/profile.d/autojump.sh # Gentoo installation - /usr/local/share/autojump/autojump.zsh # FreeBSD installation - /opt/local/etc/profile.d/autojump.sh # macOS with MacPorts - /usr/local/etc/profile.d/autojump.sh # macOS with Homebrew (default) - /opt/homebrew/etc/profile.d/autojump.sh # macOS with Homebrew (default on M1 macs) -) - -for file in $autojump_paths; do - if [[ -f "$file" ]]; then - source "$file" - found=1 - break - fi -done - -# if no path found, try Homebrew -if (( ! found && $+commands[brew] )); then - file=$(brew --prefix)/etc/profile.d/autojump.sh - if [[ -f "$file" ]]; then - source "$file" - found=1 - fi -fi - -(( ! found )) && echo '[oh-my-zsh] autojump not found. Please install it first.' - -unset autojump_paths file found diff --git a/zsh/.oh-my-zsh/plugins/autopep8/README.md b/zsh/.oh-my-zsh/plugins/autopep8/README.md deleted file mode 100644 index 02bbb9a..0000000 --- a/zsh/.oh-my-zsh/plugins/autopep8/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# autopep8 plugin - -This plugin adds completion for [autopep8](https://pypi.org/project/autopep8/), a tool that automatically formats Python code to conform to the [PEP 8](http://www.python.org/dev/peps/pep-0008/) style guide. - -To use it, add autopep8 to the plugins array of your zshrc file: -``` -plugins=(... autopep8) -``` diff --git a/zsh/.oh-my-zsh/plugins/autopep8/_autopep8 b/zsh/.oh-my-zsh/plugins/autopep8/_autopep8 deleted file mode 100644 index c14d06d..0000000 --- a/zsh/.oh-my-zsh/plugins/autopep8/_autopep8 +++ /dev/null @@ -1,32 +0,0 @@ -#compdef autopep8 -# -# this is zsh completion function file. -# generated by genzshcomp(ver: 0.5.1) -# - -typeset -A opt_args -local context state line - -_arguments -s -S \ - "--help[show this help message and exit]:" \ - "-h[show this help message and exit]:" \ - "--version[show program's version number and exit]:" \ - "--verbose[print verbose messages; multiple -v result in more verbose messages]" \ - "-v[print verbose messages; multiple -v result in more verbose messages]" \ - "--diff[print the diff for the fixed source]" \ - "-d[print the diff for the fixed source]" \ - "--in-place[make changes to files in place]" \ - "-i[make changes to files in place]" \ - "--recursive[run recursively; must be used with --in-place or --diff]" \ - "-r[run recursively; must be used with --in-place or --diff]" \ - "--jobs[number of parallel jobs; match CPU count if value is less than 1]::n number of parallel jobs; match CPU count if value is:_files" \ - "-j[number of parallel jobs; match CPU count if value is less than 1]::n number of parallel jobs; match CPU count if value is:_files" \ - "--pep8-passes[maximum number of additional pep8 passes (default: 100)]::n:_files" \ - "-p[maximum number of additional pep8 passes (default: 100)]::n:_files" \ - "-a[-a result in more aggressive changes]::result:_files" \ - "--exclude[exclude files/directories that match these comma- separated globs]::globs:_files" \ - "--list-fixes[list codes for fixes; used by --ignore and --select]" \ - "--ignore[do not fix these errors/warnings (default E226,E24)]::errors:_files" \ - "--select[fix only these errors/warnings (e.g. E4,W)]::errors:_files" \ - "--max-line-length[set maximum allowed line length (default: 79)]::n:_files" \ - "*::args:_files" diff --git a/zsh/.oh-my-zsh/plugins/aws/README.md b/zsh/.oh-my-zsh/plugins/aws/README.md deleted file mode 100644 index 011bbd8..0000000 --- a/zsh/.oh-my-zsh/plugins/aws/README.md +++ /dev/null @@ -1,75 +0,0 @@ -# aws - -This plugin provides completion support for [awscli](https://docs.aws.amazon.com/cli/latest/reference/index.html) -and a few utilities to manage AWS profiles and display them in the prompt. - -To use it, add `aws` to the plugins array in your zshrc file. - -```zsh -plugins=(... aws) -``` - -## Plugin commands - -* `asp []`: sets `$AWS_PROFILE` and `$AWS_DEFAULT_PROFILE` (legacy) to ``. - It also sets `$AWS_EB_PROFILE` to `` for the Elastic Beanstalk CLI. - Run `asp` without arguments to clear the profile. - -* `acp []`: in addition to `asp` functionality, it actually changes the profile by - assuming the role specified in the `` configuration. It supports MFA and sets - `$AWS_ACCESS_KEY_ID`, `$AWS_SECRET_ACCESS_KEY` and `$AWS_SESSION_TOKEN`, if obtained. It - requires the roles to be configured as per the - [official guide](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-role.html). - Run `acp` without arguments to clear the profile. - -* `agp`: gets the current value of `$AWS_PROFILE`. - -* `aws_change_access_key`: changes the AWS access key of a profile. - -* `aws_profiles`: lists the available profiles in the `$AWS_CONFIG_FILE` (default: `~/.aws/config`). - Used to provide completion for the `asp` function. - -## Plugin options - -* Set `SHOW_AWS_PROMPT=false` in your zshrc file if you want to prevent the plugin from modifying your RPROMPT. - Some themes might overwrite the value of RPROMPT instead of appending to it, so they'll need to be fixed to - see the AWS profile prompt. - -## Theme - -The plugin creates an `aws_prompt_info` function that you can use in your theme, which displays -the current `$AWS_PROFILE`. It uses two variables to control how that is shown: - -* ZSH_THEME_AWS_PREFIX: sets the prefix of the AWS_PROFILE. Defaults to ``. - -## Configuration - -[Configuration and credential file settings](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html) by AWS - -### Scenario: IAM roles with a source profile and MFA authentication - -Source profile credentials in `~/.aws/credentials`: - -``` -[source-profile-name] -aws_access_key_id = ... -aws_secret_access_key = ... -``` - -Role configuration in `~/.aws/config`: - -``` -[profile source-profile-name] -mfa_serial = arn:aws:iam::111111111111:mfa/myuser -region = us-east-1 -output = json - -[profile profile-with-role] -role_arn = arn:aws:iam::9999999999999:role/myrole -mfa_serial = arn:aws:iam::111111111111:mfa/myuser -source_profile = source-profile-name -region = us-east-1 -output = json -``` diff --git a/zsh/.oh-my-zsh/plugins/aws/aws.plugin.zsh b/zsh/.oh-my-zsh/plugins/aws/aws.plugin.zsh deleted file mode 100644 index 2d09563..0000000 --- a/zsh/.oh-my-zsh/plugins/aws/aws.plugin.zsh +++ /dev/null @@ -1,206 +0,0 @@ -function agp() { - echo $AWS_PROFILE -} - -# AWS profile selection -function asp() { - if [[ -z "$1" ]]; then - unset AWS_DEFAULT_PROFILE AWS_PROFILE AWS_EB_PROFILE - echo AWS profile cleared. - return - fi - - local -a available_profiles - available_profiles=($(aws_profiles)) - if [[ -z "${available_profiles[(r)$1]}" ]]; then - echo "${fg[red]}Profile '$1' not found in '${AWS_CONFIG_FILE:-$HOME/.aws/config}'" >&2 - echo "Available profiles: ${(j:, :)available_profiles:-no profiles found}${reset_color}" >&2 - return 1 - fi - - export AWS_DEFAULT_PROFILE=$1 - export AWS_PROFILE=$1 - export AWS_EB_PROFILE=$1 -} - -# AWS profile switch -function acp() { - if [[ -z "$1" ]]; then - unset AWS_DEFAULT_PROFILE AWS_PROFILE AWS_EB_PROFILE - unset AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN - echo AWS profile cleared. - return - fi - - local -a available_profiles - available_profiles=($(aws_profiles)) - if [[ -z "${available_profiles[(r)$1]}" ]]; then - echo "${fg[red]}Profile '$1' not found in '${AWS_CONFIG_FILE:-$HOME/.aws/config}'" >&2 - echo "Available profiles: ${(j:, :)available_profiles:-no profiles found}${reset_color}" >&2 - return 1 - fi - - local profile="$1" - - # Get fallback credentials for if the aws command fails or no command is run - local aws_access_key_id="$(aws configure get aws_access_key_id --profile $profile)" - local aws_secret_access_key="$(aws configure get aws_secret_access_key --profile $profile)" - local aws_session_token="$(aws configure get aws_session_token --profile $profile)" - - - # First, if the profile has MFA configured, lets get the token and session duration - local mfa_serial="$(aws configure get mfa_serial --profile $profile)" - local sess_duration="$(aws configure get duration_seconds --profile $profile)" - - if [[ -n "$mfa_serial" ]]; then - local -a mfa_opt - local mfa_token - echo -n "Please enter your MFA token for $mfa_serial: " - read -r mfa_token - if [[ -z "$sess_duration" ]]; then - echo -n "Please enter the session duration in seconds (900-43200; default: 3600, which is the default maximum for a role): " - read -r sess_duration - fi - mfa_opt=(--serial-number "$mfa_serial" --token-code "$mfa_token" --duration-seconds "${sess_duration:-3600}") - fi - - # Now see whether we need to just MFA for the current role, or assume a different one - local role_arn="$(aws configure get role_arn --profile $profile)" - local sess_name="$(aws configure get role_session_name --profile $profile)" - - if [[ -n "$role_arn" ]]; then - # Means we need to assume a specified role - aws_command=(aws sts assume-role --role-arn "$role_arn" "${mfa_opt[@]}") - - # Check whether external_id is configured to use while assuming the role - local external_id="$(aws configure get external_id --profile $profile)" - if [[ -n "$external_id" ]]; then - aws_command+=(--external-id "$external_id") - fi - - # Get source profile to use to assume role - local source_profile="$(aws configure get source_profile --profile $profile)" - if [[ -z "$sess_name" ]]; then - sess_name="${source_profile:-profile}" - fi - aws_command+=(--profile="${source_profile:-profile}" --role-session-name "${sess_name}") - - echo "Assuming role $role_arn using profile ${source_profile:-profile}" - else - # Means we only need to do MFA - aws_command=(aws sts get-session-token --profile="$profile" "${mfa_opt[@]}") - echo "Obtaining session token for profile $profile" - fi - - # Format output of aws command for easier processing - aws_command+=(--query '[Credentials.AccessKeyId,Credentials.SecretAccessKey,Credentials.SessionToken]' --output text) - - # Run the aws command to obtain credentials - local -a credentials - credentials=(${(ps:\t:)"$(${aws_command[@]})"}) - - if [[ -n "$credentials" ]]; then - aws_access_key_id="${credentials[1]}" - aws_secret_access_key="${credentials[2]}" - aws_session_token="${credentials[3]}" - fi - - # Switch to AWS profile - if [[ -n "${aws_access_key_id}" && -n "$aws_secret_access_key" ]]; then - export AWS_DEFAULT_PROFILE="$profile" - export AWS_PROFILE="$profile" - export AWS_EB_PROFILE="$profile" - export AWS_ACCESS_KEY_ID="$aws_access_key_id" - export AWS_SECRET_ACCESS_KEY="$aws_secret_access_key" - - if [[ -n "$aws_session_token" ]]; then - export AWS_SESSION_TOKEN="$aws_session_token" - else - unset AWS_SESSION_TOKEN - fi - - echo "Switched to AWS Profile: $profile" - fi -} - -function aws_change_access_key() { - if [[ -z "$1" ]]; then - echo "usage: $0 " - return 1 - fi - - echo "Insert the credentials when asked." - asp "$1" || return 1 - AWS_PAGER="" aws iam create-access-key - AWS_PAGER="" aws configure --profile "$1" - - echo "You can now safely delete the old access key running \`aws iam delete-access-key --access-key-id ID\`" - echo "Your current keys are:" - AWS_PAGER="" aws iam list-access-keys -} - -function aws_profiles() { - [[ -r "${AWS_CONFIG_FILE:-$HOME/.aws/config}" ]] || return 1 - grep --color=never -Eo '\[.*\]' "${AWS_CONFIG_FILE:-$HOME/.aws/config}" | sed -E 's/^[[:space:]]*\[(profile)?[[:space:]]*([-_[:alnum:]\.@]+)\][[:space:]]*$/\2/g' -} - -function _aws_profiles() { - reply=($(aws_profiles)) -} -compctl -K _aws_profiles asp acp aws_change_access_key - -# AWS prompt -function aws_prompt_info() { - [[ -z $AWS_PROFILE ]] && return - echo "${ZSH_THEME_AWS_PREFIX:=}" -} - -if [[ "$SHOW_AWS_PROMPT" != false && "$RPROMPT" != *'$(aws_prompt_info)'* ]]; then - RPROMPT='$(aws_prompt_info)'"$RPROMPT" -fi - - -# Load awscli completions - -# AWS CLI v2 comes with its own autocompletion. Check if that is there, otherwise fall back -if command -v aws_completer &> /dev/null; then - autoload -Uz bashcompinit && bashcompinit - complete -C aws_completer aws -else - function _awscli-homebrew-installed() { - # check if Homebrew is installed - (( $+commands[brew] )) || return 1 - - # speculatively check default brew prefix - if [ -h /usr/local/opt/awscli ]; then - _brew_prefix=/usr/local/opt/awscli - else - # ok, it is not in the default prefix - # this call to brew is expensive (about 400 ms), so at least let's make it only once - _brew_prefix=$(brew --prefix awscli) - fi - } - - # get aws_zsh_completer.sh location from $PATH - _aws_zsh_completer_path="$commands[aws_zsh_completer.sh]" - - # otherwise check common locations - if [[ -z $_aws_zsh_completer_path ]]; then - # Homebrew - if _awscli-homebrew-installed; then - _aws_zsh_completer_path=$_brew_prefix/libexec/bin/aws_zsh_completer.sh - # Ubuntu - elif [[ -e /usr/share/zsh/vendor-completions/_awscli ]]; then - _aws_zsh_completer_path=/usr/share/zsh/vendor-completions/_awscli - # NixOS - elif [[ -e "${commands[aws]:P:h:h}/share/zsh/site-functions/aws_zsh_completer.sh" ]]; then - _aws_zsh_completer_path="${commands[aws]:P:h:h}/share/zsh/site-functions/aws_zsh_completer.sh" - # RPM - else - _aws_zsh_completer_path=/usr/share/zsh/site-functions/aws_zsh_completer.sh - fi - fi - - [[ -r $_aws_zsh_completer_path ]] && source $_aws_zsh_completer_path - unset _aws_zsh_completer_path _brew_prefix -fi diff --git a/zsh/.oh-my-zsh/plugins/battery/README.md b/zsh/.oh-my-zsh/plugins/battery/README.md deleted file mode 100644 index 18e5bd8..0000000 --- a/zsh/.oh-my-zsh/plugins/battery/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# Battery Plugin - -This plugin adds some functions you can use to display battery information in your custom theme. - -To use, add `battery` to the list of plugins in your `.zshrc` file: - -`plugins=(... battery)` - -Then, add the `battery_pct_prompt` function to your custom theme. For example: - -```zsh -RPROMPT='$(battery_pct_prompt) ...' -``` - -## Requirements - -- On Linux, you must have the `acpi` or `acpitool` commands installed on your operating system. - On Debian/Ubuntu, you can do that with `sudo apt install acpi` or `sudo apt install acpitool`. - -- On Android (via [Termux](https://play.google.com/store/apps/details?id=com.termux)), you must have: - - 1. The `Termux:API` addon app installed: - [Google Play](https://play.google.com/store/apps/details?id=com.termux.api) | [F-Droid](https://f-droid.org/packages/com.termux.api/) - - 2. The `termux-api` package installed within termux: - - ```sh - pkg install termux-api - ``` diff --git a/zsh/.oh-my-zsh/plugins/battery/battery.plugin.zsh b/zsh/.oh-my-zsh/plugins/battery/battery.plugin.zsh deleted file mode 100644 index db5eeb9..0000000 --- a/zsh/.oh-my-zsh/plugins/battery/battery.plugin.zsh +++ /dev/null @@ -1,262 +0,0 @@ -########################################### -# Battery plugin for oh-my-zsh # -# Original Author: Peter hoeg (peterhoeg) # -# Email: peter@speartail.com # -########################################### -# Author: Sean Jones (neuralsandwich) # -# Email: neuralsandwich@gmail.com # -# Modified to add support for Apple Mac # -########################################### -# Author: J (927589452) # -# Modified to add support for FreeBSD # -########################################### -# Author: Avneet Singh (kalsi-avneet) # -# Modified to add support for Android # -########################################### - -if [[ "$OSTYPE" = darwin* ]]; then - function battery_is_charging() { - ioreg -rc AppleSmartBattery | command grep -q '^.*"ExternalConnected"\ =\ Yes' - } - function battery_pct() { - pmset -g batt | grep -Eo "\d+%" | cut -d% -f1 - } - function battery_pct_remaining() { - if battery_is_charging; then - echo "External Power" - else - battery_pct - fi - } - function battery_time_remaining() { - local smart_battery_status="$(ioreg -rc "AppleSmartBattery")" - if [[ $(echo $smart_battery_status | command grep -c '^.*"ExternalConnected"\ =\ No') -eq 1 ]]; then - timeremaining=$(echo $smart_battery_status | command grep '^.*"AvgTimeToEmpty"\ =\ ' | sed -e 's/^.*"AvgTimeToEmpty"\ =\ //') - if [ $timeremaining -gt 720 ]; then - echo "::" - else - echo "~$((timeremaining / 60)):$((timeremaining % 60))" - fi - else - echo "∞" - fi - } - function battery_pct_prompt () { - local battery_pct color - if ioreg -rc AppleSmartBattery | command grep -q '^.*"ExternalConnected"\ =\ No'; then - battery_pct=$(battery_pct_remaining) - if [[ $battery_pct -gt 50 ]]; then - color='green' - elif [[ $battery_pct -gt 20 ]]; then - color='yellow' - else - color='red' - fi - echo "%{$fg[$color]%}[${battery_pct}%%]%{$reset_color%}" - else - echo "∞" - fi - } - -elif [[ "$OSTYPE" = freebsd* ]]; then - function battery_is_charging() { - [[ $(sysctl -n hw.acpi.battery.state) -eq 2 ]] - } - function battery_pct() { - if (( $+commands[sysctl] )); then - sysctl -n hw.acpi.battery.life - fi - } - function battery_pct_remaining() { - if ! battery_is_charging; then - battery_pct - else - echo "External Power" - fi - } - function battery_time_remaining() { - local remaining_time - remaining_time=$(sysctl -n hw.acpi.battery.time) - if [[ $remaining_time -ge 0 ]]; then - ((hour = $remaining_time / 60 )) - ((minute = $remaining_time % 60 )) - printf %02d:%02d $hour $minute - fi - } - function battery_pct_prompt() { - local battery_pct color - battery_pct=$(battery_pct_remaining) - if battery_is_charging; then - echo "∞" - else - if [[ $battery_pct -gt 50 ]]; then - color='green' - elif [[ $battery_pct -gt 20 ]]; then - color='yellow' - else - color='red' - fi - echo "%{$fg[$color]%}${battery_pct}%%%{$reset_color%}" - fi - } -elif [[ "$OSTYPE" = linux-android ]] && (( ${+commands[termux-battery-status]} )); then - function battery_is_charging() { - termux-battery-status 2>/dev/null | command awk '/status/ { exit ($0 ~ /DISCHARGING/) }' - } - function battery_pct() { - # Sample output: - # { - # "health": "GOOD", - # "percentage": 93, - # "plugged": "UNPLUGGED", - # "status": "DISCHARGING", - # "temperature": 29.0, - # "current": 361816 - # } - termux-battery-status 2>/dev/null | command awk '/percentage/ { gsub(/[,]/,""); print $2}' - } - function battery_pct_remaining() { - if ! battery_is_charging; then - battery_pct - else - echo "External Power" - fi - } - function battery_time_remaining() { } # Not available on android - function battery_pct_prompt() { - local battery_pct color - battery_pct=$(battery_pct_remaining) - if battery_is_charging; then - echo "∞" - else - if [[ $battery_pct -gt 50 ]]; then - color='green' - elif [[ $battery_pct -gt 20 ]]; then - color='yellow' - else - color='red' - fi - echo "%{$fg[$color]%}${battery_pct}%%%{$reset_color%}" - fi - } -elif [[ "$OSTYPE" = linux* ]]; then - function battery_is_charging() { - if (( $+commands[acpitool] )); then - ! acpitool 2>/dev/null | command grep -qE '^\s+Battery.*Discharging' - elif (( $+commands[acpi] )); then - ! acpi 2>/dev/null | command grep -v "rate information unavailable" | command grep -q '^Battery.*Discharging' - fi - } - function battery_pct() { - if (( $+commands[acpitool] )); then - # Sample output: - # Battery #1 : Unknown, 99.55% - # Battery #2 : Discharging, 49.58%, 01:12:05 - # All batteries : 62.60%, 02:03:03 - local -i pct=$(acpitool 2>/dev/null | command awk -F, ' - /^\s+All batteries/ { - gsub(/[^0-9.]/, "", $1) - pct=$1 - exit - } - !pct && /^\s+Battery/ { - gsub(/[^0-9.]/, "", $2) - pct=$2 - } - END { print pct } - ') - echo $pct - elif (( $+commands[acpi] )); then - # Sample output: - # Battery 0: Discharging, 0%, rate information unavailable - # Battery 1: Full, 100% - acpi 2>/dev/null | command awk -F, ' - /rate information unavailable/ { next } - /^Battery.*: /{ gsub(/[^0-9]/, "", $2); print $2; exit } - ' - fi - } - function battery_pct_remaining() { - if ! battery_is_charging; then - battery_pct - else - echo "External Power" - fi - } - function battery_time_remaining() { - if ! battery_is_charging; then - acpi 2>/dev/null | command grep -v "rate information unavailable" | cut -f3 -d ',' - fi - } - function battery_pct_prompt() { - local battery_pct color - battery_pct=$(battery_pct_remaining) - if battery_is_charging; then - echo "∞" - else - if [[ $battery_pct -gt 50 ]]; then - color='green' - elif [[ $battery_pct -gt 20 ]]; then - color='yellow' - else - color='red' - fi - echo "%{$fg[$color]%}${battery_pct}%%%{$reset_color%}" - fi - } -else - # Empty functions so we don't cause errors in prompts - function battery_is_charging { false } - function battery_pct \ - battery_pct_remaining \ - battery_time_remaining \ - battery_pct_prompt { } -fi - -function battery_level_gauge() { - local gauge_slots=${BATTERY_GAUGE_SLOTS:-10} - local green_threshold=${BATTERY_GREEN_THRESHOLD:-$(( gauge_slots * 0.6 ))} - local yellow_threshold=${BATTERY_YELLOW_THRESHOLD:-$(( gauge_slots * 0.4 ))} - local color_green=${BATTERY_COLOR_GREEN:-%F{green}} - local color_yellow=${BATTERY_COLOR_YELLOW:-%F{yellow}} - local color_red=${BATTERY_COLOR_RED:-%F{red}} - local color_reset=${BATTERY_COLOR_RESET:-%{%f%k%b%}} - local battery_prefix=${BATTERY_GAUGE_PREFIX:-'['} - local battery_suffix=${BATTERY_GAUGE_SUFFIX:-']'} - local filled_symbol=${BATTERY_GAUGE_FILLED_SYMBOL:-'â–¶'} - local empty_symbol=${BATTERY_GAUGE_EMPTY_SYMBOL:-'â–·'} - local charging_color=${BATTERY_CHARGING_COLOR:-$color_yellow} - local charging_symbol=${BATTERY_CHARGING_SYMBOL:-'âš¡'} - - local -i battery_remaining_percentage=$(battery_pct) - local filled empty gauge_color - - if [[ $battery_remaining_percentage =~ [0-9]+ ]]; then - filled=$(( ($battery_remaining_percentage * $gauge_slots) / 100 )) - empty=$(( $gauge_slots - $filled )) - - if [[ $filled -gt $green_threshold ]]; then - gauge_color=$color_green - elif [[ $filled -gt $yellow_threshold ]]; then - gauge_color=$color_yellow - else - gauge_color=$color_red - fi - else - filled=$gauge_slots - empty=0 - filled_symbol=${BATTERY_UNKNOWN_SYMBOL:-'.'} - fi - - local charging=' ' - battery_is_charging && charging=$charging_symbol - - # Charging status and prefix - print -n ${charging_color}${charging}${color_reset}${battery_prefix}${gauge_color} - # Filled slots - [[ $filled -gt 0 ]] && printf ${filled_symbol//\%/\%\%}'%.0s' {1..$filled} - # Empty slots - [[ $filled -lt $gauge_slots ]] && printf ${empty_symbol//\%/\%\%}'%.0s' {1..$empty} - # Suffix - print -n ${color_reset}${battery_suffix}${color_reset} -} diff --git a/zsh/.oh-my-zsh/plugins/bazel/README.md b/zsh/.oh-my-zsh/plugins/bazel/README.md deleted file mode 100644 index e5ffe6e..0000000 --- a/zsh/.oh-my-zsh/plugins/bazel/README.md +++ /dev/null @@ -1,5 +0,0 @@ -## Bazel autocomplete plugin - -A copy of the completion script from the -[bazelbuild/bazel](https://github.com/bazelbuild/bazel/master/scripts/zsh_completion/_bazel) -git repo. diff --git a/zsh/.oh-my-zsh/plugins/bazel/_bazel b/zsh/.oh-my-zsh/plugins/bazel/_bazel deleted file mode 100644 index 827ce54..0000000 --- a/zsh/.oh-my-zsh/plugins/bazel/_bazel +++ /dev/null @@ -1,341 +0,0 @@ -#compdef bazel - -# Copyright 2015 The Bazel Authors. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# Installation -# ------------ -# -# 1. Add this script to a directory on your $fpath: -# fpath[1,0]=~/.zsh/completion/ -# mkdir -p ~/.zsh/completion/ -# cp scripts/zsh_completion/_bazel ~/.zsh/completion -# -# 2. Optionally, add the following to your .zshrc. -# zstyle ':completion:*' use-cache on -# zstyle ':completion:*' cache-path ~/.zsh/cache -# -# This way, the completion script does not have to parse Bazel's options -# repeatedly. The directory in cache-path must be created manually. -# -# 3. Restart the shell -# -# Options -# ------- -# completion:init:bazel:* cache-lifetime -# Lifetime for the completion cache (if turned on, default: 1 week) - -local curcontext="$curcontext" state line - -: ${BAZEL_COMPLETION_PACKAGE_PATH:=%workspace%} -: ${BAZEL:=bazel} -_bazel_b() { ${BAZEL} --noblock_for_lock "$@" 2>/dev/null; } - -# Default cache lifetime is 1 week -zstyle -s ":completion:${curcontext}:" cache-lifetime lifetime -if [[ -z "${lifetime}" ]]; then - lifetime=$((60*60*24*7)) -fi - -_bazel_cache_policy() { - local -a oldp - oldp=( "$1"(Nms+${lifetime}) ) - (( $#oldp )) -} - -_set_cache_policy() { - zstyle -s ":completion:*:$curcontext*" cache-policy update_policy - - if [[ -z "$update_policy" ]]; then - zstyle ":completion:$curcontext*" cache-policy _bazel_cache_policy - fi -} - -# Skips over all global arguments. After invocation, OFFSET contains the -# position of the bazel command in $words. -_adapt_subcommand_offset() { - OFFSET=2 - for w in ${words[2,-1]}; do - if [[ $w == (#b)-* ]]; then - (( OFFSET++ )) - else - return - fi - done -} - -# Retrieve the cache but also check that the value is not empty. -_bazel_safe_retrieve_cache() { - _retrieve_cache $1 && [[ ${(P)#2} -gt 0 ]] -} - -# Puts the name of the variable that contains the options for the bazel -# subcommand handed in as the first argument into the global variable -# _bazel_cmd_options. -_bazel_get_options() { - local lcmd=$1 - _bazel_cmd_options=_bazel_${lcmd}_options - _bazel_cmd_args=_bazel_${lcmd}_args - if [[ ${(P)#_bazel_cmd_options} != 0 ]]; then - return - fi - if _cache_invalid BAZEL_${lcmd}_options || _cache_invalid BAZEL_${lcmd}_args \ - || ! _bazel_safe_retrieve_cache BAZEL_${lcmd}_options ${_bazel_cmd_options} \ - || ! _retrieve_cache BAZEL_${lcmd}_args ${_bazel_cmd_args}; then - if ! eval "$(_bazel_b help completion)"; then - return - fi - local opts_var - if [[ $lcmd == "startup_options" ]]; then - opts_var="BAZEL_STARTUP_OPTIONS" - else - opts_var="BAZEL_COMMAND_${lcmd:u}_FLAGS" - fi - local -a raw_options - if ! eval "raw_options=(\${(@f)$opts_var})"; then - return - fi - - local -a option_list - for opt in $raw_options; do - case $opt in - --*"={"*) - local lst="${${opt##*"={"}%"}"}" - local opt="${opt%%=*}=" - option_list+=("${opt}:string:_values '' ${lst//,/ }") ;; - --*=path) - option_list+=("${opt%path}:path:_files") ;; - --*=label) - option_list+=("${opt%label}:target:_bazel_complete_target") ;; - --*=*) - option_list+=("${opt}:string:") ;; - *) - option_list+=("$opt") ;; - esac - done - - local -a cmd_args - local cmd_type - if eval "cmd_type=\${BAZEL_COMMAND_${lcmd:u}_ARGUMENT}" && [[ -n $cmd_type ]]; then - case $cmd_type in - label|label-*) - cmd_args+=("*::${cmd_type}:_bazel_complete_target_${cmd_type//-/_}") ;; - info-key) - cmd_args+=('1::key:_bazel_info_key') ;; - path) - cmd_args+=('1::profile:_path_files') ;; - "command|{"*"}") - local lst=${${cmd_type#"command|{"}%"}"} - cmd_args+=("1::topic:_bazel_help_topic -- ${lst//,/ }") ;; - esac - fi - - typeset -g "${_bazel_cmd_options}"="${(pj:|:)option_list[*]}" - _store_cache BAZEL_${lcmd}_options ${_bazel_cmd_options} - typeset -g "${_bazel_cmd_args}"="${(pj:|:)cmd_args[*]}" - _store_cache BAZEL_${lcmd}_args ${_bazel_cmd_args} - fi -} - -_get_build_targets() { - local pkg=$1 - local rule_re - typeset -a completions - case $target_type in - test) - rule_re=".*_test" - ;; - build) - rule_re=".*" - ;; - bin) - rule_re=".*_test|.*_binary" - ;; - esac - completions=(${$(_bazel_b query "kind(\"${rule_re}\", ${pkg}:all)" 2>/dev/null)##*:}) - if ( (( ${#completions} > 0 )) && [[ $target_type != run ]] ); then - completions+=(all) - fi - echo ${completions[*]} -} - -# Returns all packages that match $PREFIX. PREFIX may start with //, in which -# case the workspace roots are searched. Otherwise, they are completed based on -# PWD. -_get_build_packages() { - local workspace pfx - typeset -a package_roots paths final_paths - workspace=$PWD - package_roots=(${(ps.:.)BAZEL_COMPLETION_PACKAGE_PATH}) - package_roots=(${^package_roots//\%workspace\%/$workspace}) - if [[ "${(e)PREFIX}" == //* ]]; then - pfx=${(e)PREFIX[2,-1]} - else - pfx=${(e)PREFIX} - fi - paths=(${^package_roots}/${pfx}*(/)) - for p in ${paths[*]}; do - if [[ -f ${p}/BUILD || -f ${p}/BUILD.bazel ]]; then - final_paths+=(${p##*/}:) - fi - final_paths+=(${p##*/}/) - done - echo ${final_paths[*]} -} - -_package_remove_slash() { - if [[ $KEYS == ':' && $LBUFFER == */ ]]; then - LBUFFER=${LBUFFER[1,-2]} - fi -} - -# Completion function for BUILD targets, called by the completion system. -_bazel_complete_target() { - local expl - typeset -a packages targets - if [[ "${(e)PREFIX}" != *:* ]]; then - # There is no : in the prefix, completion can be either - # a package or a target, if the cwd is a package itself. - if [[ -f $PWD/BUILD || -f $PWD/BUILD.bazel ]]; then - targets=($(_get_build_targets "")) - _description build_target expl "BUILD target" - compadd "${expl[@]}" -a targets - fi - packages=($(_get_build_packages)) - _description build_package expl "BUILD package" - # Chop of the leading path segments from the prefix for display. - compset -P '*/' - compadd -R _package_remove_slash -S '' "${expl[@]}" -a packages - else - targets=($(_get_build_targets "${${(e)PREFIX}%:*}")) - _description build_target expl "BUILD target" - # Ignore the current prefix for the upcoming completion, since we only list - # the names of the targets, not the full path. - compset -P '*:' - compadd "${expl[@]}" -a targets - fi -} - -_bazel_complete_target_label() { - typeset -g target_type=build - _bazel_complete_target -} - -_bazel_complete_target_label_test() { - typeset -g target_type=test - _bazel_complete_target -} - -_bazel_complete_target_label_bin() { - typeset -g target_type=bin - _bazel_complete_target -} - -### Actual completion commands - -_bazel() { - _adapt_subcommand_offset - if (( CURRENT - OFFSET > 0 )); then - # Remember the subcommand name, stored globally so we can access it - # from any subsequent function - cmd=${words[OFFSET]//-/_} - - # Set the context for the subcommand. - curcontext="${curcontext%:*:*}:bazel-$cmd:" - _set_cache_policy - - # Narrow the range of words we are looking at to exclude cmd - # name and any leading options - (( CURRENT = CURRENT - OFFSET + 1 )) - shift $((OFFSET - 1)) words - # Run the completion for the subcommand - _bazel_get_options $cmd - _arguments : \ - ${(Pps:|:)_bazel_cmd_options} \ - ${(Pps:|:)_bazel_cmd_args} - else - _set_cache_policy - # Start special handling for global options, - # which can be retrieved by calling - # $ bazel help startup_options - _bazel_get_options startup_options - _arguments : \ - ${(Pps:|:)_bazel_cmd_options} \ - "*:commands:_bazel_commands" - fi - return -} - -_get_commands() { - # bazel_cmd_list is a global (g) array (a) - typeset -ga _bazel_cmd_list - # Use `bazel help` instead of `bazel help completion` to get command - # descriptions. - if _bazel_cmd_list=("${(@f)$(_bazel_b help | awk ' -/Available commands/ { command=1; } -/ [-a-z]+[ \t]+.+/ { if (command) { printf "%s:", $1; for (i=2; i<=NF; i++) printf "%s ", $i; print "" } } -/^$/ { command=0; }')}"); then - _store_cache BAZEL_commands _bazel_cmd_list - fi -} - -# Completion function for bazel subcommands, called by the completion system. -_bazel_commands() { - if [[ ${#_bazel_cmd_list} == 0 ]]; then - if _cache_invalid BAZEL_commands \ - || ! _bazel_safe_retrieve_cache BAZEL_commands _bazel_cmd_list; then - _get_commands - fi - fi - - _describe -t bazel-commands 'Bazel command' _bazel_cmd_list -} - -# Completion function for bazel help options, called by the completion system. -_bazel_help_topic() { - if [[ ${#_bazel_cmd_list} == 0 ]]; then - if _cache_invalid BAZEL_commands \ - || ! _bazel_safe_retrieve_cache BAZEL_commands _bazel_cmd_list; then - _get_commands - fi - fi - - while [[ $# -gt 0 ]]; do - if [[ $1 == -- ]]; then - shift - break - fi - shift - done - _bazel_help_list=($@) - _bazel_help_list+=($_bazel_cmd_list) - _describe -t bazel-help 'Help topic' _bazel_help_list -} - -# Completion function for bazel info keys, called by the completion system. -_bazel_info_key() { - if [[ ${#_bazel_info_keys_list} == 0 ]]; then - if _cache_invalid BAZEL_info_keys \ - || ! _bazel_safe_retrieve_cache BAZEL_info_keys _bazel_info_keys_list; then - typeset -ga _bazel_info_keys_list - # Use `bazel help` instead of `bazel help completion` to get info-key - # descriptions. - if _bazel_info_keys_list=("${(@f)$(_bazel_b help info-keys | awk ' - { printf "%s:", $1; for (i=2; i<=NF; i++) printf "%s ", $i; print "" }')}"); then - _store_cache BAZEL_info_keys _bazel_info_keys_list - fi - fi - fi - _describe -t bazel-info 'Key' _bazel_info_keys_list -} diff --git a/zsh/.oh-my-zsh/plugins/bbedit/README.md b/zsh/.oh-my-zsh/plugins/bbedit/README.md deleted file mode 100644 index 263c54c..0000000 --- a/zsh/.oh-my-zsh/plugins/bbedit/README.md +++ /dev/null @@ -1,20 +0,0 @@ -## bbedit - -Plugin for BBEdit, an HTML and text editor for Mac OS X - -### Requirements - - * [BBEdit](https://www.barebones.com/products/bbedit/) - * [BBEdit Command-Line Tools](https://www.barebones.com/support/bbedit/cmd-line-tools.html) - -### Usage - - * If the `bb` command is called without an argument, launch BBEdit - - * If `bb` is passed a directory, cd to it and open it in BBEdit - - * If `bb` is passed a file, open it in BBEdit - - * If `bbpb` create a new BBEdit document with the contents of the clipboard - - * If `bbd` alias for BBEdit diff tool diff --git a/zsh/.oh-my-zsh/plugins/bbedit/bbedit.plugin.zsh b/zsh/.oh-my-zsh/plugins/bbedit/bbedit.plugin.zsh deleted file mode 100644 index fe9e72c..0000000 --- a/zsh/.oh-my-zsh/plugins/bbedit/bbedit.plugin.zsh +++ /dev/null @@ -1,21 +0,0 @@ -alias bbpb='pbpaste | bbedit --clean --view-top' - -alias bbd=bbdiff - -# -# If the bb command is called without an argument, launch BBEdit -# If bb is passed a directory, cd to it and open it in BBEdit -# If bb is passed a file, open it in BBEdit -# -function bb() { - if [[ -z "$1" ]] - then - bbedit --launch - else - bbedit "$1" - if [[ -d "$1" ]] - then - cd "$1" - fi - fi -} diff --git a/zsh/.oh-my-zsh/plugins/bedtools/README.md b/zsh/.oh-my-zsh/plugins/bedtools/README.md deleted file mode 100644 index c4de4e3..0000000 --- a/zsh/.oh-my-zsh/plugins/bedtools/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# Bedtools plugin - -This plugin adds support for the [bedtools suite](http://bedtools.readthedocs.org/en/latest/): - -* Adds autocomplete options for all bedtools sub commands. diff --git a/zsh/.oh-my-zsh/plugins/bedtools/_bedtools b/zsh/.oh-my-zsh/plugins/bedtools/_bedtools deleted file mode 100644 index ef6c417..0000000 --- a/zsh/.oh-my-zsh/plugins/bedtools/_bedtools +++ /dev/null @@ -1,64 +0,0 @@ -#compdef bedtools -#autoload - -local curcontext="$curcontext" state line ret=1 -local -a _files - -_arguments -C \ - '1: :->cmds' \ - '2:: :->args' && ret=0 - -case $state in - cmds) - _values "bedtools command" \ - "--contact[Feature requests, bugs, mailing lists, etc.]" \ - "--help[Print this help menu.]" \ - "--version[What version of bedtools are you using?.]" \ - "annotate[Annotate coverage of features from multiple files.]" \ - "bamtobed[Convert BAM alignments to BED (& other) formats.]" \ - "bamtofastq[Convert BAM records to FASTQ records.]" \ - "bed12tobed6[Breaks BED12 intervals into discrete BED6 intervals.]" \ - "bedpetobam[Convert BEDPE intervals to BAM records.]" \ - "bedtobam[Convert intervals to BAM records.]" \ - "closest[Find the closest, potentially non-overlapping interval.]" \ - "cluster[Cluster (but don't merge) overlapping/nearby intervals.]" \ - "complement[Extract intervals _not_ represented by an interval file.]" \ - "coverage[Compute the coverage over defined intervals.]" \ - "expand[Replicate lines based on lists of values in columns.]" \ - "fisher[Calculate Fisher statistic b/w two feature files.]" \ - "flank[Create new intervals from the flanks of existing intervals.]" \ - "genomecov[Compute the coverage over an entire genome.]" \ - "getfasta[Use intervals to extract sequences from a FASTA file.]" \ - "groupby[Group by common cols. & summarize oth. cols. (~ SQL "groupBy")]" \ - "igv[Create an IGV snapshot batch script.]" \ - "intersect[Find overlapping intervals in various ways.]" \ - "jaccard[Calculate the Jaccard statistic b/w two sets of intervals.]" \ - "links[Create a HTML page of links to UCSC locations.]" \ - "makewindows[Make interval "windows" across a genome.]" \ - "map[Apply a function to a column for each overlapping interval.]" \ - "maskfasta[Use intervals to mask sequences from a FASTA file.]" \ - "merge[Combine overlapping/nearby intervals into a single interval.]" \ - "multicov[Counts coverage from multiple BAMs at specific intervals.]" \ - "multiinter[Identifies common intervals among multiple interval files.]" \ - "nuc[Profile the nucleotide content of intervals in a FASTA file.]" \ - "overlap[Computes the amount of overlap from two intervals.]" \ - "pairtobed[Find pairs that overlap intervals in various ways.]" \ - "pairtopair[Find pairs that overlap other pairs in various ways.]" \ - "random[Generate random intervals in a genome.]" \ - "reldist[Calculate the distribution of relative distances b/w two files.]" \ - "sample[Sample random records from file using reservoir sampling.]" \ - "shuffle[Randomly redistrubute intervals in a genome.]" \ - "slop[Adjust the size of intervals.]" \ - "sort[Order the intervals in a file.]" \ - "subtract[Remove intervals based on overlaps b/w two files.]" \ - "tag[Tag BAM alignments based on overlaps with interval files.]" \ - "unionbedg[Combines coverage intervals from multiple BEDGRAPH files.]" \ - "window[Find overlapping intervals within a window around an interval.]" \ - ret=0 - ;; - *) - _files - ;; -esac - -return ret diff --git a/zsh/.oh-my-zsh/plugins/bgnotify/README.md b/zsh/.oh-my-zsh/plugins/bgnotify/README.md deleted file mode 100644 index 1d8fac5..0000000 --- a/zsh/.oh-my-zsh/plugins/bgnotify/README.md +++ /dev/null @@ -1,54 +0,0 @@ -# bgnotify zsh plugin - -cross-platform background notifications for long running commands! Supports OSX and Ubuntu linux. - -Standalone homepage: [t413/zsh-background-notify](https://github.com/t413/zsh-background-notify) - ----------------------------------- - -## How to use! - -Just add bgnotify to your plugins list in your `.zshrc` - -- On OS X you'll need [terminal-notifier](https://github.com/alloy/terminal-notifier) - * `brew install terminal-notifier` (or `gem install terminal-notifier`) -- On ubuntu you're already all set! -- On windows you can use [notifu](https://www.paralint.com/projects/notifu/) or the Cygwin Ports libnotify package - - -## Screenshots - -**Linux** - -![screenshot from 2014-11-07 15 58 36](https://cloud.githubusercontent.com/assets/326829/4962187/256b465c-66da-11e4-927d-cc2fc105e31f.png) - -**OS X** - -![screenshot 2014-11-08 14 15 12](https://cloud.githubusercontent.com/assets/326829/4965780/19fa3eac-6795-11e4-8ed6-0355711123a9.png) - -**Windows** - -![screenshot from 2014-11-07 15 55 00](https://cloud.githubusercontent.com/assets/326829/4962159/a2625ca0-66d9-11e4-9e91-c5834913190e.png) - - -## Configuration - -One can configure a few things: - -- `bgnotify_threshold` sets the notification threshold time (default 6 seconds) -- `function bgnotify_formatted` lets you change the notification - -Use these by adding a function definition before the your call to source. Example: - -~~~ sh -bgnotify_threshold=4 ## set your own notification threshold - -function bgnotify_formatted { - ## $1=exit_status, $2=command, $3=elapsed_time - [ $1 -eq 0 ] && title="Holy Smokes Batman!" || title="Holy Graf Zeppelin!" - bgnotify "$title -- after $3 s" "$2"; -} - -plugins=(git bgnotify) ## add to plugins list -source $ZSH/oh-my-zsh.sh ## existing source call -~~~ diff --git a/zsh/.oh-my-zsh/plugins/bgnotify/bgnotify.plugin.zsh b/zsh/.oh-my-zsh/plugins/bgnotify/bgnotify.plugin.zsh deleted file mode 100644 index aecde20..0000000 --- a/zsh/.oh-my-zsh/plugins/bgnotify/bgnotify.plugin.zsh +++ /dev/null @@ -1,77 +0,0 @@ -#!/usr/bin/env zsh - -## setup ## - -[[ -o interactive ]] || return #interactive only! -zmodload zsh/datetime || { print "can't load zsh/datetime"; return } # faster than date() -autoload -Uz add-zsh-hook || { print "can't add zsh hook!"; return } - -(( ${+bgnotify_threshold} )) || bgnotify_threshold=5 #default 10 seconds - - -## definitions ## - -if ! (type bgnotify_formatted | grep -q 'function'); then ## allow custom function override - function bgnotify_formatted { ## args: (exit_status, command, elapsed_seconds) - elapsed="$(( $3 % 60 ))s" - (( $3 >= 60 )) && elapsed="$((( $3 % 3600) / 60 ))m $elapsed" - (( $3 >= 3600 )) && elapsed="$(( $3 / 3600 ))h $elapsed" - [ $1 -eq 0 ] && bgnotify "#win (took $elapsed)" "$2" || bgnotify "#fail (took $elapsed)" "$2" - } -fi - -currentWindowId () { - if hash osascript 2>/dev/null; then #osx - osascript -e 'tell application (path to frontmost application as text) to id of front window' 2&> /dev/null || echo "0" - elif (hash notify-send 2>/dev/null || hash kdialog 2>/dev/null); then #ubuntu! - xprop -root 2> /dev/null | awk '/NET_ACTIVE_WINDOW/{print $5;exit} END{exit !$5}' || echo "0" - else - echo $EPOCHSECONDS #fallback for windows - fi -} - -bgnotify () { ## args: (title, subtitle) - if hash terminal-notifier 2>/dev/null; then #osx - [[ "$TERM_PROGRAM" == 'iTerm.app' ]] && term_id='com.googlecode.iterm2'; - [[ "$TERM_PROGRAM" == 'Apple_Terminal' ]] && term_id='com.apple.terminal'; - ## now call terminal-notifier, (hopefully with $term_id!) - [ -z "$term_id" ] && terminal-notifier -message "$2" -title "$1" >/dev/null || - terminal-notifier -message "$2" -title "$1" -activate "$term_id" -sender "$term_id" >/dev/null - elif hash growlnotify 2>/dev/null; then #osx growl - growlnotify -m "$1" "$2" - elif hash notify-send 2>/dev/null; then #ubuntu gnome! - notify-send "$1" "$2" - elif hash kdialog 2>/dev/null; then #ubuntu kde! - kdialog --title "$1" --passivepopup "$2" 5 - elif hash notifu 2>/dev/null; then #cygwyn support! - notifu /m "$2" /p "$1" - fi -} - - -## Zsh hooks ## - -bgnotify_begin() { - bgnotify_timestamp=$EPOCHSECONDS - bgnotify_lastcmd="${1:-$2}" - bgnotify_windowid=$(currentWindowId) -} - -bgnotify_end() { - didexit=$? - elapsed=$(( EPOCHSECONDS - bgnotify_timestamp )) - past_threshold=$(( elapsed >= bgnotify_threshold )) - if (( bgnotify_timestamp > 0 )) && (( past_threshold )); then - if [ $(currentWindowId) != "$bgnotify_windowid" ]; then - print -n "\a" - bgnotify_formatted "$didexit" "$bgnotify_lastcmd" "$elapsed" - fi - fi - bgnotify_timestamp=0 #reset it to 0! -} - -## only enable if a local (non-ssh) connection -if [ -z "$SSH_CLIENT" ] && [ -z "$SSH_TTY" ]; then - add-zsh-hook preexec bgnotify_begin - add-zsh-hook precmd bgnotify_end -fi diff --git a/zsh/.oh-my-zsh/plugins/boot2docker/README.md b/zsh/.oh-my-zsh/plugins/boot2docker/README.md deleted file mode 100644 index 9551e23..0000000 --- a/zsh/.oh-my-zsh/plugins/boot2docker/README.md +++ /dev/null @@ -1,6 +0,0 @@ -## Boot2docker autocomplete plugin - -- Adds autocomplete options for all boot2docker commands. - - -Maintainer : Manfred Touron ([@moul](https://github.com/moul)) diff --git a/zsh/.oh-my-zsh/plugins/boot2docker/_boot2docker b/zsh/.oh-my-zsh/plugins/boot2docker/_boot2docker deleted file mode 100644 index 3116bd1..0000000 --- a/zsh/.oh-my-zsh/plugins/boot2docker/_boot2docker +++ /dev/null @@ -1,73 +0,0 @@ -#compdef boot2docker - -# Boot2docker autocompletion for oh-my-zsh -# Requires: Boot2docker installed -# Author: Manfred Touron (@moul) - -local -a _1st_arguments -_1st_arguments=( - "init":"Create a new Boot2Docker VM." - "up":"Start VM from any states." - "start":"Start VM from any states." - "boot":"Start VM from any states." - "ssh":"[ssh-command] Login to VM via SSH." - "save":"Suspend VM and save state to disk." - "suspend":"Suspend VM and save state to disk." - "down":"Gracefully shutdown the VM." - "stop":"Gracefully shutdown the VM." - "halt":"Gracefully shutdown the VM." - "restart":"Gracefully reboot the VM." - "poweroff":"Forcefully power off the VM (may corrupt disk image)." - "reset":"Forcefully power cycle the VM (may corrupt disk image)." - "delete":"Delete Boot2Docker VM and its disk image." - "destroy":"Delete Boot2Docker VM and its disk image." - "config":"Show selected profile file settings." - "cfg":"Show selected profile file settings." - "info":"Display detailed information of VM." - "ip":"Display the IP address of the VM's Host-only network." - "socket":"Display the DOCKER_HOST socket to connect to." - "shellinit":"Display the shell command to set up the Docker client." - "status":"Display current state of VM." - "download":"Download Boot2Docker ISO image." - "upgrade":"Upgrade the Boot2Docker ISO image (restart if running)." - "version":"Display version information." -) - -_arguments \ - '(--basevmdk)--basevmdk[Path to VMDK to use as base for persistent partition]' \ - '(--cpus)'{-c,--cpus}'[number of CPUs for boot2docker.]' \ - '(--clobber)--clobber[overwrite Docker client binary on boot2docker upgrade]' \ - '(--dhcp)--dhcp[enable VirtualBox host-only network DHCP.]' \ - '(--dhcpip)--dhcpip[VirtualBox host-only network DHCP server address.]' \ - '(-s --disksize)'{-s,--disksize}'[boot2docker disk image size (in MB).]' \ - '(--dockerport)--dockerport[host Docker port (forward to port 2376 in VM). (deprecated - use with care)]' \ - '(--driver)--driver[hypervisor driver.]' \ - '(--force-upgrade-download)--force-upgrade-download[always download on boot2docker upgrade, never skip.]' \ - '(--hostip)--hostip[VirtualBox host-only network IP address.]' \ - '(--iso)--iso[path to boot2docker ISO image.]' \ - '(--iso-url)--iso-url[/api.github.com/repos/boot2docker/boot2docker/releases": source URL to provision the boot2docker ISO image.]' \ - '(--lowerip)--lowerip[VirtualBox host-only network DHCP lower bound.]' \ - '(--memory)'{-m,--memory}'[virtual machine memory size (in MB).]' \ - '(--netmask)--netmask[VirtualBox host-only network mask.]' \ - '(--no-dummy)--no-dummy[Example parameter for the dummy driver.]' \ - '(--retries)--retries[number of port knocking retries during 'start']' \ - '(--serial)--serial[try serial console to get IP address (experimental)]' \ - '(--serialfile)--serialfile[path to the serial socket/pipe.]' \ - '(--ssh)--ssh[path to SSH client utility.]' \ - '(--ssh-keygen)--ssh-keygen[path to ssh-keygen utility.]' \ - '(--sshkey)--sshkey[path to SSH key to use.]' \ - '(--sshport)--sshport[host SSH port (forward to port 22 in VM).]' \ - '(--upperip)--upperip[VirtualBox host-only network DHCP upper bound.]' \ - '(--vbm)--vbm[path to VirtualBox management utility.]' \ - '(--vbox-share)--vbox-share[(defaults to "/Users=Users" if no shares are specified; use "disable" to explicitly prevent any shares from being created) List of directories to share during "up|start|boot" via VirtualBox Guest Additions, with optional labels]' \ - '(--verbose)'{-v,--verbose}'[display verbose command invocations.]' \ - '(--vm)--vm[virtual machine name.]' \ - '(--waittime)--waittime[Time in milliseconds to wait between port knocking retries during 'start']' \ - '*:: :->subcmds' && return 0 - -#_arguments '*:: :->command' - -if (( CURRENT == 1 )); then - _describe -t commands "boot2docker command" _1st_arguments - return -fi diff --git a/zsh/.oh-my-zsh/plugins/bower/README.md b/zsh/.oh-my-zsh/plugins/bower/README.md deleted file mode 100644 index 8877fbd..0000000 --- a/zsh/.oh-my-zsh/plugins/bower/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# Bower plugin - -This plugin adds completion for [Bower](https://bower.io/) and a few useful aliases for common Bower commands. - -To use it, add `bower` to the plugins array in your zshrc file: - -```zsh -plugins=(... bower) -``` - -## Aliases - -| Alias | Command | Description | -|-------|-----------------|--------------------------------------------------------| -| bi | `bower install` | Installs the project dependencies listed in bower.json | -| bl | `bower list` | List local packages and possible updates | -| bs | `bower search` | Finds all packages or a specific package. | diff --git a/zsh/.oh-my-zsh/plugins/bower/_bower b/zsh/.oh-my-zsh/plugins/bower/_bower deleted file mode 100644 index ae0ca4a..0000000 --- a/zsh/.oh-my-zsh/plugins/bower/_bower +++ /dev/null @@ -1,58 +0,0 @@ - - -# Credits to npm's awesome completion utility. -# -# Bower completion script, based on npm completion script. - -###-begin-bower-completion-### -# -# Installation: bower completion >> ~/.bashrc (or ~/.zshrc) -# Or, maybe: bower completion > /usr/local/etc/bash_completion.d/bower -# - -COMP_WORDBREAKS=${COMP_WORDBREAKS/=/} -COMP_WORDBREAKS=${COMP_WORDBREAKS/@/} -export COMP_WORDBREAKS - -if type complete &>/dev/null; then - _bower_completion () { - local si="$IFS" - IFS=$'\n' COMPREPLY=($(COMP_CWORD="$COMP_CWORD" \ - COMP_LINE="$COMP_LINE" \ - COMP_POINT="$COMP_POINT" \ - bower completion -- "${COMP_WORDS[@]}" \ - 2>/dev/null)) || return $? - IFS="$si" - } - complete -F _bower_completion bower -elif type compdef &>/dev/null; then - _bower_completion() { - si=$IFS - compadd -- $(COMP_CWORD=$((CURRENT-1)) \ - COMP_LINE=$BUFFER \ - COMP_POINT=0 \ - bower completion -- "${words[@]}" \ - 2>/dev/null) - IFS=$si - } - compdef _bower_completion bower -elif type compctl &>/dev/null; then - _bower_completion () { - local cword line point words si - read -Ac words - read -cn cword - let cword-=1 - read -l line - read -ln point - si="$IFS" - IFS=$'\n' reply=($(COMP_CWORD="$cword" \ - COMP_LINE="$line" \ - COMP_POINT="$point" \ - bower completion -- "${words[@]}" \ - 2>/dev/null)) || return $? - IFS="$si" - } - compctl -K _bower_completion bower -fi -###-end-bower-completion-### - diff --git a/zsh/.oh-my-zsh/plugins/bower/bower.plugin.zsh b/zsh/.oh-my-zsh/plugins/bower/bower.plugin.zsh deleted file mode 100644 index 3a40b3a..0000000 --- a/zsh/.oh-my-zsh/plugins/bower/bower.plugin.zsh +++ /dev/null @@ -1,84 +0,0 @@ -alias bi="bower install" -alias bisd="bower install --save-dev" -alias bis="bower install --save" -alias bl="bower list" -alias bs="bower search" - -_bower_installed_packages () { - bower_package_list=$(bower ls --no-color 2>/dev/null| awk 'NR>3{print p}{p=$0}'| cut -d ' ' -f 2|sed 's/#.*//') -} -_bower () -{ - local -a _1st_arguments _no_color _dopts _save_dev _force_lastest _production - local expl - typeset -A opt_args - - _no_color=('--no-color[Do not print colors (available in all commands)]') - - _dopts=( - '(--save)--save[Save installed packages into the project"s bower.json dependencies]' - '(--force)--force[Force fetching remote resources even if a local copy exists on disk]' - ) - - _save_dev=('(--save-dev)--save-dev[Save installed packages into the project"s bower.json devDependencies]') - - _force_lastest=('(--force-latest)--force-latest[Force latest version on conflict]') - - _production=('(--production)--production[Do not install project devDependencies]') - - _1st_arguments=( - 'cache-clean:Clean the Bower cache, or the specified package caches' \ - 'help:Display help information about Bower' \ - 'info:Version info and description of a particular package' \ - 'init:Interactively create a bower.json file' \ - 'install:Install a package locally' \ - 'link:Symlink a package folder' \ - 'lookup:Look up a package URL by name' \ - 'register:Register a package' \ - 'search:Search for a package by name' \ - 'uninstall:Remove a package' \ - 'update:Update a package' \ - {ls,list}:'[List all installed packages]' - ) - _arguments \ - $_no_color \ - '*:: :->subcmds' && return 0 - - if (( CURRENT == 1 )); then - _describe -t commands "bower subcommand" _1st_arguments - return - fi - - case "$words[1]" in - install) - _arguments \ - $_dopts \ - $_save_dev \ - $_force_lastest \ - $_no_color \ - $_production - ;; - update) - _arguments \ - $_dopts \ - $_no_color \ - $_force_lastest - _bower_installed_packages - compadd "$@" $(echo $bower_package_list) - ;; - uninstall) - _arguments \ - $_no_color \ - $_dopts - _bower_installed_packages - compadd "$@" $(echo $bower_package_list) - ;; - *) - _arguments \ - $_no_color \ - ;; - esac - -} - -compdef _bower bower diff --git a/zsh/.oh-my-zsh/plugins/branch/README.md b/zsh/.oh-my-zsh/plugins/branch/README.md deleted file mode 100644 index 56ab8da..0000000 --- a/zsh/.oh-my-zsh/plugins/branch/README.md +++ /dev/null @@ -1,33 +0,0 @@ -# Branch - -Displays the current Git or Mercurial branch fast. - -## Speed test - -### Mercurial - -```shell -$ time hg branch -0.11s user 0.14s system 70% cpu 0.355 total -``` - -### Branch plugin - -```shell -$ time zsh /tmp/branch_prompt_info_test.zsh -0.00s user 0.01s system 78% cpu 0.014 total -``` - -## Usage - -Edit your theme file (eg.: `~/.oh-my-zsh/theme/robbyrussell.zsh-theme`) -adding `$(branch_prompt_info)` in your prompt like this: - -```diff -- PROMPT='${ret_status}%{$fg_bold[green]%}%p %{$fg[cyan]%}%c %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}' -+ PROMPT='${ret_status}%{$fg_bold[green]%}%p %{$fg[cyan]%}%c %{$fg_bold[blue]%}$(git_prompt_info)$(branch_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}' -``` - -## Maintainer - -Victor Torres () diff --git a/zsh/.oh-my-zsh/plugins/branch/branch.plugin.zsh b/zsh/.oh-my-zsh/plugins/branch/branch.plugin.zsh deleted file mode 100644 index 2e5659b..0000000 --- a/zsh/.oh-my-zsh/plugins/branch/branch.plugin.zsh +++ /dev/null @@ -1,31 +0,0 @@ -# Branch: displays the current Git or Mercurial branch fast. -# Victor Torres -# Oct 2, 2015 - -function branch_prompt_info() { - # Defines path as current directory - local current_dir=$PWD - # While current path is not root path - while [[ $current_dir != '/' ]] - do - # Git repository - if [[ -d "${current_dir}/.git" ]] - then - echo '±' ${"$(<"$current_dir/.git/HEAD")"##*/} - return; - fi - # Mercurial repository - if [[ -d "${current_dir}/.hg" ]] - then - if [[ -f "$current_dir/.hg/branch" ]] - then - echo '☿' $(<"$current_dir/.hg/branch") - else - echo '☿ default' - fi - return; - fi - # Defines path as parent directory and keeps looking for :) - current_dir="${current_dir:h}" - done -} diff --git a/zsh/.oh-my-zsh/plugins/brew/README.md b/zsh/.oh-my-zsh/plugins/brew/README.md deleted file mode 100644 index bf952bf..0000000 --- a/zsh/.oh-my-zsh/plugins/brew/README.md +++ /dev/null @@ -1,30 +0,0 @@ -# brew plugin - -The plugin adds several aliases for common [brew](https://brew.sh) commands. - -To use it, add `brew` to the plugins array of your zshrc file: - -```zsh -plugins=(... brew) -``` - -## Aliases - -| Alias | Command | Description | -|----------|---------------------------------------|---------------------------------------------------------------------| -| `brewp` | `brew pin` | Pin a specified formula so that it's not upgraded. | -| `brews` | `brew list -1` | List installed formulae or the installed files for a given formula. | -| `brewsp` | `brew list --pinned` | List pinned formulae, or show the version of a given formula. | -| `bubo` | `brew update && brew outdated` | Update Homebrew data, then list outdated formulae and casks. | -| `bubc` | `brew upgrade && brew cleanup` | Upgrade outdated formulae and casks, then run cleanup. | -| `bubu` | `bubo && bubc` | Do the last two operations above. | -| `buf` | `brew upgrade --formula` | Upgrade only formulas (not casks). | -| `bcubo` | `brew update && brew outdated --cask` | Update Homebrew data, then list outdated casks. | -| `bcubc` | `brew upgrade --cask && brew cleanup` | Update outdated casks, then run cleanup. | - -## Completion - -With the release of Homebrew 1.0, they decided to bundle the zsh completion as part of the -brew installation, so we no longer ship it with the brew plugin; now it only has brew -aliases. If you find that brew completion no longer works, make sure you have your Homebrew -installation fully up to date. diff --git a/zsh/.oh-my-zsh/plugins/brew/brew.plugin.zsh b/zsh/.oh-my-zsh/plugins/brew/brew.plugin.zsh deleted file mode 100644 index 532dd9b..0000000 --- a/zsh/.oh-my-zsh/plugins/brew/brew.plugin.zsh +++ /dev/null @@ -1,9 +0,0 @@ -alias brewp='brew pin' -alias brews='brew list -1' -alias brewsp='brew list --pinned' -alias bubo='brew update && brew outdated' -alias bubc='brew upgrade && brew cleanup' -alias bubu='bubo && bubc' -alias buf='brew upgrade --formula' -alias bcubo='brew update && brew outdated --cask' -alias bcubc='brew upgrade --cask && brew cleanup' diff --git a/zsh/.oh-my-zsh/plugins/bundler/README.md b/zsh/.oh-my-zsh/plugins/bundler/README.md deleted file mode 100644 index 7b79cbc..0000000 --- a/zsh/.oh-my-zsh/plugins/bundler/README.md +++ /dev/null @@ -1,74 +0,0 @@ -# Bundler - -This plugin adds completion for basic bundler commands, as well as aliases and helper functions for -an easier experience with bundler. - -To use it, add `bundler` to the plugins array in your zshrc file: - -```zsh -plugins=(... bundler) -``` - -## Aliases - -| Alias | Command | Description | -|--------|--------------------------------------|------------------------------------------------------------------------------------------| -| `ba` | `bundle add` | Add gem to the Gemfile and run bundle install | -| `bck` | `bundle check` | Verifies if dependencies are satisfied by installed gems | -| `bcn` | `bundle clean` | Cleans up unused gems in your bundler directory | -| `be` | `bundle exec` | Execute a command in the context of the bundle | -| `bi` | `bundle install --jobs=` | Install the dependencies specified in your Gemfile (using all cores in bundler >= 1.4.0) | -| `bl` | `bundle list` | List all the gems in the bundle | -| `bo` | `bundle open` | Opens the source directory for a gem in your bundle | -| `bout` | `bundle outdated` | List installed gems with newer versions available | -| `bp` | `bundle package` | Package your needed .gem files into your application | -| `bu` | `bundle update` | Update your gems to the latest available versions | - -## Gem wrapper - -The plugin adds a wrapper for common gems, which: - -- Looks for a binstub under `./bin/` and executes it if present. -- Calls `bundle exec ` otherwise. - -Common gems wrapped by default (by name of the executable): - -`annotate`, `cap`, `capify`, `cucumber`, `foodcritic`, `guard`, `hanami`, `irb`, `jekyll`, `kitchen`, `knife`, `middleman`, `nanoc`, `pry`, `puma`, `rackup`, `rainbows`, `rake`, `rspec`, `rubocop`, `shotgun`, `sidekiq`, `spec`, `spork`, `spring`, `strainer`, `tailor`, `taps`, `thin`, `thor`, `unicorn` and `unicorn_rails`. - -### Settings - -You can add or remove gems from the list of wrapped commands. -Please **use the exact name of the executable** and not the gem name. - -#### Include gems to be wrapped (`BUNDLED_COMMANDS`) - -Add this before the plugin list in your `.zshrc`: - -```sh -BUNDLED_COMMANDS=(rubocop) -plugins=(... bundler ...) -``` - -This will add the wrapper for the `rubocop` gem (i.e. the executable). - -#### Exclude gems from being wrapped (`UNBUNDLED_COMMANDS`) - -Add this before the plugin list in your `.zshrc`: - -```sh -UNBUNDLED_COMMANDS=(foreman spin) -plugins=(... bundler ...) -``` - -This will exclude the `foreman` and `spin` gems (i.e. their executable) from being wrapped. - -### Excluded gems - -These gems should not be called with `bundle exec`. Please see [issue #2923](https://github.com/ohmyzsh/ohmyzsh/pull/2923) on GitHub for clarification: - -- `berks` -- `foreman` -- `mailcatcher` -- `rails` -- `ruby` -- `spin` diff --git a/zsh/.oh-my-zsh/plugins/bundler/_bundler b/zsh/.oh-my-zsh/plugins/bundler/_bundler deleted file mode 100644 index ba647ab..0000000 --- a/zsh/.oh-my-zsh/plugins/bundler/_bundler +++ /dev/null @@ -1,104 +0,0 @@ -#compdef bundle - -local curcontext="$curcontext" state line _gems _opts ret=1 - -_arguments -C -A "-v" -A "--version" \ - '(- 1 *)'{-v,--version}'[display version information]' \ - '1: :->cmds' \ - '*:: :->args' && ret=0 - -case $state in - cmds) - _values "bundle command" \ - "install[Install the gems specified by the Gemfile or Gemfile.lock]" \ - "update[Update dependencies to their latest versions]" \ - "package[Package the .gem files required by your application]" \ - "exec[Execute a script in the context of the current bundle]" \ - "config[Specify and read configuration options for bundler]" \ - "check[Determine whether the requirements for your application are installed]" \ - "list[Show all of the gems in the current bundle]" \ - "show[Show the source location of a particular gem in the bundle]" \ - "outdated[Show all of the outdated gems in the current bundle]" \ - "console[Start an IRB session in the context of the current bundle]" \ - "open[Open an installed gem in the editor]" \ - "viz[Generate a visual representation of your dependencies]" \ - "init[Generate a simple Gemfile, placed in the current directory]" \ - "gem[Create a simple gem, suitable for development with bundler]" \ - "platform[Displays platform compatibility information]" \ - "clean[Cleans up unused gems in your bundler directory]" \ - "help[Describe available tasks or one specific task]" - ret=0 - ;; - args) - case $line[1] in - help) - _values 'commands' \ - 'install' \ - 'update' \ - 'package' \ - 'exec' \ - 'config' \ - 'check' \ - 'list' \ - 'show' \ - 'outdated' \ - 'console' \ - 'open' \ - 'viz' \ - 'init' \ - 'gem' \ - 'platform' \ - 'help' && ret=0 - ;; - install) - _arguments \ - '(--no-color)--no-color[disable colorization in output]' \ - '(--local)--local[do not attempt to connect to rubygems.org]' \ - '(--quiet)--quiet[only output warnings and errors]' \ - '(--gemfile)--gemfile=-[use the specified gemfile instead of Gemfile]:gemfile' \ - '(--system)--system[install to the system location]' \ - '(--deployment)--deployment[install using defaults tuned for deployment environments]' \ - '(--frozen)--frozen[do not allow the Gemfile.lock to be updated after this install]' \ - '(--path)--path=-[specify a different path than the system default]:path:_files' \ - '(--binstubs)--binstubs=-[generate bin stubs for bundled gems to ./bin]:directory:_files' \ - '(--without)--without=-[exclude gems that are part of the specified named group]:groups' - ret=0 - ;; - exec) - _normal && ret=0 - ;; - clean) - _arguments \ - '(--force)--force[forces clean even if --path is not set]' \ - '(--dry-run)--dry-run[only print out changes, do not actually clean gems]' \ - '(--no-color)--no-color[Disable colorization in output]' \ - '(--verbose)--verbose[Enable verbose output mode]' - ret=0 - ;; - outdated) - _arguments \ - '(--pre)--pre[Check for newer pre-release gems]' \ - '(--source)--source[Check against a specific source]' \ - '(--local)--local[Do not attempt to fetch gems remotely and use the gem cache instead]' \ - '(--no-color)--no-color[Disable colorization in output]' \ - '(--verbose)--verbose[Enable verbose output mode]' - ret=0 - ;; - (open|show) - _gems=( $(bundle show 2> /dev/null | sed -e '/^ \*/!d; s/^ \* \([^ ]*\) .*/\1/') ) - if [[ $_gems != "" ]]; then - _values 'gems' $_gems && ret=0 - fi - ;; - *) - _opts=( $(bundle help $line[1] | sed -e '/^ \[-/!d; s/^ \[\(-[^=]*\)=.*/\1/') ) - _opts+=( $(bundle help $line[1] | sed -e '/^ -/!d; s/^ \(-.\), \[\(-[^=]*\)=.*/\1 \2/') ) - if [[ $_opts != "" ]]; then - _values 'options' $_opts && ret=0 - fi - ;; - esac - ;; -esac - -return ret diff --git a/zsh/.oh-my-zsh/plugins/bundler/bundler.plugin.zsh b/zsh/.oh-my-zsh/plugins/bundler/bundler.plugin.zsh deleted file mode 100644 index 6293dc2..0000000 --- a/zsh/.oh-my-zsh/plugins/bundler/bundler.plugin.zsh +++ /dev/null @@ -1,130 +0,0 @@ -## Aliases - -alias ba="bundle add" -alias bck="bundle check" -alias bcn="bundle clean" -alias be="bundle exec" -alias bi="bundle_install" -alias bl="bundle list" -alias bo="bundle open" -alias bout="bundle outdated" -alias bp="bundle package" -alias bu="bundle update" - -## Functions - -bundle_install() { - # Bail out if bundler is not installed - if (( ! $+commands[bundle] )); then - echo "Bundler is not installed" - return 1 - fi - - # Bail out if not in a bundled project - if ! _within-bundled-project; then - echo "Can't 'bundle install' outside a bundled project" - return 1 - fi - - # Check the bundler version is at least 1.4.0 - autoload -Uz is-at-least - local bundler_version=$(bundle version | cut -d' ' -f3) - if ! is-at-least 1.4.0 "$bundler_version"; then - bundle install "$@" - return $? - fi - - # If bundler is at least 1.4.0, use all the CPU cores to bundle install - if [[ "$OSTYPE" = (darwin|freebsd)* ]]; then - local cores_num="$(sysctl -n hw.ncpu)" - else - local cores_num="$(nproc)" - fi - bundle install --jobs="$cores_num" "$@" -} - -## Gem wrapper - -bundled_commands=( - annotate - cap - capify - cucumber - foodcritic - guard - hanami - irb - jekyll - kitchen - knife - middleman - nanoc - pry - puma - rackup - rainbows - rake - rspec - rubocop - shotgun - sidekiq - spec - spork - spring - strainer - tailor - taps - thin - thor - unicorn - unicorn_rails -) - -# Remove $UNBUNDLED_COMMANDS from the bundled_commands list -for cmd in $UNBUNDLED_COMMANDS; do - bundled_commands=(${bundled_commands#$cmd}); -done - -# Add $BUNDLED_COMMANDS to the bundled_commands list -for cmd in $BUNDLED_COMMANDS; do - bundled_commands+=($cmd); -done - -# Check if in the root or a subdirectory of a bundled project -_within-bundled-project() { - local check_dir="$PWD" - while [[ "$check_dir" != "/" ]]; do - if [[ -f "$check_dir/Gemfile" || -f "$check_dir/gems.rb" ]]; then - return 0 - fi - check_dir="${check_dir:h}" - done - return 1 -} - -_run-with-bundler() { - if (( ! $+commands[bundle] )) || ! _within-bundled-project; then - "$@" - return $? - fi - - if [[ -f "./bin/${1}" ]]; then - ./bin/${^^@} - else - bundle exec "$@" - fi -} - -for cmd in $bundled_commands; do - # Create wrappers for bundled and unbundled execution - eval "function unbundled_$cmd () { \"$cmd\" \"\$@\"; }" - eval "function bundled_$cmd () { _run-with-bundler \"$cmd\" \"\$@\"; }" - alias "$cmd"="bundled_$cmd" - - # Bind completion function to wrapped gem if available - if (( $+functions[_$cmd] )); then - compdef "_$cmd" "bundled_$cmd"="$cmd" - fi -done - -unset cmd bundled_commands diff --git a/zsh/.oh-my-zsh/plugins/cabal/README.md b/zsh/.oh-my-zsh/plugins/cabal/README.md deleted file mode 100644 index b1106c4..0000000 --- a/zsh/.oh-my-zsh/plugins/cabal/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# Cabal - -This plugin provides completion for [Cabal](https://www.haskell.org/cabal/), a build tool for Haskell. It -also provides a function `cabal_sandbox_info` that prints whether the current working directory is in a sandbox. - -To use it, add cabal to the plugins array of your zshrc file: -``` -plugins=(... cabal) -``` diff --git a/zsh/.oh-my-zsh/plugins/cabal/cabal.plugin.zsh b/zsh/.oh-my-zsh/plugins/cabal/cabal.plugin.zsh deleted file mode 100644 index a9a05b0..0000000 --- a/zsh/.oh-my-zsh/plugins/cabal/cabal.plugin.zsh +++ /dev/null @@ -1,93 +0,0 @@ -function cabal_sandbox_info() { - cabal_files=(*.cabal(N)) - if [ $#cabal_files -gt 0 ]; then - if [ -f cabal.sandbox.config ]; then - echo "%{$fg[green]%}sandboxed%{$reset_color%}" - else - echo "%{$fg[red]%}not sandboxed%{$reset_color%}" - fi - fi -} - -function _cabal_commands() { - local ret=1 state - _arguments ':subcommand:->subcommand' && ret=0 - - case $state in - subcommand) - subcommands=( - "bench:Run the benchmark, if any (configure with UserHooks)" - "build:Compile all targets or specific target." - "check:Check the package for common mistakes" - "clean:Clean up after a build" - "copy:Copy the files into the install locations" - "configure:Prepare to build the package" - "exec:Run a command with the cabal environment" - "fetch:Downloads packages for later installation" - "freeze:Freeze dependencies." - "get:Gets a package's source code" - "haddock:Generate Haddock HTML documentation" - "help:Help about commands" - "hscolour:Generate HsColour colourised code, in HTML format" - "info:Display detailed information about a particular package" - "init:Interactively create a .cabal file" - "install:Installs a list of packages" - "list:List packages matching a search string" - "register:Register this package with the compiler" - "repl:Open an interpreter session for the given target" - "report:Upload build reports to a remote server" - "run:Runs the compiled executable" - "sandbox:Create/modify/delete a sandbox" - "sdist:Generate a source distribution file (.tar.gz)" - "test:Run the test suite, if any (configure with UserHooks)" - "unpack:Unpacks packages for user inspection" - "update:Updates list of known packages" - "upload:Uploads source packages to Hackage" - ) - _describe -t subcommands 'cabal subcommands' subcommands && ret=0 - esac - - return ret -} - -compdef _cabal_commands cabal - -function _cab_commands() { - local ret=1 state - _arguments ':subcommand:->subcommand' && ret=0 - - case $state in - subcommand) - subcommands=( - "sync:Fetch the latest package index" - "install:Install packages" - "uninstall:Uninstall packages" - "installed:List installed packages" - "configure:Configure a cabal package" - "build:Build a cabal package" - "clean:Clean up a build directory" - "outdated:Display outdated packages" - "info:Display information of a package" - "sdist:Make tar.gz for source distribution" - "upload:Uploading tar.gz to HackageDB" - "get:Untar a package in the current directory" - "deps:Show dependencies of this package" - "revdeps:Show reverse dependencies of this package" - "check:Check consistency of packages" - "genpaths:Generate Paths_.hs" - "search:Search available packages by package name" - "add:Add a source directory" - "test:Run tests" - "bench:Run benchmarks" - "doc:Generate manuals" - "ghci:Run GHCi (with a sandbox)" - "init:Initialize a sandbox" - "help:Display the help message of the command" - ) - _describe -t subcommands 'cab subcommands' subcommands && ret=0 - esac - - return ret -} - -command -v cab >/dev/null 2>&1 && { compdef _cab_commands cab } diff --git a/zsh/.oh-my-zsh/plugins/cake/README.md b/zsh/.oh-my-zsh/plugins/cake/README.md deleted file mode 100644 index 2c2a280..0000000 --- a/zsh/.oh-my-zsh/plugins/cake/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# Cake - -This plugin provides completion for [CakePHP](https://cakephp.org/). - -To use it add cake to the plugins array in your zshrc file. - -```bash -plugins=(... cake) -``` - -## Note - -This plugin generates a cache file of the cake tasks found, named `.cake_task_cache`, in the current working directory. -It is regenerated when the Cakefile is newer than the cache file. It is advised that you add the cake file to your -`.gitignore` files. diff --git a/zsh/.oh-my-zsh/plugins/cake/cake.plugin.zsh b/zsh/.oh-my-zsh/plugins/cake/cake.plugin.zsh deleted file mode 100644 index 2370df9..0000000 --- a/zsh/.oh-my-zsh/plugins/cake/cake.plugin.zsh +++ /dev/null @@ -1,33 +0,0 @@ -# Set this to 1 if you want to cache the tasks -_cake_cache_task_list=1 - -# Cache filename -_cake_task_cache_file='.cake_task_cache' - -_cake_get_target_list () { - cake | grep '^cake ' | sed -e "s/cake \([^ ]*\) .*/\1/" | grep -v '^$' -} - -_cake_does_target_list_need_generating () { - - if [ ${_cake_cache_task_list} -eq 0 ]; then - return 1; - fi - - [ ! -f ${_cake_task_cache_file} ] && return 0; - [ Cakefile -nt ${_cake_task_cache_file} ] && return 0; - return 1; -} - -_cake () { - if [ -f Cakefile ]; then - if _cake_does_target_list_need_generating; then - _cake_get_target_list > ${_cake_task_cache_file} - compadd `cat ${_cake_task_cache_file}` - else - compadd `_cake_get_target_list` - fi - fi -} - -compdef _cake cake diff --git a/zsh/.oh-my-zsh/plugins/cakephp3/README.md b/zsh/.oh-my-zsh/plugins/cakephp3/README.md deleted file mode 100644 index 7e8f664..0000000 --- a/zsh/.oh-my-zsh/plugins/cakephp3/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# cakephp3 plugin - -The plugin adds aliases and autocompletion for [cakephp3](https://book.cakephp.org/3.0/en/index.html). - -To use it, add `cakephp3` to the plugins array of your zshrc file: -``` -plugins=(... cakephp3) -``` - -## Aliases - -| Alias | Command | -|-----------|-------------------------------| -| c3 | `bin/cake` | -| c3cache | `bin/cake orm_cache clear` | -| c3migrate | `bin/cake migrations migrate` | diff --git a/zsh/.oh-my-zsh/plugins/cakephp3/cakephp3.plugin.zsh b/zsh/.oh-my-zsh/plugins/cakephp3/cakephp3.plugin.zsh deleted file mode 100644 index dbfbeba..0000000 --- a/zsh/.oh-my-zsh/plugins/cakephp3/cakephp3.plugin.zsh +++ /dev/null @@ -1,38 +0,0 @@ -# CakePHP 3 basic command completion -_cakephp3_get_command_list () { - bin/cake Completion commands -} - -_cakephp3_get_sub_command_list () { - bin/cake Completion subcommands ${words[2]} -} - -_cakephp3_get_3rd_argument () { - bin/cake ${words[2]} ${words[3]} | \grep '\-\ '| \awk '{print $2}' -} - -_cakephp3 () { - local -a has3rdargument - has3rdargument=("all" "controller" "fixture" "model" "template") - if [ -f bin/cake ]; then - if (( CURRENT == 2 )); then - compadd $(_cakephp3_get_command_list) - fi - if (( CURRENT == 3 )); then - compadd $(_cakephp3_get_sub_command_list) - fi - if (( CURRENT == 4 )); then - if [[ ${has3rdargument[(i)${words[3]}]} -le ${#has3rdargument} ]]; then - compadd $(_cakephp3_get_3rd_argument) - fi - fi - fi -} - -compdef _cakephp3 bin/cake -compdef _cakephp3 cake - -#Alias -alias c3='bin/cake' -alias c3cache='bin/cake orm_cache clear' -alias c3migrate='bin/cake migrations migrate' diff --git a/zsh/.oh-my-zsh/plugins/capistrano/README.md b/zsh/.oh-my-zsh/plugins/capistrano/README.md deleted file mode 100644 index 335b794..0000000 --- a/zsh/.oh-my-zsh/plugins/capistrano/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# Capistrano - -This plugin provides completion for [Capistrano](https://capistranorb.com/). - -To use it add capistrano to the plugins array in your zshrc file. - -```bash -plugins=(... capistrano) -``` - -For a working completion use the `capit` command instead of `cap`, because cap is a -[reserved word in zsh](http://zsh.sourceforge.net/Doc/Release/Zsh-Modules.html#The-zsh_002fcap-Module). - -`capit` automatically runs cap with bundler if a Gemfile is found. diff --git a/zsh/.oh-my-zsh/plugins/capistrano/_capistrano b/zsh/.oh-my-zsh/plugins/capistrano/_capistrano deleted file mode 100644 index a79e47b..0000000 --- a/zsh/.oh-my-zsh/plugins/capistrano/_capistrano +++ /dev/null @@ -1,49 +0,0 @@ -#compdef capit -#autoload - -# Added `capit` because `cap` is a reserved word. `cap` completion doesn't work. -# http://zsh.sourceforge.net/Doc/Release/Zsh-Modules.html#The-zsh_002fcap-Module - -local curcontext="$curcontext" state line ret=1 -local -a _configs - -_arguments -C \ - '1: :->cmds' \ - '2:: :->args' && ret=0 - -_cap_tasks() { - if [[ -f config/deploy.rb || -f Capfile ]]; then - if [[ ! -f .cap_tasks~ ]]; then - capit --tasks | sed 's/\(\[\)\(.*\)\(\]\)/\2:/' | awk '{command=$2; $1=$2=$3=""; gsub(/^[ \t\r\n]+/, "", $0); gsub(":", "\\:", command); print command"["$0"]"}' > .cap_tasks~ - fi - - OLD_IFS=$IFS - IFS=$'\n' - _values 'cap commands' $(< .cap_tasks~) - IFS=$OLD_IFS - # zmodload zsh/mapfile - # _values ${(f)mapfile[.cap_tasks~]} - fi -} - -_cap_stages() { - compadd $(find config/deploy -name \*.rb | cut -d/ -f3 | sed s:.rb::g) -} - -case $state in - cmds) - # check if it uses multistage - if [[ -d config/deploy ]]; then - _cap_stages - else - _cap_tasks - fi - ret=0 - ;; - args) - _cap_tasks - ret=0 - ;; -esac - -return ret diff --git a/zsh/.oh-my-zsh/plugins/capistrano/capistrano.plugin.zsh b/zsh/.oh-my-zsh/plugins/capistrano/capistrano.plugin.zsh deleted file mode 100644 index 8195728..0000000 --- a/zsh/.oh-my-zsh/plugins/capistrano/capistrano.plugin.zsh +++ /dev/null @@ -1,11 +0,0 @@ -# Added `capit` because `cap` is a reserved word. `cap` completion doesn't work. -# http://zsh.sourceforge.net/Doc/Release/Zsh-Modules.html#The-zsh_002fcap-Module - -function capit() { - if [ -f Gemfile ] - then - bundle exec cap $* - else - cap $* - fi -} diff --git a/zsh/.oh-my-zsh/plugins/cargo/README.md b/zsh/.oh-my-zsh/plugins/cargo/README.md deleted file mode 100644 index 31bae4e..0000000 --- a/zsh/.oh-my-zsh/plugins/cargo/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# cargo - -This plugin adds completion for the Rust build tool [`Cargo`](https://github.com/rust-lang/cargo). - -To use it, add `cargo` to the plugins array in your zshrc file: - -```zsh -plugins=(... cargo) -``` - -Updated on March 3rd, 2019, from [Cargo 0.34.0](https://github.com/rust-lang/cargo/releases/tag/0.34.0). diff --git a/zsh/.oh-my-zsh/plugins/cargo/cargo.plugin.zsh b/zsh/.oh-my-zsh/plugins/cargo/cargo.plugin.zsh deleted file mode 100644 index 7082d2d..0000000 --- a/zsh/.oh-my-zsh/plugins/cargo/cargo.plugin.zsh +++ /dev/null @@ -1,23 +0,0 @@ -if (( $+commands[rustup] && $+commands[cargo] )); then - # remove old generated completion file - command rm -f "${0:A:h}/_cargo" - - # generate new completion file - ver="$(cargo --version)" - ver_file="$ZSH_CACHE_DIR/cargo_version" - comp_file="$ZSH_CACHE_DIR/completions/_cargo" - - mkdir -p "${comp_file:h}" - (( ${fpath[(Ie)${comp_file:h}]} )) || fpath=("${comp_file:h}" $fpath) - - if [[ ! -f "$comp_file" || ! -f "$ver_file" || "$ver" != "$(< "$ver_file")" ]]; then - rustup completions zsh cargo >| "$comp_file" - echo "$ver" >| "$ver_file" - fi - - declare -A _comps - autoload -Uz _cargo - _comps[cargo]=_cargo - - unset ver ver_file comp_file -fi diff --git a/zsh/.oh-my-zsh/plugins/cask/README.md b/zsh/.oh-my-zsh/plugins/cask/README.md deleted file mode 100644 index e1335c1..0000000 --- a/zsh/.oh-my-zsh/plugins/cask/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# Cask plugin - -[Cask](https://github.com/cask/cask) is a project management tool for Emacs that helps -automate the package development cycle; development, dependencies, testing, building, -packaging and more. - -This plugin loads `cask` completion from non-standard locations, such as if installed -via Homebrew or others. To enable it, add `cask` to your plugins array: - -```zsh -plugins=(... cask) -``` - -Make sure you have the `cask` directory in your `$PATH` before loading Oh My Zsh, -otherwise you'll get a "command not found" error. diff --git a/zsh/.oh-my-zsh/plugins/cask/cask.plugin.zsh b/zsh/.oh-my-zsh/plugins/cask/cask.plugin.zsh deleted file mode 100644 index 29120b3..0000000 --- a/zsh/.oh-my-zsh/plugins/cask/cask.plugin.zsh +++ /dev/null @@ -1,26 +0,0 @@ -() { - emulate -L zsh - - if ! (( $+commands[cask] )); then - print "zsh cask plugin: cask command not found" >&2 - return - fi - - cask_base=${commands[cask]:h:h} - - # Plain cask installation location (for Cask 0.7.2 and earlier) - comp_files=($cask_base/etc/cask_completion.zsh) - - # Mac Homebrew installs the completion in a different location - if (( $+commands[brew] )); then - comp_files+=($(brew --prefix)/share/zsh/site-functions/cask_completion.zsh) - fi - - # Load first found file - for f in $comp_files; do - if [[ -f "$f" ]]; then - source "$f" - break - fi - done -} diff --git a/zsh/.oh-my-zsh/plugins/catimg/README.md b/zsh/.oh-my-zsh/plugins/catimg/README.md deleted file mode 100644 index 8f26880..0000000 --- a/zsh/.oh-my-zsh/plugins/catimg/README.md +++ /dev/null @@ -1,23 +0,0 @@ -# catimg - -Plugin for displaying images on the terminal using the the `catimg.sh` script provided by [posva](https://github.com/posva/catimg) - -To use it, add `catimg` to the plugins array in your zshrc file: - -```zsh -plugins=(... catimg) -``` - -## Requirements - -- `convert` (ImageMagick) - -## Functions - -| Function | Description | -| -------- | ---------------------------------------- | -| `catimg` | Displays the given image on the terminal | - -## Usage examples - -[![asciicast](https://asciinema.org/a/204702.png)](https://asciinema.org/a/204702) diff --git a/zsh/.oh-my-zsh/plugins/catimg/catimg.plugin.zsh b/zsh/.oh-my-zsh/plugins/catimg/catimg.plugin.zsh deleted file mode 100644 index ca46444..0000000 --- a/zsh/.oh-my-zsh/plugins/catimg/catimg.plugin.zsh +++ /dev/null @@ -1,17 +0,0 @@ -################################################################################ -# catimg script by Eduardo San Martin Morote aka Posva # -# https://posva.net # -# # -# Ouput the content of an image to the stdout using the 256 colors of the # -# terminal. # -# GitHub: https://github.com/posva/catimg # -################################################################################ - - -function catimg() { - if [[ -x `which convert` ]]; then - zsh $ZSH/plugins/catimg/catimg.sh $@ - else - echo "catimg need convert (ImageMagick) to work)" - fi -} diff --git a/zsh/.oh-my-zsh/plugins/catimg/catimg.sh b/zsh/.oh-my-zsh/plugins/catimg/catimg.sh deleted file mode 100644 index 713a032..0000000 --- a/zsh/.oh-my-zsh/plugins/catimg/catimg.sh +++ /dev/null @@ -1,88 +0,0 @@ -################################################################################ -# catimg script by Eduardo San Martin Morote aka Posva # -# https://posva.net # -# # -# Ouput the content of an image to the stdout using the 256 colors of the # -# terminal. # -# GitHub: https://github.com/posva/catimg # -################################################################################ - -function help() { - echo "Usage catimg [-h] [-w width] [-c char] img" - echo "By default char is \" \" and w is the terminal width" -} - -# VARIABLES -COLOR_FILE=$(dirname $0)/colors.png -CHAR=" " - -WIDTH="" -IMG="" - -while getopts qw:c:h opt; do - case "$opt" in - w) WIDTH="$OPTARG" ;; - c) CHAR="$OPTARG" ;; - h) help; exit ;; - *) help ; exit 1;; - esac - done - -while [ "$1" ]; do - IMG="$1" - shift -done - -if [ "$IMG" = "" -o ! -f "$IMG" ]; then - help - exit 1 -fi - -if [ ! "$WIDTH" ]; then - COLS=$(expr $(tput cols) "/" $(echo -n "$CHAR" | wc -c)) -else - COLS=$(expr $WIDTH "/" $(echo -n "$CHAR" | wc -c)) -fi -WIDTH=$(convert "$IMG" -print "%w\n" /dev/null) -if [ "$WIDTH" -gt "$COLS" ]; then - WIDTH=$COLS -fi - -REMAP="" -if convert "$IMG" -resize $COLS\> +dither -remap $COLOR_FILE /dev/null ; then - REMAP="-remap $COLOR_FILE" -else - echo "The version of convert is too old, don't expect good results :(" >&2 - #convert "$IMG" -colors 256 PNG8:tmp.png - #IMG="tmp.png" -fi - -# Display the image -I=0 -convert "$IMG" -resize $COLS\> +dither `echo $REMAP` txt:- 2>/dev/null | -sed -e 's/.*none.*/NO NO NO/g' -e '1d;s/^.*(\(.*\)[,)].*$/\1/g;y/,/ /' | -while read R G B f; do - if [ ! "$R" = "NO" ]; then - if [ "$R" -eq "$G" -a "$G" -eq "$B" ]; then - (( - I++, - IDX = 232 + R * 23 / 255 - )) - else - (( - I++, - IDX = 16 - + R * 5 / 255 * 36 - + G * 5 / 255 * 6 - + B * 5 / 255 - )) - fi - #echo "$R,$G,$B: $IDX" - echo -ne "\e[48;5;${IDX}m${CHAR}" - else - (( I++ )) - echo -ne "\e[0m${CHAR}" - fi - # New lines - (( $I % $WIDTH )) || echo -e "\e[0m" -done diff --git a/zsh/.oh-my-zsh/plugins/catimg/colors.png b/zsh/.oh-my-zsh/plugins/catimg/colors.png deleted file mode 100644 index 5f2c812..0000000 Binary files a/zsh/.oh-my-zsh/plugins/catimg/colors.png and /dev/null differ diff --git a/zsh/.oh-my-zsh/plugins/celery/README.md b/zsh/.oh-my-zsh/plugins/celery/README.md deleted file mode 100644 index d2597f7..0000000 --- a/zsh/.oh-my-zsh/plugins/celery/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# Celery - -This plugin provides completion for [Celery](http://www.celeryproject.org/). - -To use it add celery to the plugins array in your zshrc file. - -```bash -plugins=(... celery) -``` diff --git a/zsh/.oh-my-zsh/plugins/celery/_celery b/zsh/.oh-my-zsh/plugins/celery/_celery deleted file mode 100644 index 63af9fa..0000000 --- a/zsh/.oh-my-zsh/plugins/celery/_celery +++ /dev/null @@ -1,129 +0,0 @@ -#compdef celery -#autoload - -#celery zsh completion - -_celery () { -local -a _1st_arguments ifargs dopts controlargs - -typeset -A opt_args - -_1st_arguments=('worker' 'events' 'beat' 'shell' 'multi' 'amqp' 'status' 'inspect' \ - 'control' 'purge' 'list' 'migrate' 'call' 'result' 'report') -ifargs=('--app=' '--broker=' '--loader=' '--config=' '--version') -dopts=('--detach' '--umask=' '--gid=' '--uid=' '--pidfile=' '--logfile=' '--loglevel=') -controlargs=('--timeout' '--destination') -_arguments \ - '(-A --app=)'{-A,--app}'[app instance to use (e.g. module.attr_name):APP]' \ - '(-b --broker=)'{-b,--broker}'[url to broker. default is "amqp://guest@localhost//":BROKER]' \ - '(--loader)--loader[name of custom loader class to use.:LOADER]' \ - '(--config)--config[Name of the configuration module:CONFIG]' \ - '(--workdir)--workdir[Optional directory to change to after detaching.:WORKING_DIRECTORY]' \ - '(-q --quiet)'{-q,--quiet}'[Don"t show as much output.]' \ - '(-C --no-color)'{-C,--no-color}'[Don"t display colors.]' \ - '(--version)--version[show program"s version number and exit]' \ - '(- : *)'{-h,--help}'[show this help message and exit]' \ - '*:: :->subcmds' && return 0 - -if (( CURRENT == 1 )); then - _describe -t commands "celery subcommand" _1st_arguments - return -fi - -case "$words[1]" in - worker) - _arguments \ - '(-C --concurrency=)'{-C,--concurrency=}'[Number of child processes processing the queue. The default is the number of CPUs.]' \ - '(--pool)--pool=:::(processes eventlet gevent threads solo)' \ - '(--purge --discard)'{--discard,--purge}'[Purges all waiting tasks before the daemon is started.]' \ - '(-f --logfile=)'{-f,--logfile=}'[Path to log file. If no logfile is specified, stderr is used.]' \ - '(--loglevel=)--loglevel=:::(critical error warning info debug)' \ - '(-N --hostname=)'{-N,--hostname=}'[Set custom hostname, e.g. "foo.example.com".]' \ - '(-B --beat)'{-B,--beat}'[Also run the celerybeat periodic task scheduler.]' \ - '(-s --schedule=)'{-s,--schedule=}'[Path to the schedule database if running with the -B option. Defaults to celerybeat-schedule.]' \ - '(-S --statedb=)'{-S,--statedb=}'[Path to the state database.Default: None]' \ - '(-E --events)'{-E,--events}'[Send events that can be captured by monitors like celeryev, celerymon, and others.]' \ - '(--time-limit=)--time-limit=[nables a hard time limit (in seconds int/float) for tasks]' \ - '(--soft-time-limit=)--soft-time-limit=[Enables a soft time limit (in seconds int/float) for tasks]' \ - '(--maxtasksperchild=)--maxtasksperchild=[Maximum number of tasks a pool worker can execute before it"s terminated and replaced by a new worker.]' \ - '(-Q --queues=)'{-Q,--queues=}'[List of queues to enable for this worker, separated by comma. By default all configured queues are enabled.]' \ - '(-I --include=)'{-I,--include=}'[Comma separated list of additional modules to import.]' \ - '(--pidfile=)--pidfile=[Optional file used to store the process pid.]' \ - '(--autoscale=)--autoscale=[Enable autoscaling by providing max_concurrency, min_concurrency.]' \ - '(--autoreload)--autoreload[Enable autoreloading.]' \ - '(--no-execv)--no-execv[Don"t do execv after multiprocessing child fork.]' - compadd -a ifargs - ;; - inspect) - _values -s \ - 'active[dump active tasks (being processed)]' \ - 'active_queues[dump queues being consumed from]' \ - 'ping[ping worker(s)]' \ - 'registered[dump of registered tasks]' \ - 'report[get bugreport info]' \ - 'reserved[dump reserved tasks (waiting to be processed)]' \ - 'revoked[dump of revoked task ids]' \ - 'scheduled[dump scheduled tasks (eta/countdown/retry)]' \ - 'stats[dump worker statistics]' - compadd -a controlargs ifargs - ;; - control) - _values -s \ - 'add_consumer[tell worker(s) to start consuming a queue]' \ - 'autoscale[change autoscale settings]' \ - 'cancel_consumer[tell worker(s) to stop consuming a queue]' \ - 'disable_events[tell worker(s) to disable events]' \ - 'enable_events[tell worker(s) to enable events]' \ - 'pool_grow[start more pool processes]' \ - 'pool_shrink[use less pool processes]' \ - 'rate_limit[tell worker(s) to modify the rate limit for a task type]' \ - 'time_limit[tell worker(s) to modify the time limit for a task type.]' - compadd -a controlargs ifargs - ;; - multi) - _values -s \ - '--nosplash[Don"t display program info.]' \ - '--verbose[Show more output.]' \ - '--no-color[Don"t display colors.]' \ - '--quiet[Don"t show as much output.]' \ - 'start' 'restart' 'stopwait' 'stop' 'show' \ - 'names' 'expand' 'get' 'kill' - compadd -a ifargs - ;; - amqp) - _values -s \ - 'queue.declare' 'queue.purge' 'exchange.delete' 'basic.publish' \ - 'exchange.declare' 'queue.delete' 'queue.bind' 'basic.get' - ;; - list) - _values -s, 'bindings' - ;; - shell) - _values -s \ - '--ipython[force iPython.]' \ - '--bpython[force bpython.]' \ - '--python[force default Python shell.]' \ - '--without-tasks[don"t add tasks to locals.]' \ - '--eventlet[use eventlet.]' \ - '--gevent[use gevent.]' - compadd -a ifargs - ;; - beat) - _arguments \ - '(-s --schedule=)'{-s,--schedule=}'[Path to the schedule database. Defaults to celerybeat-schedule.]' \ - '(-S --scheduler=)'{-S,--scheduler=}'[Scheduler class to use. Default is celery.beat.PersistentScheduler.]' \ - '(--max-interval)--max-interval[]' - compadd -a dopts fargs - ;; - events) - _arguments \ - '(-d --dump)'{-d,--dump}'[Dump events to stdout.]' \ - '(-c --camera=)'{-c,--camera=}'[Take snapshots of events using this camera.]' \ - '(-F --frequency=)'{-F,--frequency=}'[Camera: Shutter frequency. Default is every 1.0 seconds.]' \ - '(-r --maxrate=)'{-r,--maxrate=}'[Camera: Optional shutter rate limit (e.g. 10/m).]' - compadd -a dopts fargs - ;; - *) - ;; - esac -} diff --git a/zsh/.oh-my-zsh/plugins/chruby/README.md b/zsh/.oh-my-zsh/plugins/chruby/README.md deleted file mode 100644 index d373006..0000000 --- a/zsh/.oh-my-zsh/plugins/chruby/README.md +++ /dev/null @@ -1,20 +0,0 @@ -# chruby plugin - -This plugin loads [chruby](https://github.com/postmodern/chruby), a tool that changes the -current Ruby version, and completion and a prompt function to display the Ruby version. -Supports brew and manual installation of chruby. - -To use it, add `chruby` to the plugins array in your zshrc file: -```zsh -plugins=(... chruby) -``` - -## Usage - -If you'd prefer to specify an explicit path to load chruby from -you can set variables like so: - -``` -zstyle :omz:plugins:chruby path /local/path/to/chruby.sh -zstyle :omz:plugins:chruby auto /local/path/to/auto.sh -``` diff --git a/zsh/.oh-my-zsh/plugins/chruby/chruby.plugin.zsh b/zsh/.oh-my-zsh/plugins/chruby/chruby.plugin.zsh deleted file mode 100644 index 32f0525..0000000 --- a/zsh/.oh-my-zsh/plugins/chruby/chruby.plugin.zsh +++ /dev/null @@ -1,121 +0,0 @@ -# -# INSTRUCTIONS -# -# With either a manual or brew installed chruby things should just work. -# -# If you'd prefer to specify an explicit path to load chruby from -# you can set variables like so: -# -# zstyle :omz:plugins:chruby path /local/path/to/chruby.sh -# zstyle :omz:plugins:chruby auto /local/path/to/auto.sh -# -# TODO -# - autodetermine correct source path on non OS X systems -# - completion if ruby-install exists - -# rvm and rbenv plugins also provide this alias -alias rubies='chruby' - - -_homebrew-installed() { - whence brew &> /dev/null - _xit=$? - if [ $_xit -eq 0 ];then - # ok , we have brew installed - # speculatively we check default brew prefix - if [ -h /usr/local/opt/chruby ];then - _brew_prefix="/usr/local/opt/chruby" - else - # ok , it is not default prefix - # this call to brew is expensive ( about 400 ms ), so at least let's make it only once - _brew_prefix=$(brew --prefix chruby) - fi - return 0 - else - return $_xit - fi -} - -_chruby-from-homebrew-installed() { - [ -r $_brew_prefix ] &> /dev/null -} - -_ruby-build_installed() { - whence ruby-build &> /dev/null -} - -_ruby-install-installed() { - whence ruby-install &> /dev/null -} - -# Simple definition completer for ruby-build -if _ruby-build_installed; then - _ruby-build() { compadd $(ruby-build --definitions) } - compdef _ruby-build ruby-build -fi - -_source_from_omz_settings() { - local _chruby_path - local _chruby_auto - - zstyle -s :omz:plugins:chruby path _chruby_path - zstyle -s :omz:plugins:chruby auto _chruby_auto - - if [[ -r ${_chruby_path} ]]; then - source ${_chruby_path} - fi - - if [[ -r ${_chruby_auto} ]]; then - source ${_chruby_auto} - fi -} - -_chruby_dirs() { - chrubydirs=($HOME/.rubies/ $PREFIX/opt/rubies) - for dir in chrubydirs; do - if [[ -d $dir ]]; then - RUBIES+=$dir - fi - done -} - -if _homebrew-installed && _chruby-from-homebrew-installed ; then - source $_brew_prefix/share/chruby/chruby.sh - source $_brew_prefix/share/chruby/auto.sh - _chruby_dirs -elif [[ -r "/usr/local/share/chruby/chruby.sh" ]] ; then - source /usr/local/share/chruby/chruby.sh - source /usr/local/share/chruby/auto.sh - _chruby_dirs -else - _source_from_omz_settings - _chruby_dirs -fi - -function ensure_chruby() { - $(whence chruby) -} - -function current_ruby() { - local _ruby - _ruby="$(chruby |grep \* |tr -d '* ')" - if [[ $(chruby |grep -c \*) -eq 1 ]]; then - echo ${_ruby} - else - echo "system" - fi -} - -function chruby_prompt_info() { - echo "$(current_ruby)" -} - -# complete on installed rubies -_chruby() { - compadd $(chruby | tr -d '* ') - local default_path='/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin' - if PATH=${default_path} type ruby &> /dev/null; then - compadd system - fi -} -compdef _chruby chruby diff --git a/zsh/.oh-my-zsh/plugins/chucknorris/.gitignore b/zsh/.oh-my-zsh/plugins/chucknorris/.gitignore deleted file mode 100644 index 267c504..0000000 --- a/zsh/.oh-my-zsh/plugins/chucknorris/.gitignore +++ /dev/null @@ -1 +0,0 @@ -fortunes/chucknorris.dat diff --git a/zsh/.oh-my-zsh/plugins/chucknorris/README.md b/zsh/.oh-my-zsh/plugins/chucknorris/README.md deleted file mode 100644 index b51875d..0000000 --- a/zsh/.oh-my-zsh/plugins/chucknorris/README.md +++ /dev/null @@ -1,38 +0,0 @@ -# chucknorris - -Chuck Norris fortunes plugin for Oh My Zsh. Perfectly suitable as MOTD. - -To use it add `chucknorris` to the plugins array in you zshrc file. - -```zsh -plugins=(... chucknorris) -``` - -## Usage - -| Command | Description | -| ----------- | ------------------------------- | -| `chuck` | Print random Chuck Norris quote | -| `chuck_cow` | Print quote in cowthink | - -Example: output of `chuck_cow`: - -``` -Last login: Fri Jan 30 23:12:26 on ttys001 - ______________________________________ -( When Chuck Norris plays Monopoly, it ) -( affects the actual world economy. ) - -------------------------------------- - o ^__^ - o (oo)\_______ - (__)\ )\/\ - ||----w | - || || -``` - -## Requirements - -- `fortune` -- `cowsay` if using `chuck_cow` - -Available via homebrew, apt, ... diff --git a/zsh/.oh-my-zsh/plugins/chucknorris/chucknorris.plugin.zsh b/zsh/.oh-my-zsh/plugins/chucknorris/chucknorris.plugin.zsh deleted file mode 100644 index b90abe3..0000000 --- a/zsh/.oh-my-zsh/plugins/chucknorris/chucknorris.plugin.zsh +++ /dev/null @@ -1,24 +0,0 @@ -() { - # %x: name of file containing code being executed - local fortunes_dir="${${(%):-%x}:h}/fortunes" - - # Aliases - alias chuck="fortune -a $fortunes_dir" - alias chuck_cow="chuck | cowthink" - - # Automatically generate or update Chuck's compiled fortune data file - if [[ "$fortunes_dir/chucknorris" -ot "$fortunes_dir/chucknorris.dat" ]]; then - return - fi - - # For some reason, Cygwin puts strfile in /usr/sbin, which is not on the path by default - local strfile="${commands[strfile]:-/usr/sbin/strfile}" - if [[ ! -x "$strfile" ]]; then - echo "[oh-my-zsh] chucknorris depends on strfile, which is not installed" >&2 - echo "[oh-my-zsh] strfile is often provided as part of the 'fortune' package" >&2 - return - fi - - # Generate the compiled fortune data file - $strfile "$fortunes_dir/chucknorris" "$fortunes_dir/chucknorris.dat" >/dev/null -} diff --git a/zsh/.oh-my-zsh/plugins/chucknorris/fortunes/chucknorris b/zsh/.oh-my-zsh/plugins/chucknorris/fortunes/chucknorris deleted file mode 100644 index 6ba5bb9..0000000 --- a/zsh/.oh-my-zsh/plugins/chucknorris/fortunes/chucknorris +++ /dev/null @@ -1,568 +0,0 @@ -King Kong climbed the Empire State building in fear of Chuck Norris who was downstairs at the time. -% -"2012" is code for, Chuck Norris when he is pissed. -% -"The Big Chuck Norris Roundhouse-Kick Theory" -% -"The wind cries Chuck Norris" -% -"Walker Texas Ranger: The Movie 3-D" was considered by Warner Brothers; however the technology to create the visual effects will never be possible. -% -A Handicapped parking sign does not signify that this spot is for handicapped people. It is actually in fact a warning, that the spot belongs to Chuck Norris and that you will be handicapped if you park there. -% -Abraham Lincoln didn't die because he was shot, Chuck Norris roundhouse-kicked so fast his foot went back in time and killed Abraham Lincoln. -% -Achievement Unlocked: Chuck Norris of Death -% -After Chuck counted to infinity the first time, he vowed to count to infinity a second time....by counting the bodies of those previously roundhoused. -% -Aliens fear that Chuck Norris might abduct them. -% -An angry glare from Chuck Norris is known to kill on the spot. -% -Behind every successful man is Chuck Norris. -% -Beware of dogs... Dogs, beware of Chuck Norris. -% -Bruce Lee didn't defeat Chuck Norris. Chuck hit Bruce with a Delayed roundhouse kick that was so fast that Lee only felt the impact a year later! -% -CNN was originally created as the "Chuck Norris Network" to update Americans with on-the-spot ass kicking in real-time. -% -Casinos pay Chuck Norris not to play at anything or wish anyone good luck. -% -Chuck Norris - the new standard. -% -Chuck Norris CAN balance the light-switch between ON and OFF. -% -Chuck Norris CAN believe it's not butter. -% -Chuck Norris CAN spell with an I before E even after C. -% -Chuck Norris can play the theme from the Twilight Zone with his beard. -% -Chuck Norris can power solar panels. At night. -% -Chuck Norris watches "the Nat.Geo. Specials" on Discovery Channel. -% -Chuck Norris bowled a 301 after constructing another pin out of his beard hair. -% -Chuck Norris burnt a fire proof vest, UNDERWATER! -% -Chuck Norris can French kiss his elbow. -% -Chuck Norris can bake in a freezer. -% -Chuck Norris can defuse a bomb by cutting the wrong wire. -% -Chuck Norris can dig a hole in air. -% -Chuck Norris can divide by zero. -% -Chuck Norris can do a regime change with a roundhouse kick. -% -Chuck Norris can fit 10 gallons of water in a 5 gallon bucket. -% -Chuck Norris can grill a popsicle. -% -Chuck Norris can lead a horse to water AND make it drink. -% -Chuck Norris can make his own megazord "The Chuck Norris Roundhouse Kickers Ultimate Super Awesome Megazord". -% -Chuck Norris can milk an alligator. -% -Chuck Norris can play the death waltz with his chin. -% -Chuck Norris can roundhouse kick someone through a window without breaking the glass. -% -Chuck Norris can roundhouse-kick round houses into squares. -% -Chuck Norris can rub two fires together and make a stick! -% -Chuck Norris can see in 3D with just one eye. -% -Chuck Norris can slam a revolving door. -% -Chuck Norris can terminate a repeating decimal. -% -Chuck Norris can turn toast back into bread. -% -Chuck Norris can win a game of Connect Four in only three moves. -% -Chuck Norris can win in a top spinning tournament with a cube. -% -Chuck Norris can't perform Hadoukens, he IS a Hadouken. -% -Chuck Norris checks under his bed for Fedor Emelianenko because he takes Fedor to the vet regularly. -% -Chuck Norris counted to infinity - twice. -% -Chuck Norris created Heavy Metal when he was upset. -% -Chuck Norris does not get frostbite. Chuck Norris bites frost. -% -Chuck Norris does not have a cell phone because he hears everything. -% -Chuck Norris does not sleep. He waits. -% -Chuck Norris doesn't bowl strikes, he just knocks down one pin and the other nine faint. -% -Chuck Norris doesn't call the wrong number, you just answer the wrong phone. -% -Chuck Norris doesn't cheat death, he beats it fair and square. -% -Chuck Norris doesn't churn butter. He roundhouse kicks the cows and the butter comes straight out. -% -Chuck Norris doesn't eat, he just sucks the energy out of food by staring at it. -% -Chuck Norris doesn't exhale. The air runs desperately scared out of his lungs. -% -Chuck Norris doesn't go hunting.... CHUCK NORRIS GOES KILLING. -% -Chuck Norris doesn't let it go. -% -Chuck Norris doesn't like Mudkipz. -% -Chuck Norris doesn't look for fun. The fun looks for Chuck Norris. -% -Chuck Norris doesn't need a bulletproof vest. He catches them with his bare hands. -% -Chuck Norris doesn't need air, he is air. -% -Chuck Norris doesn't need sunglasses, the sun needs Chuck Norris glasses. -% -Chuck Norris doesn't need to brush his teeth, his spit acts as a bleach. -% -Chuck Norris doesn't read books. He stares them down until he gets the information he wants. -% -Chuck Norris doesn't throw up if he drinks too much. Chuck Norris throws down! -% -Chuck Norris doesn't eat salad, he eats vegetarians. -% -Chuck Norris doesn't wash his clothes, he disembowels them. -% -Chuck Norris doesn't wear a watch. HE decides what time it is. -% -Chuck Norris doesn't carry a list. He always knows what to do. -% -Chuck Norris drives an ice cream truck covered in human skulls. -% -Chuck Norris drowned a man ON LAND. -% -Chuck Norris fed the Hunger Games. -% -Chuck Norris found the hay in the needle stack. -% -Chuck Norris found the last digit of pi. -% -Chuck Norris had a knife thrown at him. The knife didn't impale him; he impaled the knife. -% -Chuck Norris has a battle cruiser AND a car. -% -Chuck Norris has killed the Dead Sea. -% -Chuck Norris has made a 148 break at snooker. -% -Chuck Norris invented Kentucky Fried Chicken's famous secret recipe, with eleven herbs and spices. But nobody ever mentions the twelfth ingredient: Fear. -% -Chuck Norris is allowed two carry-ons. -% -Chuck Norris is currently suing NBC, claiming Law and Order are trademarked names for his left and right legs. -% -Chuck Norris is currently suing any broadway theater that plays "The Nutcracker". He claims its an infringement on his "other" roundhouse kick. -% -Chuck Norris is entitled to his own facts. -% -Chuck Norris is my Homeboy. -% -Chuck Norris is so fast, he can run around the world and punch himself in the back of the head. -% -Chuck Norris is so hard, he uses diamonds as stress balls. -% -Chuck Norris is so scary, he makes sharks swim backwards away from him. -% -Chuck Norris is ten feet tall, weighs two-tons, breathes fire, and could eat a hammer and take a shotgun blast standing. -% -Chuck Norris is the ghost in paranormal activity. -% -Chuck Norris is the life of parties he doesn't attend. -% -Chuck Norris is the meaning of life. Too bad he's also the meaning of death. -% -Chuck Norris is the only man to ever defeat a brick wall in a game of tennis. -% -Chuck Norris is the only one who can tear a facebook page! -% -Chuck Norris is the reason that the world will end in 2012. He was getting bored with the Earth. -% -Chuck Norris is the reason tumbleweeds tumble. -% -Chuck Norris is the reason why Waldo is hiding. -% -Chuck Norris is waiting for Mt. St. Helens to erupt again. He's hoping the lava is hot enough to soften his beard so he can shave for the first time. -% -Chuck Norris isn't allowed at the zoo, because when he's there the animals are too terrified to come out of their cages. -% -Chuck Norris made a statue bleed. -% -Chuck Norris made the big bang just by clicking his fingers. -% -Chuck Norris never trains, because he's Chuck Norris. -% -Chuck Norris once cried just to see what it was like. The end result was the creation of life. -% -Chuck Norris once cut a knife with a stick of butter. -% -Chuck Norris once got a 200 yard punt return. -% -Chuck Norris once had a pet monkey named KING KONG. -% -Chuck Norris once had a street named after him. The name removed at once, because nobody crosses Chuck Norris, and lives. -% -Chuck Norris once had a weak moment, just to know what it felt like. -% -Chuck Norris once played Duck Duck Goose with a group of Kindergarteners. Only one kid made it to first grade. -% -Chuck Norris once proved p^~p by induction on his beard hairs. -% -Chuck Norris once punched the ground to stop an earthquake. The resulting aftershock caused the BP oil spill. -% -Chuck Norris once round-house kicked a salesman. Over the phone. -% -Chuck Norris once rounhouse kicked a football. The astronomical society now considers it a planet. -% -Chuck Norris once thought he was wrong. He was, however, mistaken. -% -Chuck Norris once walked down a street with his fists in his pockets. He was then arrested for concealing two deadly weapons. -% -Chuck Norris once won the Tour de France riding a "big wheel". -% -Chuck Norris originally appeared in the "Street Fighter II" video game, but was removed by Beta Testers because every button caused him to do a roundhouse kick. When asked bout this "glitch," Norris replied, "That's no glitch." -% -Chuck Norris owns all number 1 pencils. -% -Chuck Norris pees Adamantium. -% -Chuck Norris plays Texas Hold'Em with Zeus, every second Wednesday of the month. -% -Chuck Norris played "Got your Nose" with Voldemort and won. -% -Chuck Norris played the game of thrones and won. -% -Chuck Norris protects his bodyguards. -% -Chuck Norris rolled a 20 on a 6 sided die. -% -Chuck Norris roundhouse kicks people in the face first and asks questions later. -% -Chuck Norris sent a BBM to an iPhone. -% -Chuck Norris shops at Sam's Club, but leaves without having his receipt checked. -% -Chuck Norris splattered tiger blood and Adonis' DNA on Charlie Sheen with 1 roundhouse kick! -% -Chuck Norris started Chuck Norris. -% -Chuck Norris starts his day with 6 live chickens, two cows, three pigs, and a boiling hot cup of pure fury. -% -Chuck Norris told me to put this here. -% -Chuck Norris uses a real mouse to move the cursor, type on the keyboard, write e-mails, code entire websites, and make coffee. -% -Chuck Norris uses pepper spray to spice up his steaks. -% -Chuck Norris was heard in a soundproof room! -% -Chuck Norris was once turned down for American Idol. When Simon was questioned about it, he replied "I'm retiring after this season". I wonder why? -% -Chuck Norris was originally in Mortal Kombat, but that version was deleted because no one can beat Chuck Norris in a fight. -% -Chuck Norris was the image used for Papa Smurf. -% -Chuck Norris was the reason why the Great Wall of China was constructed. It failed miserably. -% -Chuck Norris was what Willis was talking about. -% -Chuck Norris wasn't born on his birthday. -% -Chuck Norris watched the first steps on the moon... from his summer home on Mars. -% -Chuck Norris went up the creek without a paddle... or a canoe. -% -Chuck Norris will attain statehood in 2009. His state flower will be the Magnolia. -% -Chuck Norris wins NASCAR races with all right turns. -% -Chuck Norris won a stepdance contest by standing on his hands. -% -Chuck Norris yells at drill Sergeants. -% -Chuck Norris' dog picks up after him. -% -Chuck Norris' films are factual documentaries. -% -Chuck Norris' first job was as a paperboy. There were no survivors. -% -Chuck Norris' glass is never half full or half empty. It stays full even after he takes a drink. -% -Chuck Norris' hand is the only hand that can beat a Royal Flush. -% -Chuck Norris' personal airplane is called Air Force Chuck. -% -Chuck Norris. Enough said. -% -Chuck Norris: even Naruto can't believe it. -% -Chuck Norris can make sour milk turn fresh. -% -Contrary to popular belief, Rome WAS built in a day, by Chuck Norris. -% -Contrary to popular belief, America is not a democracy, it is a Chucktatorship. -% -Contrary to popular belief, Chuck Norris, not the box jellyfish of northern Australia, is the most venomous creature on Earth. -% -Cops don't need badges in their wallets, but only a picture of Chuck Norris. -% -Crop circles are Chuck Norris' way of telling the world that sometimes corn needs to lie down. -% -Did you hear about the boy who cried Chuck Norris? -% -Dog the Bounty Hunter can't track Chuck Norris down. -% -Don't get Chuck Norris angry. Last time somebody did that, Chuck Norris made the Grand Canyon. -% -Earth's rotation is purely governed by the direction that Chuck Norris is walking. -% -Ever wonder what really happened to the dinosaurs? They all dug their own graves when they heard Chuck Norris was coming. -% -Every line in a Chuck Norris haiku is "A roundhouse kick to the face." And they all have the correct number of syllables. -% -Every phobia known to man has a phobia of Chuck Norris. -% -Every time there's an earthquake, you know Chuck Norris is hungry. The earthquake is caused by his stomach growling. -% -Evolution's driving mechanism is nature's desperate attempt to escape Chuck Norris. -% -Fear of spiders is arachnaphobia. Fear of tight spaces is claustrophobia. Fear of Chuck Norris is called Logic. -% -Fool me once, shame on you. Fool Chuck Norris once and he will roundhouse you in the face. -% -Ghosts can see Chuck Norris. -% -Guns don't kill people. Chuck Norris kills people. -% -How much wood could a woodchuck chuck if a woodchuck could chuck wood? No woodchuck could chuck Chuck's wood! -% -If Chuck Norris were a calendar, every month would be named Chucktober, and every day he'd kick your ass. -% -If Chuck Norris were to get into a fight with another Chuck Norris, Chuck Norris would win. -% -If God doesn't know, Chuck does. -% -If Goliath listened to Chuck Norris, he would have won. -% -If at first you don't succeed, you're not Chuck Norris. -% -If you ask Chuck Norris what time it is, he always says, "Two seconds 'til." After you ask, "Two seconds 'til what?" he roundhouse kicks you in the face. -% -If you put in the correct cheat code in Halo 2, you can have Master Chief play without his helmet, revealing himself to be Chuck Norris. -% -If you see a man in the street who looks like Chuck Norris, but isn't, run: you don't want to be caught in the resulting roundhouse kick to his face. -% -If you spell Chuck Norris in Scrabble, you win. Forever. -% -In 1945 The US army asked if they could clone Chuck Norris. Instead he said he could sort out the Japanese. -% -In Texas, there are five sizes for fountain drinks: small, medium, large, Texas sized, and Chuck Norris sized. It is a cup made of a human skull. -% -In a rain storm Chuck Norris stays dry. Rain drops are scared to hit him. -% -In the back of the book of world records, it says "All records are held by Chuck Norris. The ones listed are in second place." -% -James Bond has a license to kill. He got it from Chuck Norris. -% -Jedis are now taught to use the "Chuck". -% -MacGyver immediately tried to make a bomb out of some Q-Tips and Gatorade, but Chuck Norris roundhouse-kicked him in the solar plexus. MacGyver promptly threw up his own heart. -% -Machiavelli said it is better to be feared than loved because he was inspired by Chuck Norris. -% -May the Force be with Chuck Norris... for its own good. -% -Merlin was Chuck Norris' assistant. -% -Most people have 23 pairs of chromosomes. Chuck Norris has 72... and they're all poisonous. -% -Note to self: Don't be the cashier to tell Chuck Norris his coupons have expired. -% -Chuck Norris' keyboard has no control key. Chuck Norris is always in control. -% -Once upon a time, Chuck Norris found himself in a town called Shit Creek. He opened a Paddle Store. -% -One glance from Chuck Norris and snow turns itself yellow. -% -One time a test cheated on Chuck Norris. -% -Only Chuck Norris can win the mind game, 'cause he never minds. -% -Only Chuck Norris is stronger than an Altoid. -% -Outer space exists because it's afraid to be on the same planet with Chuck Norris. -% -Ozzy Osbourne once accidentally bit the head off a live bat - Chuck Norris once deliberately bit the head off a live pterodactyl. -% -Pluto is actually an orbiting group of British soldiers from the American Revolution who entered space after the Chuck gave them a roundhouse kick to the face. -% -Police label anyone attacking Chuck Norris as a Code 45-11.... a suicide. -% -Remember the Soviet Union? They decided to quit after watching a DeltaForce marathon on Satellite TV. -% -Simon doesn't say... Chuck Norris says. -% -Some boots were made for walking. Some boots may walk all over you, but Chuck Norris' boots walk THROUGH you. -% -Some kids pee their name in snow. Chuck Norris pees his name in concrete. -% -Some people ask for a Kleenex when they sneeze, Chuck Norris asks for a body bag. -% -Someone once videotaped Chuck Norris getting pissed off. It was called Walker: Texas Chain Saw Massacre. -% -Staring at Chuck Norris for extended periods of time without proper eye protection will cause blindess, and possibly foot sized brusies on the face. -% -Taking Karate Lessons = $100, Buying MMA DVD's = $150, Subscribing to a UFC event = $50, Getting a Roundhouse Kick from Chuck Norris = PRICELESS. -% -That's not an eclipse. That's the sun hiding from Chuck Norris. -% -The Beatles are on iTunes because Chuck Norris bought a Mac. -% -The Earth is made up of two-thirds water and one-third Chuck Norris. -% -The Earth was almost destroyed by a 50 km wide asteroid in 1984, but Chuck Norris roundhouse kicked it into the Sun. -% -The Great Wall of China was originally created to keep Chuck Norris out. It failed miserably. -% -The Joneses are trying to keep up with Chuck Norris. -% -The Matrix Trilogy would have ended on the first movie had Keanu Reeves said, “I know Chuck Norris.†-% -The answer to life, the universe and everything isn't 42. It's Chuck Norris. -% -The apple falls far from the tree, when Chuck's roundhouse kick is taken to the trunk. -% -The best part of waking up is not Folgers in your cup. it's knowing that Chuck Norris let you live. -% -The chief export of Chuck Norris is pain. -% -The dictionary references Chuck Norris several times, he is metioned under Fear, Law, Order and Chucktatorship. -% -The leading causes of death in the United States are: 1. Heart Disease 2. Chuck Norris 3. Cancer. -% -The letters in Chuck Norris cannot be unscrambled. -% -The only place where the Starship Enterprise refuses to boldly go is Chuck Norris' planet... which is all of them. -% -The only reason that USA lost the 2011 world cup to Japan is because Chuck Norris wasn't there. -% -The only sure things are Death and Taxes, and when Chuck Norris goes to work for the IRS, they'll be the same thing. -% -The only way sharks will come near CN underwater is when CN is inside of a cage. -% -The only word that rhymes with orange is Chuck Norris. -% -The producers of the movie "The Last Airbender" are now in talks with Chuck Norris in Order to star him in their next sequal "The Last Skull Bender". -% -The quickest way to a man's heart is with Chuck Norris' fist. -% -The reason why Batman only comes out at night is because he's afraid he might encounter Chuck Norris in the morning and afternoon. -% -The red phone in the oval office rings directly to Chuck Norris' cell phone. -% -The show Survivor had the original premise of putting people on an island with Chuck Norris. There were no survivors, and nobody is brave enough to go to the island to retrieve the footage. -% -The square root of Chuck Norris is pain. Do not try to square Chuck Norris. The result is death. -% -The sun only rises every morning because Chuck Norris allows it to. -% -The truth hurts, doesn't it? Chuck Norris' truth kills. -% -There is no chin behind Chuck Norris' beard. There is only another fist. -% -There is no limbo, only a world that doesn't know of Chuck Norris. -% -There is no such thing as global warming. Chuck Norris was cold, so he turned the sun up. -% -There is no theory of evolution, just a list of creatures Chuck Norris has allowed to live. -% -This one time at band camp... BAM! Chuck Norris. -% -Those who ignore history, are doomed by Chuck Norris. -% -Trick me once, shame on you, trick Chuck Norris.. rest in peace. -% -Unlike Jack Bauer, Chuck Norris doesn't need bullets. A quick roundhouse to the face kills twice as fast. -% -Walker: Texas Ranger went into syndication before the first episode was shot. -% -What was going through the minds of all of Chuck Norris' victims before they died? His shoe. -% -Whatever Chuck Norris wants, it will instantly appear. -% -When Betty White gets angry, she turns into the Hulk. When Valerie Bertinelli gets mad, she turns into Chuck Norris. -% -When Chuck Norris creates a login, it tells him "password not strong enough." He types in his name and it tells him "password too strong." -% -When Chuck Norris does a pushup, he isn't lifting himself up, he's pushing the Earth down. -% -When Chuck Norris drinks water, the water automatically pasteurized. -% -When Chuck Norris goes to Vegas, he doesn't have to gamble. The casinos just give him stacks of money. -% -When Chuck Norris goes to rodeos, bulls ride him. -% -When Chuck Norris goes to the library, he looks for the Guinness book of records in the comedy section. -% -When Chuck Norris inhales helium, his voice doesn't change. -% -When Chuck Norris performs a roundhouse kick, he's actually measuring the circumference of the universe. -% -When Chuck Norris played the card game War with a friend, France surrendered. -% -When Chuck Norris pokes the Pillsbury Doughboy, it's not a laughing matter. -% -When Chuck Norris roundhouse-kicks you, he decides when you will feel the impact. -% -When Chuck Norris sends in his taxes, he sends blank forms and includes only a picture of himself, crouched and ready to attack. Chuck Norris has not had to pay taxes, ever. -% -When Chuck Norris tosses a coin, it lands on both heads and tails. -% -When God said "Let there be light!", Chuck Norris said "Only for half the day." -% -When Presidents speak, their nation listens. When Chuck Norris blinks, the whole world listens. -% -When Steven Seagal kills a ninja, he only takes its hide. When Chuck Norris kills a ninja, he uses every part. -% -When chuck Norris was in school, he made his PE teacher run laps. -% -When does Chuck Norris run out of shotgun bullets? whenever he wants to. -% -When taking the SAT, write "Chuck Norris" for every answer. You will score over 8000. -% -When the Boogeyman goes to sleep every night, he checks his closet for Chuck Norris. -% -When things go bump in the night, it's Chuck Norris -% -While visiting the Hexagon, Chuck Norris was asked to demonstrate his famous roundhouse kick. Henceforth, it has been known as the Pentagon. -% -Why didn't the chicken cross the road? Because Chuck Norris got to it first. -% -You know Chuck Norris' pet lizard, right? Last I heard, he was in the movie "Godzilla". Oh, and his pet turtle starred in "Gamera" as well. -% -http://chucknorrisfacts.com/ is built in Drupal because Chuck Norris knows a good CMS when he sees one. -% -Chuck Norris made the first Giraffe by uppercutting a horse. -% -Chuck Norris can hear sign language. -% -Chuck Norris make onions cry. -% -Chuck Norris doesn't shake hands, he makes them tremble. -% diff --git a/zsh/.oh-my-zsh/plugins/cloudfoundry/README.md b/zsh/.oh-my-zsh/plugins/cloudfoundry/README.md deleted file mode 100644 index 89dd9d1..0000000 --- a/zsh/.oh-my-zsh/plugins/cloudfoundry/README.md +++ /dev/null @@ -1,58 +0,0 @@ -# Cloudfoundry Plugin - -This plugin is intended to offer a few simple aliases for regular users of the [Cloud Foundry Cli][1]. Most are just simple aliases that will save a bit of typing. Others include mini functions and or accept parameters. Take a look at the table below for details. - -| Alias | Command | Description | -|----------|-----------------------------|--------------------------------------------------------------------------| -| cfl | `cf login` | Login to Cloud Foundry | -| cft | `cf target` | Target the cli at a specific Org/Space in Cloud Foundry | -| cfa | `cf apps` | List all applications in the current Org/Space | -| cfs | `cf services` | List all services in the current Org/Space | -| cfm | `cf marketplace` | List the services available in the Marketplace | -| cfp | `cf push` | Push your application code to Cloud Foundry | -| cfcs | `cf create-service` | Create a service based on a Marketplace offering | -| cfbs | `cf bind-service` | Bind an application to a service you created | -| cfus | `cf unbind-service` | Unbind a service from an application | -| cfds | `cf delete-service` | Delete a service you no longer have bound | -| cfup | `cf cups` | Create a "user-provided-service" | -| cflg | `cf logs` | Tail the logs of an application (requires ) | -| cfr | `cf routes` | List all the routes in the current Space | -| cfe | `cf env` | Show the environment variables for an application (requires ) | -| cfsh | `cf ssh` | Attach to a running container (requires an etc.) | -| cfsc | `cf scale` | Scale an application (requires an etc.) | -| cfev | `cf events` | Show the application events (requires ) | -| cfdor | `cf delete-orphaned-routes` | Delete routes that are no longer bound to applications | -| cfbpk | `cf buildpacks` | List the available buildpacks | -| cfdm | `cf domains` | List the domains associates with this Cloud Foundry foundation | -| cfsp | `cf spaces` | List all the Spaces in the current Org | -| cfap | `cf app` | Show the details of a deployed application (requires ) | -| cfh. | `export CF_HOME=$PWD/.cf` | Set the current directory as CF_HOME | -| cfh~ | `export CF_HOME=~/.cf` | Set the user's root directory as CF_HOME | -| cfhu | `unset CF_HOME` | Unsets CF_HOME | -| cfpm | `cf push -f` | Push an application using a manifest (requires location) | -| cflr | `cf logs --recent` | Show the recent logs (requires ) | -| cfsrt | `cf start` | Start an application (requires ) | -| cfstp | `cf stop` | Stop an application (requires ) | -| cfstg | `cf restage` | Restage an application (requires ) | -| cfdel | `cf delete` | Delete an application (requires ) | -| cfsrtall | - | Start all apps that are currently in the "Stopped" state | -| cfstpall | - | Stop all apps that are currently in the "Started" state | - -For help and advice on what any of the commands does, consult the built in `cf` help functions as follows:- - -```bash -cf help # List the most popular and commonly used commands -cf help -a # Complete list of all possible commands -cf --help # Help on a specific command including arguments and examples -``` - -Alternatively, seek out the [online documentation][3]. And don't forget, there are loads of great [community plugins for the cf-cli][4] command line tool that can greatly extend its power and usefulness. - -## Contributors - -Contributed to `oh_my_zsh` by [benwilcock][2]. - -[1]: https://docs.cloudfoundry.org/cf-cli/install-go-cli.html -[2]: https://github.com/benwilcock -[3]: https://docs.cloudfoundry.org/cf-cli/getting-started.html -[4]: https://plugins.cloudfoundry.org/ diff --git a/zsh/.oh-my-zsh/plugins/cloudfoundry/cloudfoundry.plugin.zsh b/zsh/.oh-my-zsh/plugins/cloudfoundry/cloudfoundry.plugin.zsh deleted file mode 100644 index b671578..0000000 --- a/zsh/.oh-my-zsh/plugins/cloudfoundry/cloudfoundry.plugin.zsh +++ /dev/null @@ -1,34 +0,0 @@ -# Some Useful CloudFoundry Aliases & Functions -alias cfl="cf login" -alias cft="cf target" -alias cfa="cf apps" -alias cfs="cf services" -alias cfm="cf marketplace" -alias cfp="cf push" -alias cfcs="cf create-service" -alias cfbs="cf bind-service" -alias cfus="cf unbind-service" -alias cfds="cf delete-service" -alias cfup="cf cups" -alias cflg="cf logs" -alias cfr="cf routes" -alias cfe="cf env" -alias cfsh="cf ssh" -alias cfsc="cf scale" -alias cfev="cf events" -alias cfdor="cf delete-orphaned-routes" -alias cfbpk="cf buildpacks" -alias cfdm="cf domains" -alias cfsp="cf spaces" -function cfap() { cf app $1 } -function cfh.() { export CF_HOME=$PWD/.cf } -function cfh~() { export CF_HOME=~/.cf } -function cfhu() { unset CF_HOME } -function cfpm() { cf push -f $1 } -function cflr() { cf logs $1 --recent } -function cfsrt() { cf start $1 } -function cfstp() { cf stop $1 } -function cfstg() { cf restage $1 } -function cfdel() { cf delete $1 } -function cfsrtall() {cf apps | awk '/stopped/ { system("cf start " $1)}'} -function cfstpall() {cf apps | awk '/started/ { system("cf stop " $1)}'} diff --git a/zsh/.oh-my-zsh/plugins/codeclimate/README.md b/zsh/.oh-my-zsh/plugins/codeclimate/README.md deleted file mode 100644 index 0d712ac..0000000 --- a/zsh/.oh-my-zsh/plugins/codeclimate/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# codeclimate plugin - -This plugin adds autocompletion for the [`codeclimate` CLI](https://github.com/codeclimate/codeclimate). - -To use it, add `codeclimate` to the plugins array in your zshrc file: -```zsh -plugins=(... codeclimate) -``` diff --git a/zsh/.oh-my-zsh/plugins/codeclimate/_codeclimate b/zsh/.oh-my-zsh/plugins/codeclimate/_codeclimate deleted file mode 100644 index fd2536a..0000000 --- a/zsh/.oh-my-zsh/plugins/codeclimate/_codeclimate +++ /dev/null @@ -1,82 +0,0 @@ -#compdef codeclimate - -_codeclimate_all_engines() { - engines_all=(`codeclimate engines:list | tail -n +2 | gawk '{ print $2 }' | gawk -F: '{ print $1 }'`) -} - -_codeclimate_installed_engines() { - _codeclimate_all_engines - - engines_installed=() - - if [ -e .codeclimate.yml ] - then - for engine in $engines_all - do - if grep -q $engine ".codeclimate.yml" - then - engines_installed+=$engine - fi - done - fi -} - -_codeclimate_not_installed_engines() { - _codeclimate_all_engines - - engines_not_installed=() - - if [ -e .codeclimate.yml ] - then - for engine in $engines_all - do - if ! grep -q $engine ".codeclimate.yml" - then - engines_not_installed+=$engine - fi - done - fi -} - -local curcontext="$curcontext" state line ret=1 -local expl -local -a engines_all engines_installed engines_not_installed - -_arguments \ - '1: :->cmds' \ - '*:: :->args' && ret=0 - -case $state in - cmds) - _values "bundle command" \ - "analyze[Analyze all relevant files in the current working directory]" \ - "console[Start an interactive session providing access to the classes within the CLI]" \ - "engines\:disable[Prevents the engine from being used in this project]" \ - "engines\:enable[This engine will be run the next time your project is analyzed]" \ - "engines\:install[Compares the list of engines in your .codeclimate.yml file to those that are currently installed, then installs any missing engines]" \ - "engines\:list[Lists all available engines in the Code Climate Docker Hub]" \ - "engines\:remove[Removes an engine from your .codeclimate.yml file]" \ - "help[Displays a list of commands that can be passed to the Code Climate CLI]" \ - "init[Generates a new .codeclimate.yml file in the current working directory]" \ - "validate-config[Validates the .codeclimate.yml file in the current working directory]" \ - "version[Displays the current version of the Code Climate CLI]" - ret=0 - ;; - args) - case $line[1] in - engines:enable) - _codeclimate_not_installed_engines - _wanted engines_not_installed expl 'not installed engines' compadd -a engines_not_installed ;; - engines:disable|engines:remove) - _codeclimate_installed_engines - _wanted engines_installed expl 'installed engines' compadd -a engines_installed ;; - analyze) - _arguments \ - '-f:Output Format:(text json)' - ret=0 - ;; - esac - ;; -esac - -return ret diff --git a/zsh/.oh-my-zsh/plugins/coffee/README.md b/zsh/.oh-my-zsh/plugins/coffee/README.md deleted file mode 100644 index 2baade8..0000000 --- a/zsh/.oh-my-zsh/plugins/coffee/README.md +++ /dev/null @@ -1,31 +0,0 @@ -# Coffeescript Plugin - -This plugin provides aliases for quickly compiling and previewing your -coffeescript code. - -When writing Coffeescript it's very common to want to preview the output of a -certain snippet of code, either because you want to test the output or because -you'd like to execute it in a browser console which doesn't accept Coffeescript. - -Preview the compiled result of your coffeescript with `cf "code"` as per the -following: - -```zsh -$ cf 'if a then b else c' -if (a) { - b; -} else { - c; -} -``` - -Also provides the following aliases: - -* **cfc:** Copies the compiled JS to your clipboard. Very useful when you want - to run the code in a JS console. - -* **cfp:** Compiles from your currently copied clipboard. Useful when you want - to compile large/multi-line snippets - -* **cfpc:** Paste coffeescript from clipboard, compile to JS, then copy the - the result back to clipboard. diff --git a/zsh/.oh-my-zsh/plugins/coffee/_coffee b/zsh/.oh-my-zsh/plugins/coffee/_coffee deleted file mode 100644 index 5e52b30..0000000 --- a/zsh/.oh-my-zsh/plugins/coffee/_coffee +++ /dev/null @@ -1,81 +0,0 @@ -#compdef coffee -# ------------------------------------------------------------------------------ -# Copyright (c) 2011 Github zsh-users - https://github.com/zsh-users -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# * Neither the name of the zsh-users nor the -# names of its contributors may be used to endorse or promote products -# derived from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -# DISCLAIMED. IN NO EVENT SHALL ZSH-USERS BE LIABLE FOR ANY -# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# ------------------------------------------------------------------------------ -# Description -# ----------- -# -# Completion script for Coffee.js v0.6.11 (https://coffeescript.org) -# -# ------------------------------------------------------------------------------ -# Authors -# ------- -# -# * Mario Fernandez (https://github.com/sirech) -# * Dong Weiming (https://github.com/dongweiming) -# -# ------------------------------------------------------------------------------ - -local curcontext="$curcontext" state line ret=1 version opts first second third -typeset -A opt_args -version=(${(f)"$(_call_program version $words[1] --version)"}) -version=${${(z)${version[1]}}[3]} -first=$(echo $version|cut -d '.' -f 1) -second=$(echo $version|cut -d '.' -f 2) -third=$(echo $version|cut -d '.' -f 3) -if (( $first < 2 )) && (( $second < 7 )) && (( $third < 3 ));then - opts+=('(-l --lint)'{-l,--lint}'[pipe the compiled JavaScript through JavaScript Lint]' - '(-r --require)'{-r,--require}'[require a library before executing your script]:library') -fi - - -_arguments -C \ - '(- *)'{-h,--help}'[display this help message]' \ - '(- *)'{-v,--version}'[display the version number]' \ - $opts \ - '(-b --bare)'{-b,--bare}'[compile without a top-level function wrapper]' \ - '(-e --eval)'{-e,--eval}'[pass a string from the command line as input]:Inline Script' \ - '(-i --interactive)'{-i,--interactive}'[run an interactive CoffeeScript REPL]' \ - '(-j --join)'{-j,--join}'[concatenate the source CoffeeScript before compiling]:Destination JS file:_files -g "*.js"' \ - '(--nodejs)--nodejs[pass options directly to the "node" binary]' \ - '(-c --compile)'{-c,--compile}'[compile to JavaScript and save as .js files]' \ - '(-o --output)'{-o,--output}'[set the output directory for compiled JavaScript]:Output Directory:_files -/' \ - '(-n -t -p)'{-n,--nodes}'[print out the parse tree that the parser produces]' \ - '(-n -t -p)'{-p,--print}'[print out the compiled JavaScript]' \ - '(-n -t -p)'{-t,--tokens}'[print out the tokens that the lexer/rewriter produce]' \ - '(-s --stdio)'{-s,--stdio}'[listen for and compile scripts over stdio]' \ - '(-w --watch)'{-w,--watch}'[watch scripts for changes and rerun commands]' \ - '*:script or directory:_files' && ret=0 - -return ret - -# Local Variables: -# mode: Shell-Script -# sh-indentation: 2 -# indent-tabs-mode: nil -# sh-basic-offset: 2 -# End: -# vim: ft=zsh sw=2 ts=2 et diff --git a/zsh/.oh-my-zsh/plugins/coffee/coffee.plugin.zsh b/zsh/.oh-my-zsh/plugins/coffee/coffee.plugin.zsh deleted file mode 100644 index 6d1ce5c..0000000 --- a/zsh/.oh-my-zsh/plugins/coffee/coffee.plugin.zsh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/zsh - -# compile a string of coffeescript and print to output -cf () { - coffee -peb "$1" -} -# compile & copy to clipboard -cfc () { - cf "$1" | clipcopy -} - -# compile from clipboard & print -alias cfp='cf "$(clippaste)"' - -# compile from clipboard and copy to clipboard -alias cfpc='cfp | clipcopy' diff --git a/zsh/.oh-my-zsh/plugins/colemak/.gitignore b/zsh/.oh-my-zsh/plugins/colemak/.gitignore deleted file mode 100644 index 8241f5e..0000000 --- a/zsh/.oh-my-zsh/plugins/colemak/.gitignore +++ /dev/null @@ -1 +0,0 @@ -.less diff --git a/zsh/.oh-my-zsh/plugins/colemak/README.md b/zsh/.oh-my-zsh/plugins/colemak/README.md deleted file mode 100644 index 4da4bc1..0000000 --- a/zsh/.oh-my-zsh/plugins/colemak/README.md +++ /dev/null @@ -1,48 +0,0 @@ -# Colemak plugin - -This plugin remaps keys in `zsh`'s [`vi`-style navigation mode](http://zsh.sourceforge.net/Doc/Release/Zsh-Line-Editor.html#Keymaps) -for a [Colemak](https://colemak.com/) keyboard layout, to match the QWERTY position: - -![Colemak layout on a US keyboard](https://colemak.com/wiki/images/6/6c/Colemak2.png) - -To use it, add it to the plugins array in your `~/.zshrc` file: - -``` -plugins=(... colemak) -``` - -You will also need to enable `vi` mode, so add another line to `~/.zshrc`: -``` -bindkey -v -``` - -Restart your shell and hit the `` key to activate `vicmd` (navigation) mode, -and start navigating `zsh` with your new keybindings! - -## Key bindings for vicmd - -| Old | New | Binding | Description | -|------------|------------|---------------------------|----------------------------------------------------| -| `CTRL`+`j` | `CTRL`+`n` | accept-line | Insert new line | -| `j` | `n` | down-line-or-history | Move one line down or command history forwards | -| `k` | `e` | up-line-or-history | Move one line up or command history backwards | -| `l` | `i` | vi-forward-char | Move one character to the right | -| `n` | `k` | vi-repeat-search | Repeat command search forwards | -| `N` | `K` | vi-rev-repeat-search | Repeat command search backwards | -| `i` | `u` | vi-insert | Enter insert mode | -| `I` | `U` | vi-insert-bol | Move to first non-blank char and enter insert mode | -| `` | `l` | vi-undo-change | Undo change | -| `J` | `N` | vi-join | Join the current line with the next one | -| `e` | `j` | vi-forward-word-end | Move to the end of the next word | -| `E` | `J` | vi-forward-blank-word-end | Move to end of the current or next word | - -## Key bindings for less - -| Keyboard shortcut | `less` key binding | -|-------------------|--------------------| -| `n` | forw-line | -| `e` | back-line | -| `k` | repeat-search | -| `ESC`+`k` | repeat-search-all | -| `K` | reverse-search | -| `ESC`+`K` | reverse-search-all | diff --git a/zsh/.oh-my-zsh/plugins/colemak/colemak-less b/zsh/.oh-my-zsh/plugins/colemak/colemak-less deleted file mode 100644 index e4ca4fa..0000000 --- a/zsh/.oh-my-zsh/plugins/colemak/colemak-less +++ /dev/null @@ -1,6 +0,0 @@ -n forw-line -e back-line -k repeat-search -\ek repeat-search-all -K reverse-search -\eK reverse-search-all diff --git a/zsh/.oh-my-zsh/plugins/colemak/colemak.plugin.zsh b/zsh/.oh-my-zsh/plugins/colemak/colemak.plugin.zsh deleted file mode 100644 index 8d3393c..0000000 --- a/zsh/.oh-my-zsh/plugins/colemak/colemak.plugin.zsh +++ /dev/null @@ -1,33 +0,0 @@ -# ctrl-j newline -bindkey '^n' accept-line -bindkey -a '^n' accept-line - -# another rotation to match qwerty -bindkey -a 'n' down-line-or-history -bindkey -a 'e' up-line-or-history -bindkey -a 'i' vi-forward-char - -# make qwerty -bindkey -a 'k' vi-repeat-search -bindkey -a 'K' vi-rev-repeat-search -bindkey -a 'u' vi-insert -bindkey -a 'U' vi-insert-bol -bindkey -a 'l' vi-undo-change -bindkey -a 'N' vi-join - -# spare -bindkey -a 'j' vi-forward-word-end -bindkey -a 'J' vi-forward-blank-word-end - -# New less versions will read this file directly -export LESSKEYIN="${0:h:A}/colemak-less" - -# Only run lesskey if less version is older than v582 -less_ver=$(less --version | awk '{print $2;exit}') -autoload -Uz is-at-least -if ! is-at-least 582 $less_ver; then - # Old less versions will read this transformed file - export LESSKEY="${0:h:A}/.less" - lesskey -o "$LESSKEY" "$LESSKEYIN" 2>/dev/null -fi -unset less_ver diff --git a/zsh/.oh-my-zsh/plugins/colored-man-pages/README.md b/zsh/.oh-my-zsh/plugins/colored-man-pages/README.md deleted file mode 100644 index 4cbf64d..0000000 --- a/zsh/.oh-my-zsh/plugins/colored-man-pages/README.md +++ /dev/null @@ -1,32 +0,0 @@ -# Colored man pages plugin - -This plugin adds colors to man pages. - -To use it, add `colored-man-pages` to the plugins array in your zshrc file: - -```zsh -plugins=(... colored-man-pages) -``` - -It will also automatically colorize man pages displayed by `dman` or `debman`, -from [`debian-goodies`](https://packages.debian.org/stable/debian-goodies). - -You can also try to color other pages by prefixing the respective command with `colored`: - -```zsh -colored git help clone -``` - -## Customization - -The plugin declares global associative array `less_termcap`, which maps termcap capabilities to escape -sequences for the `less` pager. This mapping can be further customized by the user after the plugin is -loaded. Check out sources for more. - -For example: `less_termcap[md]` maps to `LESS_TERMCAP_md` which is the escape sequence that tells `less` -how to print something in bold. It's currently shown in bold red, but if you want to change it, you -can redefine `less_termcap[md]` in your zshrc file, after OMZ is sourced: - -```zsh -less_termcap[md]="${fg_bold[blue]}" # this tells less to print bold text in bold blue -``` diff --git a/zsh/.oh-my-zsh/plugins/colored-man-pages/colored-man-pages.plugin.zsh b/zsh/.oh-my-zsh/plugins/colored-man-pages/colored-man-pages.plugin.zsh deleted file mode 100644 index 37faed6..0000000 --- a/zsh/.oh-my-zsh/plugins/colored-man-pages/colored-man-pages.plugin.zsh +++ /dev/null @@ -1,48 +0,0 @@ -# Requires colors autoload. -# See termcap(5). - -# Set up once, and then reuse. This way it supports user overrides after the -# plugin is loaded. -typeset -AHg less_termcap - -# bold & blinking mode -less_termcap[mb]="${fg_bold[red]}" -less_termcap[md]="${fg_bold[red]}" -less_termcap[me]="${reset_color}" -# standout mode -less_termcap[so]="${fg_bold[yellow]}${bg[blue]}" -less_termcap[se]="${reset_color}" -# underlining -less_termcap[us]="${fg_bold[green]}" -less_termcap[ue]="${reset_color}" - -# Absolute path to this file's directory. -typeset __colored_man_pages_dir="${0:A:h}" - -function colored() { - local -a environment - - # Convert associative array to plain array of NAME=VALUE items. - local k v - for k v in "${(@kv)less_termcap}"; do - environment+=( "LESS_TERMCAP_${k}=${v}" ) - done - - # Prefer `less` whenever available, since we specifically configured - # environment for it. - environment+=( PAGER="${commands[less]:-$PAGER}" ) - - # See ./nroff script. - if [[ "$OSTYPE" = solaris* ]]; then - environment+=( PATH="${__colored_man_pages_dir}:$PATH" ) - fi - - command env $environment "$@" -} - -# Colorize man and dman/debman (from debian-goodies) -function man \ - dman \ - debman { - colored $0 "$@" -} diff --git a/zsh/.oh-my-zsh/plugins/colored-man-pages/nroff b/zsh/.oh-my-zsh/plugins/colored-man-pages/nroff deleted file mode 100755 index 4ae155d..0000000 --- a/zsh/.oh-my-zsh/plugins/colored-man-pages/nroff +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh - -# The whole point of this wrapper is to replace emboldening factor -u0 with -# -u1 under certain circumstances on Solaris. - -if [ "$1,$2,$3" = "-u0,-Tlp,-man" ]; then - shift - exec /usr/bin/nroff -u1 "$@" -else - # Some other invocation of nroff - exec /usr/bin/nroff "$@" -fi diff --git a/zsh/.oh-my-zsh/plugins/colorize/README.md b/zsh/.oh-my-zsh/plugins/colorize/README.md deleted file mode 100644 index 405bb6d..0000000 --- a/zsh/.oh-my-zsh/plugins/colorize/README.md +++ /dev/null @@ -1,56 +0,0 @@ -# colorize - -With this plugin you can syntax-highlight file contents of over 300 supported languages and other text formats. - -Colorize will highlight the content based on the filename extension. If it can't find a syntax-highlighting -method for a given extension, it will try to find one by looking at the file contents. If no highlight method -is found it will just cat the file normally, without syntax highlighting. - -## Setup - -To use it, add colorize to the plugins array of your `~/.zshrc` file: -``` -plugins=(... colorize) -``` - -## Configuration - -### Requirements - -This plugin requires that at least one of the following tools is installed: - -* [Chroma](https://github.com/alecthomas/chroma) -* [Pygments](https://pygments.org/download/) - -### Colorize tool - -Colorize supports `pygmentize` and `chroma` as syntax highlighter. By default colorize uses `pygmentize` unless it's not installed and `chroma` is. This can be overridden by the `ZSH_COLORIZE_TOOL` environment variable: - -``` -ZSH_COLORIZE_TOOL=chroma -``` - -### Styles - -Pygments offers multiple styles. By default, the `default` style is used, but you can choose another theme by setting the `ZSH_COLORIZE_STYLE` environment variable: - -``` -ZSH_COLORIZE_STYLE="colorful" -``` - -### Chroma Formatter Settings - -Chroma supports terminal output in 8 color, 256 color, and true-color. If you need to change the default terminal output style from the standard 8 color output, set the `ZSH_COLORIZE_CHROMA_FORMATTER` environment variable: - -``` -ZSH_COLORIZE_CHROMA_FORMATTER=terminal256 -``` - -## Usage - -* `ccat [files]`: colorize the contents of the file (or files, if more than one are provided). - If no files are passed it will colorize the standard input. - -* `cless [less-options] [files]`: colorize the contents of the file (or files, if more than one are provided) and open less. - If no files are passed it will colorize the standard input. - The LESSOPEN and LESSCLOSE will be overwritten for this to work, but only in a local scope. diff --git a/zsh/.oh-my-zsh/plugins/colorize/colorize.plugin.zsh b/zsh/.oh-my-zsh/plugins/colorize/colorize.plugin.zsh deleted file mode 100644 index 8ea98f8..0000000 --- a/zsh/.oh-my-zsh/plugins/colorize/colorize.plugin.zsh +++ /dev/null @@ -1,114 +0,0 @@ -# Easier alias to use the plugin -alias ccat="colorize_cat" -alias cless="colorize_less" - -# '$0:A' gets the absolute path of this file -ZSH_COLORIZE_PLUGIN_PATH=$0:A - -colorize_check_requirements() { - local -a available_tools - available_tools=("chroma" "pygmentize") - - if [ -z "$ZSH_COLORIZE_TOOL" ]; then - if (( $+commands[pygmentize] )); then - ZSH_COLORIZE_TOOL="pygmentize" - elif (( $+commands[chroma] )); then - ZSH_COLORIZE_TOOL="chroma" - else - echo "Neither 'pygments' nor 'chroma' is installed!" >&2 - return 1 - fi - fi - - if [[ ${available_tools[(Ie)$ZSH_COLORIZE_TOOL]} -eq 0 ]]; then - echo "ZSH_COLORIZE_TOOL '$ZSH_COLORIZE_TOOL' not recognized. Available options are 'pygmentize' and 'chroma'." >&2 - return 1 - elif (( $+commands["$ZSH_COLORIZE_TOOL"] )); then - echo "Package '$ZSH_COLORIZE_TOOL' is not installed!" >&2 - return 1 - fi -} - -colorize_cat() { - if ! colorize_check_requirements; then - return 1 - fi - - # If the environment variable ZSH_COLORIZE_STYLE - # is set, use that theme instead. Otherwise, - # use the default. - if [ -z "$ZSH_COLORIZE_STYLE" ]; then - # Both pygmentize & chroma support 'emacs' - ZSH_COLORIZE_STYLE="emacs" - fi - - # Use stdin if no arguments have been passed. - if [ $# -eq 0 ]; then - if [[ "$ZSH_COLORIZE_TOOL" == "pygmentize" ]]; then - pygmentize -O style="$ZSH_COLORIZE_STYLE" -g - else - chroma --style="$ZSH_COLORIZE_STYLE" --formatter="${ZSH_COLORIZE_CHROMA_FORMATTER:-terminal}" - fi - return $? - fi - - # Guess lexer from file extension, or guess it from file contents if unsuccessful. - local FNAME lexer - for FNAME in "$@"; do - if [[ "$ZSH_COLORIZE_TOOL" == "pygmentize" ]]; then - lexer=$(pygmentize -N "$FNAME") - if [[ $lexer != text ]]; then - pygmentize -O style="$ZSH_COLORIZE_STYLE" -l "$lexer" "$FNAME" - else - pygmentize -O style="$ZSH_COLORIZE_STYLE" -g "$FNAME" - fi - else - chroma --style="$ZSH_COLORIZE_STYLE" --formatter="${ZSH_COLORIZE_CHROMA_FORMATTER:-terminal}" "$FNAME" - fi - done -} - -# The less option 'F - Forward forever; like "tail -f".' will not work in this implementation -# caused by the lack of the ability to follow the file within pygmentize. -colorize_less() { - if ! colorize_check_requirements; then - return 1 - fi - - _cless() { - # LESS="-R $LESS" enables raw ANSI colors, while maintain already set options. - local LESS="-R $LESS" - - # This variable tells less to pipe every file through the specified command - # (see the man page of less INPUT PREPROCESSOR). - # 'zsh -ic "colorize_cat %s 2> /dev/null"' would not work for huge files like - # the ~/.zsh_history. For such files the tty of the preprocessor will be supended. - # Therefore we must source this file to make colorize_cat available in the - # preprocessor without the interactive mode. - # `2>/dev/null` will suppress the error for large files 'broken pipe' of the python - # script pygmentize, which will show up if less has not fully "loaded the file" - # (e.g. when not scrolled to the bottom) while already the next file will be displayed. - local LESSOPEN="| zsh -c 'source \"$ZSH_COLORIZE_PLUGIN_PATH\"; \ - ZSH_COLORIZE_TOOL=$ZSH_COLORIZE_TOOL ZSH_COLORIZE_STYLE=$ZSH_COLORIZE_STYLE \ - colorize_cat %s 2> /dev/null'" - - # LESSCLOSE will be set to prevent any errors by executing a user script - # which assumes that his LESSOPEN has been executed. - local LESSCLOSE="" - - LESS="$LESS" LESSOPEN="$LESSOPEN" LESSCLOSE="$LESSCLOSE" command less "$@" - } - - if [ -t 0 ]; then - _cless "$@" - else - # The input is not associated with a terminal, therefore colorize_cat will - # colorize this input and pass it to less. - # Less has now to decide what to use. If any files have been provided, less - # will ignore the input by default, otherwise the colorized input will be used. - # If files have been supplied and the input has been redirected, this will - # lead to unnecessary overhead, but retains the ability to use the less options - # without checking for them inside this script. - colorize_cat | _cless "$@" - fi -} diff --git a/zsh/.oh-my-zsh/plugins/command-not-found/README.md b/zsh/.oh-my-zsh/plugins/command-not-found/README.md deleted file mode 100644 index f267f0c..0000000 --- a/zsh/.oh-my-zsh/plugins/command-not-found/README.md +++ /dev/null @@ -1,33 +0,0 @@ -# command-not-found plugin - -This plugin uses the command-not-found package for zsh to provide suggested packages to be installed if a command cannot be found. - -To use it, add `command-not-found` to the plugins array of your zshrc file: - -```zsh -plugins=(... command-not-found) -``` - -An example of how this plugin works in Ubuntu: -``` -$ mutt -The program 'mutt' can be found in the following packages: - * mutt - * mutt-kz - * mutt-patched -Try: sudo apt install -``` - -### Supported platforms - -It works out of the box with the command-not-found packages for: - -- [Ubuntu](https://www.porcheron.info/command-not-found-for-zsh/) -- [Debian](https://packages.debian.org/search?keywords=command-not-found) -- [Arch Linux](https://wiki.archlinux.org/index.php/Pkgfile#Command_not_found) -- [macOS (Homebrew)](https://github.com/Homebrew/homebrew-command-not-found) -- [Fedora](https://fedoraproject.org/wiki/Features/PackageKitCommandNotFound) -- [NixOS](https://github.com/NixOS/nixpkgs/tree/master/nixos/modules/programs/command-not-found) -- [Termux](https://github.com/termux/command-not-found) - -You can add support for other platforms by submitting a Pull Request. diff --git a/zsh/.oh-my-zsh/plugins/command-not-found/command-not-found.plugin.zsh b/zsh/.oh-my-zsh/plugins/command-not-found/command-not-found.plugin.zsh deleted file mode 100644 index 3ec1342..0000000 --- a/zsh/.oh-my-zsh/plugins/command-not-found/command-not-found.plugin.zsh +++ /dev/null @@ -1,62 +0,0 @@ -## Platforms with a built-in command-not-found handler init file - -for file ( - # Arch Linux. Must have pkgfile installed: https://wiki.archlinux.org/index.php/Pkgfile#Command_not_found - /usr/share/doc/pkgfile/command-not-found.zsh - # macOS (M1 and classic Homebrew): https://github.com/Homebrew/homebrew-command-not-found - /opt/homebrew/Library/Taps/homebrew/homebrew-command-not-found/handler.sh - /usr/local/Homebrew/Library/Taps/homebrew/homebrew-command-not-found/handler.sh -); do - if [[ -r "$file" ]]; then - source "$file" - unset file - return 0 - fi -done -unset file - - -## Platforms with manual command_not_found_handler() setup - -# Debian and derivatives: https://launchpad.net/ubuntu/+source/command-not-found -if [[ -x /usr/lib/command-not-found || -x /usr/share/command-not-found/command-not-found ]]; then - command_not_found_handler() { - if [[ -x /usr/lib/command-not-found ]]; then - /usr/lib/command-not-found -- "$1" - return $? - elif [[ -x /usr/share/command-not-found/command-not-found ]]; then - /usr/share/command-not-found/command-not-found -- "$1" - return $? - else - printf "zsh: command not found: %s\n" "$1" >&2 - return 127 - fi - } -fi - -# Fedora: https://fedoraproject.org/wiki/Features/PackageKitCommandNotFound -if [[ -x /usr/libexec/pk-command-not-found ]]; then - command_not_found_handler() { - if [[ -S /var/run/dbus/system_bus_socket && -x /usr/libexec/packagekitd ]]; then - /usr/libexec/pk-command-not-found "$@" - return $? - fi - - printf "zsh: command not found: %s\n" "$1" >&2 - return 127 - } -fi - -# NixOS: https://github.com/NixOS/nixpkgs/tree/master/nixos/modules/programs/command-not-found -if [[ -x /run/current-system/sw/bin/command-not-found ]]; then - command_not_found_handler() { - /run/current-system/sw/bin/command-not-found -- "$@" - } -fi - -# Termux: https://github.com/termux/command-not-found -if [[ -x /data/data/com.termux/files/usr/libexec/termux/command-not-found ]]; then - command_not_found_handler() { - /data/data/com.termux/files/usr/libexec/termux/command-not-found -- "$1" - } -fi diff --git a/zsh/.oh-my-zsh/plugins/common-aliases/README.md b/zsh/.oh-my-zsh/plugins/common-aliases/README.md deleted file mode 100644 index b6f34cb..0000000 --- a/zsh/.oh-my-zsh/plugins/common-aliases/README.md +++ /dev/null @@ -1,123 +0,0 @@ -# Common Aliases Plugin - -This plugin creates helpful shortcut aliases for many commonly used commands. - -To use it add `common-aliases` to the plugins array in your zshrc file: - -```zsh -plugins=(... common-aliases) -``` - -## Aliases - -### ls command - -| Alias | Command | Description | -|-------|---------------|--------------------------------------------------------------------------------| -| l | `ls -lFh` | List files as a long list, show size, type, human-readable | -| la | `ls -lAFh` | List almost all files as a long list show size, type, human-readable | -| lr | `ls -tRFh` | List files recursively sorted by date, show type, human-readable | -| lt | `ls -ltFh` | List files as a long list sorted by date, show type, human-readable | -| ll | `ls -l` | List files as a long list | -| ldot | `ls -ld .*` | List dot files as a long list | -| lS | `ls -1FSsh` | List files showing only size and name sorted by size | -| lart | `ls -1Fcart` | List all files sorted in reverse of create/modification time (oldest first) | -| lrt | `ls -1Fcrt` | List files sorted in reverse of create/modification time(oldest first) | - -### File handling - -| Alias | Command | Description | -|-------|-----------------------|------------------------------------------------------------------------------------| -| rm | `rm -i` | Remove a file | -| cp | `cp -i` | Copy a file | -| mv | `mv -i` | Move a file | -| zshrc | `${=EDITOR} ~/.zshrc` | Quickly access the ~/.zshrc file | -| dud | `du -d 1 -h` | Display the size of files at depth 1 in current location in human-readable form | -| duf | `du -sh` | Display the size of files in current location in human-readable form | -| t | `tail -f` | Shorthand for tail which outputs the last part of a file | - -### find and grep - -| Alias | Command | Description | -|-------|-----------------------------------------------------|-----------------------------------------| -| fd\* | `find . -type d -name` | Find a directory with the given name | -| ff | `find . -type f -name` | Find a file with the given name | -| grep | `grep --color` | Searches for a query string | -| sgrep | `grep -R -n -H -C 5 --exclude-dir={.git,.svn,CVS}` | Useful for searching within files | - -\* Only if the [`fd`](https://github.com/sharkdp/fd) command isn't installed. - -### Other Aliases - -| Alias | Command | Description | -|-----------|---------------------|-------------------------------------------------------------| -| h | `history` | Lists all recently used commands | -| hgrep | `fc -El 0 \| grep` | Searches for a word in the list of previously used commands | -| help | `man` | Opens up the man page for a command | -| p | `ps -f` | Displays currently executing processes | -| sortnr | `sort -n -r` | Used to sort the lines of a text file | -| unexport | `unset` | Used to unset an environment variable | - -## Global aliases - -These aliases are expanded in any position in the command line, meaning you can use them even at the -end of the command you've typed. Examples: - -Quickly pipe to less: -```zsh -$ ls -l /var/log L -# will run -$ ls -l /var/log | less -``` -Silences stderr output: -```zsh -$ find . -type f NE -# will run -$ find . -type f 2>/dev/null -``` - -| Alias | Command | Description | -|-------|-----------------------------|-------------------------------------------------------------| -| H | `\| head` | Pipes output to head which outputs the first part of a file | -| T | `\| tail` | Pipes output to tail which outputs the last part of a file | -| G | `\| grep` | Pipes output to grep to search for some word | -| L | `\| less` | Pipes output to less, useful for paging | -| M | `\| most` | Pipes output to more, useful for paging | -| LL | `2>&1 \| less` | Writes stderr to stdout and passes it to less | -| CA | `2>&1 \| cat -A` | Writes stderr to stdout and passes it to cat | -| NE | `2 > /dev/null` | Silences stderr | -| NUL | `> /dev/null 2>&1` | Silences both stdout and stderr | -| P | `2>&1\| pygmentize -l pytb` | Writes stderr to stdout and passes it to pygmentize | - -## File extension aliases - -These are special aliases that are triggered when a file name is passed as the command. For example, -if the pdf file extension is aliased to `acroread` (a popular Linux pdf reader), when running `file.pdf` -that file will be open with `acroread`. - -### Reading Docs - -| Alias | Command | Description | -|-------|-------------|-------------------------------------| -| pdf | `acroread` | Opens up a document using acroread | -| ps | `gv` | Opens up a .ps file using gv | -| dvi | `xdvi` | Opens up a .dvi file using xdvi | -| chm | `xchm` | Opens up a .chm file using xchm | -| djvu | `djview` | Opens up a .djvu file using djview | - -### Listing files inside a packed file - -| Alias | Command | Description | -|---------|-------------|-------------------------------------| -| zip | `unzip -l` | Lists files inside a .zip file | -| rar | `unrar l` | Lists files inside a .rar file | -| tar | `tar tf` | Lists files inside a .tar file | -| tar.gz | `echo` | Lists files inside a .tar.gz file | -| ace | `unace l` | Lists files inside a .ace file | - -### Some other features - -- Opens urls in terminal using browser specified by the variable `$BROWSER` -- Opens C, C++, Tex and text files using editor specified by the variable `$EDITOR` -- Opens images using image viewer specified by the variable `$XIVIEWER` -- Opens videos and other media using mplayer diff --git a/zsh/.oh-my-zsh/plugins/common-aliases/common-aliases.plugin.zsh b/zsh/.oh-my-zsh/plugins/common-aliases/common-aliases.plugin.zsh deleted file mode 100644 index 4e5ff84..0000000 --- a/zsh/.oh-my-zsh/plugins/common-aliases/common-aliases.plugin.zsh +++ /dev/null @@ -1,88 +0,0 @@ -# Advanced Aliases. -# Use with caution -# - -# ls, the common ones I use a lot shortened for rapid fire usage -alias l='ls -lFh' #size,show type,human readable -alias la='ls -lAFh' #long list,show almost all,show type,human readable -alias lr='ls -tRFh' #sorted by date,recursive,show type,human readable -alias lt='ls -ltFh' #long list,sorted by date,show type,human readable -alias ll='ls -l' #long list -alias ldot='ls -ld .*' -alias lS='ls -1FSsh' -alias lart='ls -1Fcart' -alias lrt='ls -1Fcrt' - -alias zshrc='${=EDITOR} ${ZDOTDIR:-$HOME}/.zshrc' # Quick access to the .zshrc file - -alias grep='grep --color' -alias sgrep='grep -R -n -H -C 5 --exclude-dir={.git,.svn,CVS} ' - -alias t='tail -f' - -# Command line head / tail shortcuts -alias -g H='| head' -alias -g T='| tail' -alias -g G='| grep' -alias -g L="| less" -alias -g M="| most" -alias -g LL="2>&1 | less" -alias -g CA="2>&1 | cat -A" -alias -g NE="2> /dev/null" -alias -g NUL="> /dev/null 2>&1" -alias -g P="2>&1| pygmentize -l pytb" - -alias dud='du -d 1 -h' -alias duf='du -sh *' -(( $+commands[fd] )) || alias fd='find . -type d -name' -alias ff='find . -type f -name' - -alias h='history' -alias hgrep="fc -El 0 | grep" -alias help='man' -alias p='ps -f' -alias sortnr='sort -n -r' -alias unexport='unset' - -alias rm='rm -i' -alias cp='cp -i' -alias mv='mv -i' - -# zsh is able to auto-do some kungfoo -# depends on the SUFFIX :) -autoload -Uz is-at-least -if is-at-least 4.2.0; then - # open browser on urls - if [[ -n "$BROWSER" ]]; then - _browser_fts=(htm html de org net com at cx nl se dk) - for ft in $_browser_fts; do alias -s $ft='$BROWSER'; done - fi - - _editor_fts=(cpp cxx cc c hh h inl asc txt TXT tex) - for ft in $_editor_fts; do alias -s $ft='$EDITOR'; done - - if [[ -n "$XIVIEWER" ]]; then - _image_fts=(jpg jpeg png gif mng tiff tif xpm) - for ft in $_image_fts; do alias -s $ft='$XIVIEWER'; done - fi - - _media_fts=(ape avi flv m4a mkv mov mp3 mpeg mpg ogg ogm rm wav webm) - for ft in $_media_fts; do alias -s $ft=mplayer; done - - #read documents - alias -s pdf=acroread - alias -s ps=gv - alias -s dvi=xdvi - alias -s chm=xchm - alias -s djvu=djview - - #list whats inside packed file - alias -s zip="unzip -l" - alias -s rar="unrar l" - alias -s tar="tar tf" - alias -s tar.gz="echo " - alias -s ace="unace l" -fi - -# Make zsh know about hosts already accessed by SSH -zstyle -e ':completion:*:(ssh|scp|sftp|rsh|rsync):hosts' hosts 'reply=(${=${${(f)"$(cat {/etc/ssh_,~/.ssh/known_}hosts(|2)(N) /dev/null)"}%%[# ]*}//,/ })' diff --git a/zsh/.oh-my-zsh/plugins/compleat/README.md b/zsh/.oh-my-zsh/plugins/compleat/README.md deleted file mode 100644 index af0e383..0000000 --- a/zsh/.oh-my-zsh/plugins/compleat/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# compleat plugin - -This plugin looks for [compleat](https://github.com/mbrubeck/compleat) and loads its completion. - -To use it, add compleat to the plugins array in your zshrc file: - -```zsh -plugins=(... compleat) -``` diff --git a/zsh/.oh-my-zsh/plugins/compleat/compleat.plugin.zsh b/zsh/.oh-my-zsh/plugins/compleat/compleat.plugin.zsh deleted file mode 100644 index 38f1b39..0000000 --- a/zsh/.oh-my-zsh/plugins/compleat/compleat.plugin.zsh +++ /dev/null @@ -1,20 +0,0 @@ -# ------------------------------------------------------------------------------ -# FILE: compleat.plugin.zsh -# DESCRIPTION: oh-my-zsh plugin file. -# AUTHOR: Sorin Ionescu (sorin.ionescu@gmail.com) -# VERSION: 1.0.0 -# ------------------------------------------------------------------------------ - -if (( ${+commands[compleat]} )); then - local prefix="${commands[compleat]:h:h}" - local setup="${prefix}/share/compleat-1.0/compleat_setup" - - if [[ -f "$setup" ]]; then - if ! bashcompinit >/dev/null 2>&1; then - autoload -U bashcompinit - bashcompinit -i - fi - - source "$setup" - fi -fi diff --git a/zsh/.oh-my-zsh/plugins/composer/README.md b/zsh/.oh-my-zsh/plugins/composer/README.md deleted file mode 100644 index 7a5f725..0000000 --- a/zsh/.oh-my-zsh/plugins/composer/README.md +++ /dev/null @@ -1,31 +0,0 @@ -# composer - -This plugin provides completion for [composer](https://getcomposer.org/), as well as aliases -for frequent composer commands. It also adds Composer's global binaries to the PATH, using -Composer if available. - -To use it add `composer` to the plugins array in your zshrc file. - -```zsh -plugins=(... composer) -``` - -## Aliases - -| Alias | Command | Description | -| ------ | ------------------------------------------- | --------------------------------------------------------------------------------------- | -| `c` | `composer` | Starts composer | -| `csu` | `composer self-update` | Updates composer to the latest version | -| `cu` | `composer update` | Updates composer dependencies and `composer.lock` file | -| `cr` | `composer require` | Adds new packages to `composer.json` | -| `crm` | `composer remove` | Removes packages from `composer.json` | -| `ci` | `composer install` | Resolves and installs dependencies from `composer.json` | -| `ccp` | `composer create-project` | Create new project from an existing package | -| `cdu` | `composer dump-autoload` | Updates the autoloader | -| `cdo` | `composer dump-autoload -o` | Converts PSR-0/4 autoloading to classmap for a faster autoloader (good for production) | -| `cgu` | `composer global update` | Allows update command to run on COMPOSER_HOME directory | -| `cgr` | `composer global require` | Allows require command to run on COMPOSER_HOME directory | -| `cgrm` | `composer global remove` | Allows remove command to run on COMPOSER_HOME directory | -| `cget` | `curl -s https://getcomposer.org/installer` | Installs composer in the current directory | -| `co` | `composer outdated` | Shows a list of installed packages with available updates | -| `cod` | `composer outdated --direct` | Shows a list of installed packages with available updates which are direct dependencies | diff --git a/zsh/.oh-my-zsh/plugins/composer/composer.plugin.zsh b/zsh/.oh-my-zsh/plugins/composer/composer.plugin.zsh deleted file mode 100644 index 218a13e..0000000 --- a/zsh/.oh-my-zsh/plugins/composer/composer.plugin.zsh +++ /dev/null @@ -1,70 +0,0 @@ -# ------------------------------------------------------------------------------ -# FILE: composer.plugin.zsh -# DESCRIPTION: oh-my-zsh composer plugin file. -# AUTHOR: Daniel Gomes (me@danielcsgomes.com) -# VERSION: 1.0.0 -# ------------------------------------------------------------------------------ - -# Composer basic command completion -_composer_get_command_list () { - $_comp_command1 --no-ansi 2>/dev/null | sed "1,/Available commands/d" | awk '/^[ \t]*[a-z]+/ { print $1 }' -} - -_composer_get_required_list () { - $_comp_command1 show -s --no-ansi 2>/dev/null | sed '1,/requires/d' | awk 'NF > 0 && !/^requires \(dev\)/{ print $1 }' -} - -_composer () { - local curcontext="$curcontext" state line - typeset -A opt_args - _arguments \ - '*:: :->subcmds' - - if (( CURRENT == 1 )) || ( ((CURRENT == 2)) && [ "$words[1]" = "global" ] ) ; then - compadd $(_composer_get_command_list) - else - compadd $(_composer_get_required_list) - fi -} - -compdef _composer composer -compdef _composer composer.phar - -# Aliases -alias c='composer' -alias csu='composer self-update' -alias cu='composer update' -alias cr='composer require' -alias crm='composer remove' -alias ci='composer install' -alias ccp='composer create-project' -alias cdu='composer dump-autoload' -alias cdo='composer dump-autoload -o' -alias cgu='composer global update' -alias cgr='composer global require' -alias cgrm='composer global remove' -alias co='composer outdated' -alias cod='composer outdated --direct' - -# install composer in the current directory -alias cget='curl -s https://getcomposer.org/installer | php' - -# Add Composer's global binaries to PATH, using Composer if available. -if (( $+commands[composer] )); then - autoload -Uz _store_cache _retrieve_cache _cache_invalid - - _retrieve_cache composer - - if [[ -z $__composer_bin_dir ]]; then - __composer_bin_dir=$(composer global config bin-dir --absolute 2>/dev/null) - _store_cache composer __composer_bin_dir - fi - - # Add Composer's global binaries to PATH - export PATH="$PATH:$__composer_bin_dir" - - unset __composer_bin_dir -else - [ -d $HOME/.composer/vendor/bin ] && export PATH=$PATH:$HOME/.composer/vendor/bin - [ -d $HOME/.config/composer/vendor/bin ] && export PATH=$PATH:$HOME/.config/composer/vendor/bin -fi diff --git a/zsh/.oh-my-zsh/plugins/copybuffer/README.md b/zsh/.oh-my-zsh/plugins/copybuffer/README.md deleted file mode 100644 index da138bd..0000000 --- a/zsh/.oh-my-zsh/plugins/copybuffer/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# `copybuffer` plugin - -This plugin binds the ctrl-o keyboard shortcut to a command that copies the text -that is currently typed in the command line ($BUFFER) to the system clipboard. - -This is useful if you type a command - and before you hit enter to execute it - want -to copy it maybe so you can paste it into a script, gist or whatnot. - -```zsh -plugins=(... copybuffer) -``` diff --git a/zsh/.oh-my-zsh/plugins/copybuffer/copybuffer.plugin.zsh b/zsh/.oh-my-zsh/plugins/copybuffer/copybuffer.plugin.zsh deleted file mode 100644 index e67f920..0000000 --- a/zsh/.oh-my-zsh/plugins/copybuffer/copybuffer.plugin.zsh +++ /dev/null @@ -1,16 +0,0 @@ -# copy the active line from the command line buffer -# onto the system clipboard - -copybuffer () { - if which clipcopy &>/dev/null; then - printf "%s" "$BUFFER" | clipcopy - else - zle -M "clipcopy not found. Please make sure you have Oh My Zsh installed correctly." - fi -} - -zle -N copybuffer - -bindkey -M emacs "^O" copybuffer -bindkey -M viins "^O" copybuffer -bindkey -M vicmd "^O" copybuffer diff --git a/zsh/.oh-my-zsh/plugins/copydir/README.md b/zsh/.oh-my-zsh/plugins/copydir/README.md deleted file mode 100644 index 594bf10..0000000 --- a/zsh/.oh-my-zsh/plugins/copydir/README.md +++ /dev/null @@ -1,10 +0,0 @@ -# copydir plugin - -Copies the path of your current folder to the system clipboard. - -To use, add `copydir` to your plugins array: -``` -plugins=(... copydir) -``` - -Then use the command `copydir` to copy the $PWD. diff --git a/zsh/.oh-my-zsh/plugins/copydir/copydir.plugin.zsh b/zsh/.oh-my-zsh/plugins/copydir/copydir.plugin.zsh deleted file mode 100644 index c451062..0000000 --- a/zsh/.oh-my-zsh/plugins/copydir/copydir.plugin.zsh +++ /dev/null @@ -1,5 +0,0 @@ -# Copies the pathname of the current directory to the system or X Windows clipboard -function copydir { - emulate -L zsh - print -n $PWD | clipcopy -} diff --git a/zsh/.oh-my-zsh/plugins/copyfile/README.md b/zsh/.oh-my-zsh/plugins/copyfile/README.md deleted file mode 100644 index a110b83..0000000 --- a/zsh/.oh-my-zsh/plugins/copyfile/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# copyfile plugin - -Puts the contents of a file in your system clipboard so you can paste it anywhere. - -To use, add `copyfile` to your plugins array: - -```zsh -plugins=(... copyfile) -``` - -Then you can run the command `copyfile ` to copy the file named `filename`. diff --git a/zsh/.oh-my-zsh/plugins/copyfile/copyfile.plugin.zsh b/zsh/.oh-my-zsh/plugins/copyfile/copyfile.plugin.zsh deleted file mode 100644 index f4eca5a..0000000 --- a/zsh/.oh-my-zsh/plugins/copyfile/copyfile.plugin.zsh +++ /dev/null @@ -1,7 +0,0 @@ -# Copies the contents of a given file to the system or X Windows clipboard -# -# copyfile -function copyfile { - emulate -L zsh - clipcopy $1 -} diff --git a/zsh/.oh-my-zsh/plugins/cp/README.md b/zsh/.oh-my-zsh/plugins/cp/README.md deleted file mode 100644 index 2373424..0000000 --- a/zsh/.oh-my-zsh/plugins/cp/README.md +++ /dev/null @@ -1,32 +0,0 @@ -# cp plugin - -This plugin defines a `cpv` function that uses `rsync` so that you -get the features and security of this command. - -To enable, add `cp` to your `plugins` array in your zshrc file: - -```zsh -plugins=(... cp) -``` - -## Description - -The enabled options for rsync are: - -- `-p`: preserves permissions. - -- `-o`: preserves owner. - -* `-g`: preserves group. - -* `-b`: make a backup of the original file instead of overwriting it, if it exists. - -* `-r`: recurse directories. - -* `-hhh`: outputs numbers in human-readable format, in units of 1024 (K, M, G, T). - -* `--backup-dir="/tmp/rsync-$USERNAME"`: move backup copies to "/tmp/rsync-$USERNAME". - -* `-e /dev/null`: only work on local files (disable remote shells). - -* `--progress`: display progress. diff --git a/zsh/.oh-my-zsh/plugins/cp/cp.plugin.zsh b/zsh/.oh-my-zsh/plugins/cp/cp.plugin.zsh deleted file mode 100644 index a562591..0000000 --- a/zsh/.oh-my-zsh/plugins/cp/cp.plugin.zsh +++ /dev/null @@ -1,4 +0,0 @@ -cpv() { - rsync -pogbr -hhh --backup-dir="/tmp/rsync-${USERNAME}" -e /dev/null --progress "$@" -} -compdef _files cpv diff --git a/zsh/.oh-my-zsh/plugins/cpanm/README.md b/zsh/.oh-my-zsh/plugins/cpanm/README.md deleted file mode 100644 index 13e93d0..0000000 --- a/zsh/.oh-my-zsh/plugins/cpanm/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# Cpanm - -This plugin provides completion for [Cpanm](https://github.com/miyagawa/cpanminus) ([docs](https://metacpan.org/pod/App::cpanminus)). - -To use it add cpanm to the plugins array in your zshrc file. - -```zsh -plugins=(... cpanm) -``` diff --git a/zsh/.oh-my-zsh/plugins/cpanm/_cpanm b/zsh/.oh-my-zsh/plugins/cpanm/_cpanm deleted file mode 100644 index ff9ae1c..0000000 --- a/zsh/.oh-my-zsh/plugins/cpanm/_cpanm +++ /dev/null @@ -1,64 +0,0 @@ -#compdef cpanm - -## -# cpanminus Z Shell completion script -## -# -# Current supported cpanm version: 1.4000 (Tue Mar 8 01:00:49 PST 2011) -# - -local arguments curcontext="$curcontext" -typeset -A opt_args - - -arguments=( - -# Commands -# '(--install -i)'{--install,-i}'[Installs the modules]' - '(- :)--self-upgrade[Upgrades itself]' - '(- :)--info[Displays distribution info on CPAN]' - '(--installdeps)--installdeps[Only install dependencies]' - '(--look)--look[Download/unpack the distribution and then open the directory with your shell]' - '(- :)'{--help,-h}'[Displays help information]' - '(- :)'{--version,-V}'[Displays software version]' - -# Options - {--force,-f}'[Force install]' - {--notest,-n}'[Do not run unit tests]' - {--sudo,-S}'[sudo to run install commands]' - '(-v --verbose --quiet -q)'{--verbose,-v}'[Turns on chatty output]' - '(-q --quiet --verbose -v)'{--quiet,-q}'[Turns off all output]' - {--local-lib,-l}'[Specify the install base to install modules]' - {--local-lib-contained,-L}'[Specify the install base to install all non-core modules]' - '--mirror[Specify the base URL for the mirror (e.g. http://cpan.cpantesters.org/)]:URLs:_urls' - '--mirror-only[Use the mirror\''s index file instead of the CPAN Meta DB]' - '--prompt[Prompt when configure/build/test fails]' - '--reinstall[Reinstall the distribution even if you already have the latest version installed]' - '--interactive[Turn on interactive configure]' - - '--scandeps[Scan the depencencies of given modules and output the tree in a text format]' - '--format[Specify what format to display the scanned dependency tree]:scandeps format:(tree json yaml dists)' - - '--save-dists[Specify the optional directory path to copy downloaded tarballs]' -# '--uninst-shadows[Uninstalls the shadow files of the distribution that you\''re installing]' - - '--auto-cleanup[Number of days that cpanm\''s work directories expire in. Defaults to 7]' - '(--no-man-pages)--man-pages[Generates man pages for executables (man1) and libraries (man3)]' - '(--man-pages)--no-man-pages[Do not generate man pages]' - - - # Note: Normally with "--lwp", "--wget" and "--curl" options set to true (which is the default) cpanm tries LWP, - # Wget, cURL and HTTP::Tiny (in that order) and uses the first one available. - # (So that the exclusions are not enabled here for the completion) - '(--lwp)--lwp[Use LWP module to download stuff]' - '(--wget)--wget[Use GNU Wget (if available) to download stuff]' - '(--curl)--curl[Use cURL (if available) to download stuff]' - -# Other completions - '*:Local directory or archive:_files -/ -g "*.(tar.gz|tgz|tar.bz2|zip)(-.)"' - # '*::args: _normal' # this looks for default files (any files) -) -_arguments -s $arguments \ - && return 0 - -return 1 diff --git a/zsh/.oh-my-zsh/plugins/dash/README.md b/zsh/.oh-my-zsh/plugins/dash/README.md deleted file mode 100644 index 0ca3e4e..0000000 --- a/zsh/.oh-my-zsh/plugins/dash/README.md +++ /dev/null @@ -1,28 +0,0 @@ -# Dash plugin - -This plugin adds command line functionality for [Dash](https://kapeli.com/dash), -an API Documentation Browser for macOS. This plugin requires Dash to be installed -to work. - -To use it, add `dash` to the plugins array in your zshrc file: - -```zsh -plugins=(... dash) -``` - -## Usage - -- Open and switch to the dash application. -``` -dash -``` - -- Query for something in dash app: `dash query` -``` -dash golang -``` - -- You can optionally provide a keyword: `dash [keyword:]query` -``` -dash python:tuple -``` diff --git a/zsh/.oh-my-zsh/plugins/dash/dash.plugin.zsh b/zsh/.oh-my-zsh/plugins/dash/dash.plugin.zsh deleted file mode 100644 index ace2e33..0000000 --- a/zsh/.oh-my-zsh/plugins/dash/dash.plugin.zsh +++ /dev/null @@ -1,80 +0,0 @@ -# Usage: dash [keyword:]query -dash() { open dash://"$*" } -compdef _dash dash - -_dash() { - # No sense doing this for anything except the 2nd position and if we haven't - # specified which docset to query against - if [[ $CURRENT -eq 2 && ! "$words[2]" =~ ":" ]]; then - local -a _all_docsets - _all_docsets=() - # Use defaults to get the array of docsets from preferences - # Have to smash it into one big line so that each docset is an element of - # our DOCSETS array - DOCSETS=("${(@f)$(defaults read com.kapeli.dashdoc docsets | tr -d '\n' | grep -oE '\{.*?\}')}") - - # remove all newlines since defaults prints so pretty like - # Now get each docset and output each on their own line - for doc in "$DOCSETS[@]"; do - # Only output docsets that are actually enabled - if [[ "`echo $doc | grep -Eo \"isEnabled = .*?;\" | sed 's/[^01]//g'`" == "0" ]]; then - continue - fi - - keyword='' - - # Order of preference as explained to me by @kapeli via email - KEYWORD_LOCATORS=(keyword suggestedKeyword platform) - for locator in "$KEYWORD_LOCATORS[@]"; do - # Echo the docset, try to find the appropriate keyword - # Strip doublequotes and colon from any keyword so that everything has the - # same format when output (we'll add the colon in the completion) - keyword=`echo $doc | grep -Eo "$locator = .*?;" | sed -e "s/$locator = \(.*\);/\1/" -e "s/[\":]//g"` - if [[ ! -z "$keyword" ]]; then - # if we fall back to platform, we should do some checking per @kapeli - if [[ "$locator" == "platform" ]]; then - # Since these are the only special cases right now, let's not do the - # expensive processing unless we have to - if [[ "$keyword" = (python|java|qt|cocos2d) ]]; then - docsetName=`echo $doc | grep -Eo "docsetName = .*?;" | sed -e "s/docsetName = \(.*\);/\1/" -e "s/[\":]//g"` - case "$keyword" in - python) - case "$docsetName" in - "Python 2") keyword="python2" ;; - "Python 3") keyword="python3" ;; - esac ;; - java) - case "$docsetName" in - "Java SE7") keyword="java7" ;; - "Java SE6") keyword="java6" ;; - "Java SE8") keyword="java8" ;; - esac ;; - qt) - case "$docsetName" in - "Qt 5") keyword="qt5" ;; - "Qt 4"|Qt) keyword="qt4" ;; - esac ;; - cocos2d) - case "$docsetName" in - Cocos3D) keyword="cocos3d" ;; - esac ;; - esac - fi - fi - - # Bail once we have a match - break - fi - done - - # If we have a keyword, add it to the list! - if [[ ! -z "$keyword" ]]; then - _all_docsets+=($keyword) - fi - done - - # special thanks to [arx] on #zsh for getting me sorted on this piece - compadd -qS: -- "$_all_docsets[@]" - return - fi -} diff --git a/zsh/.oh-my-zsh/plugins/debian/README.md b/zsh/.oh-my-zsh/plugins/debian/README.md deleted file mode 100644 index 922d68c..0000000 --- a/zsh/.oh-my-zsh/plugins/debian/README.md +++ /dev/null @@ -1,85 +0,0 @@ -# debian - -This plugin provides Debian-related aliases and functions for zsh. - -To use it add `debian` to the plugins array in your zshrc file. - -```zsh -plugins=(... debian) -``` - -## Settings - -- `$apt_pref`: use aptitude or apt if installed, fallback is apt-get. -- `$apt_upgr`: use upgrade or safe-upgrade (for aptitude). - -Set `$apt_pref` and `$apt_upgr` to whatever command you want (before sourcing Oh My Zsh) to override this behavior. - -## Common Aliases - -| Alias | Command | Description | -| ------ | ---------------------------------------------------------------------- | ---------------------------------------------------------- | -| `age` | `apt-get` | Command line tool for handling packages | -| `api` | `aptitude` | Same functionality as `apt-get`, provides extra options | -| `acs` | `apt-cache search` | Command line tool for searching apt software package cache | -| `aps` | `aptitude search` | Searches installed packages using aptitude | -| `as` | `aptitude -F '* %p -> %d \n(%v/%V)' --no-gui --disable-columns search` | Print searched packages using a custom format | -| `afs` | `apt-file search --regexp` | Search file in packages | -| `asrc` | `apt-get source` | Fetch source packages through `apt-get` | -| `app` | `apt-cache policy` | Displays priority of package sources | - -## Superuser Operations Aliases - -| Alias | Command | Description | -| -------- | -------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | -| `aac` | `sudo $apt_pref autoclean` | Clears out the local repository of retrieved package files | -| `abd` | `sudo $apt_pref build-dep` | Installs all dependencies for building packages | -| `ac` | `sudo $apt_pref clean` | Clears out the local repository of retrieved package files except lock files | -| `ad` | `sudo $apt_pref update` | Updates the package lists for upgrades for packages | -| `adg` | `sudo $apt_pref update && sudo $apt_pref $apt_upgr` | Update and upgrade packages | -| `adu` | `sudo $apt_pref update && sudo $apt_pref dist-upgrade` | Smart upgrade that handles dependencies | -| `afu` | `sudo apt-file update` | Update the files in packages | -| `au` | `sudo $apt_pref $apt_upgr` | Install package upgrades | -| `ai` | `sudo $apt_pref install` | Command-line tool to install package | -| `ail` | `sed -e 's/ */ /g' -e 's/ *//' \| cut -s -d ' ' -f 1 \| xargs sudo $apt_pref install` | Install all packages given on the command line while using only the first word of each line | -| `ap` | `sudo $apt_pref purge` | Removes packages along with configuration files | -| `ar` | `sudo $apt_pref remove` | Removes packages, keeps the configuration files | -| `ads` | `sudo apt-get dselect-upgrade` | Installs packages from list and removes all not in the list | -| `dia` | `sudo dpkg -i ./*.deb` | Install all .deb files in the current directory | -| `di` | `sudo dpkg -i` | Install all .deb files in the current directory | -| `kclean` | `sudo aptitude remove -P ?and(~i~nlinux-(ima\|hea) ?not(~n$(uname -r)))` | Remove ALL kernel images and headers EXCEPT the one in use | - -## Aliases - Commands using `su` - -| Alias | Command | -| ----- | --------------------------------------------------------- | -| `aac` | `su -ls "$apt_pref autoclean" root` | -| `ac` | `su -ls "$apt_pref clean" root` | -| `ad` | `su -lc "$apt_pref update" root` | -| `adg` | `su -lc "$apt_pref update && aptitude $apt_upgr" root` | -| `adu` | `su -lc "$apt_pref update && aptitude dist-upgrade" root` | -| `afu` | `su -lc "apt-file update"` | -| `au` | `su -lc "$apt_pref $apt_upgr" root` | -| `dia` | `su -lc "dpkg -i ./*.deb" root` | - -## Miscellaneous Aliases - -| Alias | Command | Description | -| --------- | ---------------------------------------------- | ------------------------------ | -| `allpkgs` | `aptitude search -F "%p" --disable-columns ~i` | Display all installed packages | -| `mydeb` | `time dpkg-buildpackage -rfakeroot -us -uc` | Create a basic .deb package | - -## Functions - -| Function | Description | -| ------------------- | --------------------------------------------------------------- | -| `apt-copy` | Create a simple script that can be used to 'duplicate' a system | -| `apt-history` | Displays apt history for a command | -| `kerndeb` | Builds kernel packages | -| `apt-list-packages` | List packages by size | - -## Authors - -- [@AlexBio](https://github.com/AlexBio) -- [@dbb](https://github.com/dbb) -- [@Mappleconfusers](https://github.com/Mappleconfusers) diff --git a/zsh/.oh-my-zsh/plugins/debian/debian.plugin.zsh b/zsh/.oh-my-zsh/plugins/debian/debian.plugin.zsh deleted file mode 100644 index bde97cd..0000000 --- a/zsh/.oh-my-zsh/plugins/debian/debian.plugin.zsh +++ /dev/null @@ -1,224 +0,0 @@ -# Use aptitude or apt if installed, fallback is apt-get -# You can just set apt_pref='apt-get' to override it. - -if [[ -z $apt_pref || -z $apt_upgr ]]; then - if [[ -e $commands[aptitude] ]]; then - apt_pref='aptitude' - apt_upgr='safe-upgrade' - elif [[ -e $commands[apt] ]]; then - apt_pref='apt' - apt_upgr='upgrade' - else - apt_pref='apt-get' - apt_upgr='upgrade' - fi -fi - -# Use sudo by default if it's installed -if [[ -e $commands[sudo] ]]; then - use_sudo=1 -fi - -# Aliases ################################################################### -# These are for more obscure uses of apt-get and aptitude that aren't covered -# below. -alias age='apt-get' -alias api='aptitude' - -# Some self-explanatory aliases -alias acs="apt-cache search" -alias aps='aptitude search' -alias as="aptitude -F '* %p -> %d \n(%v/%V)' --no-gui --disable-columns search" - -# apt-file -alias afs='apt-file search --regexp' - - -# These are apt-get only -alias asrc='apt-get source' -alias app='apt-cache policy' - -# superuser operations ###################################################### -if [[ $use_sudo -eq 1 ]]; then -# commands using sudo ####### - alias aac="sudo $apt_pref autoclean" - alias abd="sudo $apt_pref build-dep" - alias ac="sudo $apt_pref clean" - alias ad="sudo $apt_pref update" - alias adg="sudo $apt_pref update && sudo $apt_pref $apt_upgr" - alias adu="sudo $apt_pref update && sudo $apt_pref dist-upgrade" - alias afu="sudo apt-file update" - alias au="sudo $apt_pref $apt_upgr" - alias ai="sudo $apt_pref install" - # Install all packages given on the command line while using only the first word of each line: - # acs ... | ail - alias ail="sed -e 's/ */ /g' -e 's/ *//' | cut -s -d ' ' -f 1 | xargs sudo $apt_pref install" - alias ap="sudo $apt_pref purge" - alias ar="sudo $apt_pref remove" - - # apt-get only - alias ads="sudo apt-get dselect-upgrade" - - # Install all .deb files in the current directory. - # Warning: you will need to put the glob in single quotes if you use: - # glob_subst - alias dia="sudo dpkg -i ./*.deb" - alias di="sudo dpkg -i" - - # Remove ALL kernel images and headers EXCEPT the one in use - alias kclean='sudo aptitude remove -P "?and(~i~nlinux-(ima|hea) ?not(~n$(uname -r)))"' - - -# commands using su ######### -else - alias aac="su -ls '$apt_pref autoclean' root" - function abd() { - cmd="su -lc '$apt_pref build-dep $@' root" - print "$cmd" - eval "$cmd" - } - alias ac="su -ls '$apt_pref clean' root" - alias ad="su -lc '$apt_pref update' root" - alias adg="su -lc '$apt_pref update && aptitude $apt_upgr' root" - alias adu="su -lc '$apt_pref update && aptitude dist-upgrade' root" - alias afu="su -lc '$apt-file update'" - alias au="su -lc '$apt_pref $apt_upgr' root" - function ai() { - cmd="su -lc 'aptitude -P install $@' root" - print "$cmd" - eval "$cmd" - } - function ap() { - cmd="su -lc '$apt_pref -P purge $@' root" - print "$cmd" - eval "$cmd" - } - function ar() { - cmd="su -lc '$apt_pref -P remove $@' root" - print "$cmd" - eval "$cmd" - } - - # Install all .deb files in the current directory - # Assumes glob_subst is off - alias dia='su -lc "dpkg -i ./*.deb" root' - alias di='su -lc "dpkg -i" root' - - # Remove ALL kernel images and headers EXCEPT the one in use - alias kclean='su -lc "aptitude remove -P \"?and(~i~nlinux-(ima|hea) ?not(~n$(uname -r)))\"" root' -fi - -# Completion ################################################################ - -# -# Registers a compdef for $1 that calls $apt_pref with the commands $2 -# To do that it creates a new completion function called _apt_pref_$2 -# -function apt_pref_compdef() { - local f fb - f="_apt_pref_${2}" - - eval "function ${f}() { - shift words; - service=\"\$apt_pref\"; - words=(\"\$apt_pref\" '$2' \$words); - ((CURRENT++)) - test \"\${apt_pref}\" = 'aptitude' && _aptitude || _apt - }" - - compdef "$f" "$1" -} - -apt_pref_compdef aac "autoclean" -apt_pref_compdef abd "build-dep" -apt_pref_compdef ac "clean" -apt_pref_compdef ad "update" -apt_pref_compdef afu "update" -apt_pref_compdef au "$apt_upgr" -apt_pref_compdef ai "install" -apt_pref_compdef ail "install" -apt_pref_compdef ap "purge" -apt_pref_compdef ar "remove" -apt_pref_compdef ads "dselect-upgrade" - -# Misc. ##################################################################### -# print all installed packages -alias allpkgs='aptitude search -F "%p" --disable-columns ~i' - -# Create a basic .deb package -alias mydeb='time dpkg-buildpackage -rfakeroot -us -uc' - - -# Functions ################################################################# -# create a simple script that can be used to 'duplicate' a system -function apt-copy() { - print '#!/bin/sh'"\n" > apt-copy.sh - - cmd='$apt_pref install' - - for p in ${(f)"$(aptitude search -F "%p" --disable-columns \~i)"}; { - cmd="${cmd} ${p}" - } - - print $cmd "\n" >> apt-copy.sh - - chmod +x apt-copy.sh -} - -# Prints apt history -# Usage: -# apt-history install -# apt-history upgrade -# apt-history remove -# apt-history rollback -# apt-history list -# Based On: https://linuxcommando.blogspot.com/2008/08/how-to-show-apt-log-history.html -function apt-history() { - case "$1" in - install) - zgrep --no-filename 'install ' $(ls -rt /var/log/dpkg*) - ;; - upgrade|remove) - zgrep --no-filename $1 $(ls -rt /var/log/dpkg*) - ;; - rollback) - zgrep --no-filename upgrade $(ls -rt /var/log/dpkg*) | \ - grep "$2" -A10000000 | \ - grep "$3" -B10000000 | \ - awk '{print $4"="$5}' - ;; - list) - zgrep --no-filename '' $(ls -rt /var/log/dpkg*) - ;; - *) - echo "Parameters:" - echo " install - Lists all packages that have been installed." - echo " upgrade - Lists all packages that have been upgraded." - echo " remove - Lists all packages that have been removed." - echo " rollback - Lists rollback information." - echo " list - Lists all contains of dpkg logs." - ;; - esac -} - -# Kernel-package building shortcut -function kerndeb() { - # temporarily unset MAKEFLAGS ( '-j3' will fail ) - MAKEFLAGS=$( print - $MAKEFLAGS | perl -pe 's/-j\s*[\d]+//g' ) - print '$MAKEFLAGS set to '"'$MAKEFLAGS'" - appendage='-custom' # this shows up in $(uname -r ) - revision=$(date +"%Y%m%d") # this shows up in the .deb file name - - make-kpkg clean - - time fakeroot make-kpkg --append-to-version "$appendage" --revision \ - "$revision" kernel_image kernel_headers -} - -# List packages by size -function apt-list-packages() { - dpkg-query -W --showformat='${Installed-Size} ${Package} ${Status}\n' | \ - grep -v deinstall | \ - sort -n | \ - awk '{print $1" "$2}' -} diff --git a/zsh/.oh-my-zsh/plugins/deno/README.md b/zsh/.oh-my-zsh/plugins/deno/README.md deleted file mode 100644 index 828e6af..0000000 --- a/zsh/.oh-my-zsh/plugins/deno/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# Deno Plugin - -This plugin sets up completion and aliases for [Deno](https://deno.land). - -## Aliases - -| Alias | Full command | -| ----- | ---------------- | -| db | deno bundle | -| dc | deno compile | -| dca | deno cache | -| dfmt | deno fmt | -| dh | deno help | -| dli | deno lint | -| drn | deno run | -| drw | deno run --watch | -| dts | deno test | -| dup | deno upgrade | diff --git a/zsh/.oh-my-zsh/plugins/deno/deno.plugin.zsh b/zsh/.oh-my-zsh/plugins/deno/deno.plugin.zsh deleted file mode 100644 index 34adddc..0000000 --- a/zsh/.oh-my-zsh/plugins/deno/deno.plugin.zsh +++ /dev/null @@ -1,35 +0,0 @@ -# ALIASES -alias db='deno bundle' -alias dc='deno compile' -alias dca='deno cache' -alias dfmt='deno fmt' -alias dh='deno help' -alias dli='deno lint' -alias drn='deno run' -alias drw='deno run --watch' -alias dts='deno test' -alias dup='deno upgrade' - -# COMPLETION FUNCTION -if (( $+commands[deno] )); then - # remove old generated completion file - command rm -f "${0:A:h}/_deno" - - ver="$(deno --version)" - ver_file="$ZSH_CACHE_DIR/deno_version" - comp_file="$ZSH_CACHE_DIR/completions/_deno" - - mkdir -p "${comp_file:h}" - (( ${fpath[(Ie)${comp_file:h}]} )) || fpath=("${comp_file:h}" $fpath) - - if [[ ! -f "$comp_file" || ! -f "$ver_file" || "$ver" != "$(< "$ver_file")" ]]; then - deno completions zsh >| "$comp_file" - echo "$ver" >| "$ver_file" - fi - - declare -A _comps - autoload -Uz _deno - _comps[deno]=_deno - - unset ver ver_file comp_file -fi diff --git a/zsh/.oh-my-zsh/plugins/dircycle/README.md b/zsh/.oh-my-zsh/plugins/dircycle/README.md deleted file mode 100644 index 3c9b3a9..0000000 --- a/zsh/.oh-my-zsh/plugins/dircycle/README.md +++ /dev/null @@ -1,78 +0,0 @@ -# dircycle - -Plugin for cycling through the directory stack - -This plugin enables directory navigation similar to using back and forward on browsers or common file explorers like Finder or Nautilus. It uses a small zle trick that lets you cycle through your directory stack left or right using Ctrl + Shift + Left / Right . This is useful when moving back and forth between directories in development environments, and can be thought of as kind of a nondestructive pushd/popd. - -## Enabling the plugin - -1. Open your `.zshrc` file and add `dircycle` in the plugins section: - - ```zsh - plugins=( - # all your enabled plugins - dircycle - ) - ``` - -2. Restart the shell or restart your Terminal session: - - ```console - $ exec zsh - $ - ``` - -## Usage Examples - -Say you opened these directories on the terminal: - -```console -~$ cd Projects -~/Projects$ cd Hacktoberfest -~/Projects/Hacktoberfest$ cd oh-my-zsh -~/Projects/Hacktoberfest/oh-my-zsh$ dirs -v -0 ~/Projects/Hacktoberfest/oh-my-zsh -1 ~/Projects/Hacktoberfest -2 ~/Projects -3 ~ -``` - -By pressing Ctrl + Shift + Left, the current working directory or `$CWD` will be from `oh-my-zsh` to `Hacktoberfest`. Press it again and it will be at `Projects`. - -And by pressing Ctrl + Shift + Right, the `$CWD` will be from `Projects` to `Hacktoberfest`. Press it again and it will be at `oh-my-zsh`. - -Here's a example history table with the same accessed directories like above: - -| Current `$CWD` | Key press | New `$CWD` | -| --------------- | ----------------------------------------------------- | --------------- | -| `oh-my-zsh` | Ctrl + Shift + Left | `Hacktoberfest` | -| `Hacktoberfest` | Ctrl + Shift + Left | `Projects` | -| `Projects` | Ctrl + Shift + Left | `~` | -| `~` | Ctrl + Shift + Right | `Projects` | -| `Projects` | Ctrl + Shift + Right | `Hacktoberfest` | -| `Hacktoberfest` | Ctrl + Shift + Right | `oh-my-zsh` | -| `oh-my-zsh` | Ctrl + Shift + Right | `~` | - -Note the last traversal, when pressing Ctrl + Shift + Right on a last known `$CWD`, it will change back to the first known `$CWD`, which in the example is `~`. - -Here's an asciinema cast demonstrating the example above: - -[![asciicast](https://asciinema.org/a/204406.png)](https://asciinema.org/a/204406) - -## Functions - -| Function | Description | -| -------------------- | --------------------------------------------------------------------------------------------------------- | -| `insert-cycledleft` | Change `$CWD` to the previous known stack, binded on Ctrl + Shift + Left | -| `insert-cycledright` | Change `$CWD` to the next known stack, binded on Ctrl + Shift + Right | - -## Rebinding keys - -You can bind these functions to other key sequences, as long as you know the bindkey sequence. For example, these commands bind to Alt + Shift + Left / Right in `xterm-256color`: - -```zsh -bindkey '^[[1;4D' insert-cycledleft -bindkey '^[[1;4C' insert-cycledright -``` - -You can get the bindkey sequence by pressing Ctrl + V, then pressing the keyboard shortcut you want to use. diff --git a/zsh/.oh-my-zsh/plugins/dircycle/dircycle.plugin.zsh b/zsh/.oh-my-zsh/plugins/dircycle/dircycle.plugin.zsh deleted file mode 100644 index bb69f6b..0000000 --- a/zsh/.oh-my-zsh/plugins/dircycle/dircycle.plugin.zsh +++ /dev/null @@ -1,54 +0,0 @@ -# enables cycling through the directory stack using -# Ctrl+Shift+Left/Right -# -# left/right direction follows the order in which directories -# were visited, like left/right arrows do in a browser - -# NO_PUSHD_MINUS syntax: -# pushd +N: start counting from left of `dirs' output -# pushd -N: start counting from right of `dirs' output - -switch-to-dir () { - setopt localoptions nopushdminus - [[ ${#dirstack} -eq 0 ]] && return 1 - - while ! builtin pushd -q $1 &>/dev/null; do - # We found a missing directory: pop it out of the dir stack - builtin popd -q $1 - - # Stop trying if there are no more directories in the dir stack - [[ ${#dirstack} -eq 0 ]] && return 1 - done -} - -insert-cycledleft () { - switch-to-dir +1 || return - - local fn - for fn (chpwd $chpwd_functions precmd $precmd_functions); do - (( $+functions[$fn] )) && $fn - done - zle reset-prompt -} -zle -N insert-cycledleft - -insert-cycledright () { - switch-to-dir -0 || return - - local fn - for fn (chpwd $chpwd_functions precmd $precmd_functions); do - (( $+functions[$fn] )) && $fn - done - zle reset-prompt -} -zle -N insert-cycledright - - -# These sequences work for xterm, Apple Terminal.app, and probably others. -# Not for rxvt-unicode, but it doesn't seem differentiate Ctrl-Shift-Arrow -# from plain Shift-Arrow, at least by default. -# iTerm2 does not have these key combinations defined by default; you will need -# to add them under "Keys" in your profile if you want to use this. You can do -# this conveniently by loading the "xterm with Numeric Keypad" preset. -bindkey "\e[1;6D" insert-cycledleft -bindkey "\e[1;6C" insert-cycledright diff --git a/zsh/.oh-my-zsh/plugins/direnv/README.md b/zsh/.oh-my-zsh/plugins/direnv/README.md deleted file mode 100644 index 8deaf38..0000000 --- a/zsh/.oh-my-zsh/plugins/direnv/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# direnv plugin - -This plugin creates the [Direnv](https://direnv.net/) hook. - -To use it, add `direnv` to the plugins array in your zshrc file: - -```zsh -plugins=(... direnv) -``` - -## Requirements - -In order to make this work, you will need to have the direnv installed. - -More info on the usage and install: https://github.com/direnv/direnv diff --git a/zsh/.oh-my-zsh/plugins/direnv/direnv.plugin.zsh b/zsh/.oh-my-zsh/plugins/direnv/direnv.plugin.zsh deleted file mode 100644 index 5e32c4c..0000000 --- a/zsh/.oh-my-zsh/plugins/direnv/direnv.plugin.zsh +++ /dev/null @@ -1,16 +0,0 @@ -# Don't continue if direnv is not found -command -v direnv &>/dev/null || return - -_direnv_hook() { - trap -- '' SIGINT; - eval "$(direnv export zsh)"; - trap - SIGINT; -} -typeset -ag precmd_functions; -if [[ -z ${precmd_functions[(r)_direnv_hook]} ]]; then - precmd_functions=( _direnv_hook ${precmd_functions[@]} ) -fi -typeset -ag chpwd_functions; -if [[ -z ${chpwd_functions[(r)_direnv_hook]} ]]; then - chpwd_functions=( _direnv_hook ${chpwd_functions[@]} ) -fi diff --git a/zsh/.oh-my-zsh/plugins/dirhistory/README.md b/zsh/.oh-my-zsh/plugins/dirhistory/README.md deleted file mode 100644 index 602fc82..0000000 --- a/zsh/.oh-my-zsh/plugins/dirhistory/README.md +++ /dev/null @@ -1,42 +0,0 @@ -# Dirhistory plugin - -This plugin adds keyboard shortcuts for navigating directory history and hierarchy. - -To use it, add `dirhistory` to the plugins array in your zshrc file: - -```zsh -plugins=(... dirhistory) -``` - -## Keyboard Shortcuts - -| Shortcut | Description | -|-----------------------------------|-----------------------------------------------------------| -| alt + left | Go to previous directory | -| alt + right | Undo alt + left | -| alt + up | Move into the parent directory | -| alt + down | Move into the first child directory by alphabetical order | - -NOTE: some terminals might override the ALT+Arrows key bindings (Windows Terminal, for example). -If these don't work check your terminal settings and change them to a different keyboard shortcut. - -## Usage - -This plugin allows you to navigate the history of previous current-working-directories using ALT-LEFT and ALT-RIGHT. ALT-LEFT moves back to directories that the user has changed to in the past, and ALT-RIGHT undoes ALT-LEFT. MAC users may alternately use OPT-LEFT and OPT-RIGHT. - -Also, navigate directory **hierarchy** using ALT-UP and ALT-DOWN. (mac keybindings not yet implemented). ALT-UP moves to higher hierarchy (shortcut for 'cd ..'). ALT-DOWN moves into the first directory found in alphabetical order (useful to navigate long empty directories e.g. java packages) - -For example, if the shell was started, and the following commands were entered: - -```shell -cd ~ -cd /usr -cd share -cd doc -``` - -Then entering ALT-LEFT at the prompt would change directory from /usr/share/doc to /usr/share, then if pressed again to /usr/, then ~. If ALT-RIGHT were pressed the directory would be changed to /usr/ again. - -After that, ALT-DOWN will probably go to /usr/bin (depends on your /usr structure), ALT-UP will return to /usr, then ALT-UP will get you to / - -**Currently the max history size is 30**. The navigation should work for xterm, PuTTY xterm mode, GNU screen, and on MAC with alternate keys as mentioned above. diff --git a/zsh/.oh-my-zsh/plugins/dirhistory/dirhistory.plugin.zsh b/zsh/.oh-my-zsh/plugins/dirhistory/dirhistory.plugin.zsh deleted file mode 100644 index cbac846..0000000 --- a/zsh/.oh-my-zsh/plugins/dirhistory/dirhistory.plugin.zsh +++ /dev/null @@ -1,202 +0,0 @@ -## -# Navigate directory history using ALT-LEFT and ALT-RIGHT. ALT-LEFT moves back to directories -# that the user has changed to in the past, and ALT-RIGHT undoes ALT-LEFT. -# -# Navigate directory hierarchy using ALT-UP and ALT-DOWN. -# ALT-UP moves to higher hierarchy (cd ..) -# ALT-DOWN moves into the first directory found in alphabetical order -# - -dirhistory_past=($PWD) -dirhistory_future=() -export dirhistory_past -export dirhistory_future - -export DIRHISTORY_SIZE=30 - -# Pop the last element of dirhistory_past. -# Pass the name of the variable to return the result in. -# Returns the element if the array was not empty, -# otherwise returns empty string. -function pop_past() { - eval "$1='$dirhistory_past[$#dirhistory_past]'" - if [[ $#dirhistory_past -gt 0 ]]; then - dirhistory_past[$#dirhistory_past]=() - fi -} - -function pop_future() { - eval "$1='$dirhistory_future[$#dirhistory_future]'" - if [[ $#dirhistory_future -gt 0 ]]; then - dirhistory_future[$#dirhistory_future]=() - fi -} - -# Push a new element onto the end of dirhistory_past. If the size of the array -# is >= DIRHISTORY_SIZE, the array is shifted -function push_past() { - if [[ $#dirhistory_past -ge $DIRHISTORY_SIZE ]]; then - shift dirhistory_past - fi - if [[ $#dirhistory_past -eq 0 || $dirhistory_past[$#dirhistory_past] != "$1" ]]; then - dirhistory_past+=($1) - fi -} - -function push_future() { - if [[ $#dirhistory_future -ge $DIRHISTORY_SIZE ]]; then - shift dirhistory_future - fi - if [[ $#dirhistory_future -eq 0 || $dirhistory_futuret[$#dirhistory_future] != "$1" ]]; then - dirhistory_future+=($1) - fi -} - -# Called by zsh when directory changes -autoload -U add-zsh-hook -add-zsh-hook chpwd chpwd_dirhistory -function chpwd_dirhistory() { - push_past $PWD - # If DIRHISTORY_CD is not set... - if [[ -z "${DIRHISTORY_CD+x}" ]]; then - # ... clear future. - dirhistory_future=() - fi -} - -function dirhistory_cd(){ - DIRHISTORY_CD="1" - cd $1 - unset DIRHISTORY_CD -} - -# Move backward in directory history -function dirhistory_back() { - local cw="" - local d="" - # Last element in dirhistory_past is the cwd. - - pop_past cw - if [[ "" == "$cw" ]]; then - # Someone overwrote our variable. Recover it. - dirhistory_past=($PWD) - return - fi - - pop_past d - if [[ "" != "$d" ]]; then - dirhistory_cd $d - push_future $cw - else - push_past $cw - fi -} - - -# Move forward in directory history -function dirhistory_forward() { - local d="" - - pop_future d - if [[ "" != "$d" ]]; then - dirhistory_cd $d - push_past $d - fi -} - - -# Bind keys to history navigation -function dirhistory_zle_dirhistory_back() { - # Erase current line in buffer - zle .kill-buffer - dirhistory_back - zle .accept-line -} - -function dirhistory_zle_dirhistory_future() { - # Erase current line in buffer - zle .kill-buffer - dirhistory_forward - zle .accept-line -} - -zle -N dirhistory_zle_dirhistory_back -# xterm in normal mode -bindkey "\e[3D" dirhistory_zle_dirhistory_back -bindkey "\e[1;3D" dirhistory_zle_dirhistory_back -# Terminal.app -if [[ "$TERM_PROGRAM" == "Apple_Terminal" ]]; then - bindkey "^[b" dirhistory_zle_dirhistory_back -fi -# iTerm2 -if [[ "$TERM_PROGRAM" == "iTerm.app" ]]; then - bindkey "^[^[[D" dirhistory_zle_dirhistory_back -fi -# Putty: -bindkey "\e\e[D" dirhistory_zle_dirhistory_back -# GNU screen: -bindkey "\eO3D" dirhistory_zle_dirhistory_back - -zle -N dirhistory_zle_dirhistory_future -bindkey "\e[3C" dirhistory_zle_dirhistory_future -bindkey "\e[1;3C" dirhistory_zle_dirhistory_future -# Terminal.app -if [[ "$TERM_PROGRAM" == "Apple_Terminal" ]]; then - bindkey "^[f" dirhistory_zle_dirhistory_future -fi -# iTerm2 -if [[ "$TERM_PROGRAM" == "iTerm.app" ]]; then - bindkey "^[^[[C" dirhistory_zle_dirhistory_future -fi -bindkey "\e\e[C" dirhistory_zle_dirhistory_future -bindkey "\eO3C" dirhistory_zle_dirhistory_future - - -# -# HIERARCHY Implemented in this section, in case someone wants to split it to another plugin if it clashes bindings -# - -# Move up in hierarchy -function dirhistory_up() { - cd .. || return 1 -} - -# Move down in hierarchy -function dirhistory_down() { - cd "$(find . -mindepth 1 -maxdepth 1 -type d | sort -n | head -n 1)" || return 1 -} - - -# Bind keys to hierarchy navigation -function dirhistory_zle_dirhistory_up() { - zle .kill-buffer # Erase current line in buffer - dirhistory_up - zle .accept-line -} - -function dirhistory_zle_dirhistory_down() { - zle .kill-buffer # Erase current line in buffer - dirhistory_down - zle .accept-line -} - -zle -N dirhistory_zle_dirhistory_up -# xterm in normal mode -bindkey "\e[3A" dirhistory_zle_dirhistory_up -bindkey "\e[1;3A" dirhistory_zle_dirhistory_up -if [[ "$TERM_PROGRAM" == "Apple_Terminal" || "$TERM_PROGRAM" == "iTerm.app" ]]; then - bindkey "^[[A" dirhistory_zle_dirhistory_up -fi -# Putty: -bindkey "\e\e[A" dirhistory_zle_dirhistory_up -# GNU screen: -bindkey "\eO3A" dirhistory_zle_dirhistory_up - -zle -N dirhistory_zle_dirhistory_down -bindkey "\e[3B" dirhistory_zle_dirhistory_down -bindkey "\e[1;3B" dirhistory_zle_dirhistory_down -if [[ "$TERM_PROGRAM" == "Apple_Terminal" || "$TERM_PROGRAM" == "iTerm.app" ]]; then - bindkey "^[[B" dirhistory_zle_dirhistory_down -fi -bindkey "\e\e[B" dirhistory_zle_dirhistory_down -bindkey "\eO3B" dirhistory_zle_dirhistory_down diff --git a/zsh/.oh-my-zsh/plugins/dirpersist/README.md b/zsh/.oh-my-zsh/plugins/dirpersist/README.md deleted file mode 100644 index 792fb4b..0000000 --- a/zsh/.oh-my-zsh/plugins/dirpersist/README.md +++ /dev/null @@ -1,10 +0,0 @@ -# Dirpersist plugin - -This plugin keeps a running tally of the previous 20 unique directories in the `$HOME/.zdirs` file. -When you cd to a new directory, it is prepended to the beginning of the file. - -To use it, add `dirpersist` to the plugins array in your zshrc file: - -```zsh -plugins=(... dirpersist) -``` diff --git a/zsh/.oh-my-zsh/plugins/dirpersist/dirpersist.plugin.zsh b/zsh/.oh-my-zsh/plugins/dirpersist/dirpersist.plugin.zsh deleted file mode 100644 index daadc38..0000000 --- a/zsh/.oh-my-zsh/plugins/dirpersist/dirpersist.plugin.zsh +++ /dev/null @@ -1,21 +0,0 @@ -# Save dirstack history to .zdirs -# adapted from: -# github.com/grml/grml-etc-core/blob/master/etc/zsh/zshrc#L1547 - -DIRSTACKSIZE=${DIRSTACKSIZE:-20} -dirstack_file=${dirstack_file:-${HOME}/.zdirs} - -if [[ -f ${dirstack_file} ]] && [[ ${#dirstack[*]} -eq 0 ]] ; then - dirstack=( ${(f)"$(< $dirstack_file)"} ) - # "cd -" won't work after login by just setting $OLDPWD, so - [[ -d $dirstack[1] ]] && cd $dirstack[1] && cd $OLDPWD -fi - -autoload -U add-zsh-hook -add-zsh-hook chpwd chpwd_dirpersist -chpwd_dirpersist() { - if (( $DIRSTACKSIZE <= 0 )) || [[ -z $dirstack_file ]]; then return; fi - local -ax my_stack - my_stack=( ${PWD} ${dirstack} ) - builtin print -l ${(u)my_stack} >! ${dirstack_file} -} diff --git a/zsh/.oh-my-zsh/plugins/django/README.md b/zsh/.oh-my-zsh/plugins/django/README.md deleted file mode 100644 index cfab439..0000000 --- a/zsh/.oh-my-zsh/plugins/django/README.md +++ /dev/null @@ -1,12 +0,0 @@ -# Django plugin - -This plugin adds completion for the [Django Project](https://www.djangoproject.com/) commands -(`manage.py`, `django-admin`, ...). - -## Deprecation (2021-09-22) - -The plugin used to provide completion for `./manage.py` and `django-admin`, but Zsh already provides -a better, more extensive completion for those, so this plugin is no longer needed. - -Right now a warning message is shown, but in the near future the plugin will stop working altogether. -So you can remove it from your plugins and you'll automatically start using Zsh's django completion. diff --git a/zsh/.oh-my-zsh/plugins/django/django.plugin.zsh b/zsh/.oh-my-zsh/plugins/django/django.plugin.zsh deleted file mode 100644 index a07a308..0000000 --- a/zsh/.oh-my-zsh/plugins/django/django.plugin.zsh +++ /dev/null @@ -1,407 +0,0 @@ -#compdef manage.py - -typeset -ga nul_args -nul_args=( - '--verbosity=-[verbosity level; 0=minimal output, 1=normal output, 2=all output.]:Verbosity:((0\:minimal 1\:normal 2\:all))' - '--settings=-[the Python path to a settings module.]:file:_files' - '--pythonpath=-[a directory to add to the Python path.]:directory:_directories' - '--traceback[print traceback on exception.]' - "--no-color[Don't colorize the command output.]" - "--version[show program's version number and exit.]" - {-h,--help}'[show this help message and exit.]' -) - -typeset -ga start_args -start_args=( - '--template=-[The path or URL to load the template from.]:directory:_directories' - '--extension=-[The file extension(s) to render (default: "py").]' - '--name=-[The file name(s) to render.]:file:_files' -) - -typeset -ga db_args -db_args=( - '--database=-[Nominates a database. Defaults to the "default" database.]' -) - -typeset -ga noinput_args -noinput_args=( - '--noinput[tells Django to NOT prompt the user for input of any kind.]' -) - -typeset -ga no_init_data_args -no_init_data_args=( - '--no-initial-data[Tells Django not to load any initial data after database synchronization.]' -) - -typeset -ga tag_args -tag_args=( - '--tag=-[Run only checks labeled with given tag.]' - '--list-tags[List available tags.]' -) - -_managepy-check(){ - _arguments -s : \ - $tag_args \ - $nul_args && ret=0 -} - -_managepy-changepassword(){ - _arguments -s : \ - $db_args \ - $nul_args && ret=0 -} - -_managepy-createcachetable(){ - _arguments -s : \ - $db_args \ - $nul_args && ret=0 -} - -_managepy-createsuperuser(){ - _arguments -s : \ - '--username=-[Specifies the login for the superuser.]' \ - '--email=-[Specifies the email for the superuser.]' \ - $noinput_args \ - $db_args \ - $nul_args && ret=0 -} - -_managepy-collectstatic(){ - _arguments -s : \ - '--link[Create a symbolic link to each file instead of copying.]' \ - '--no-post-process[Do NOT post process collected files.]' \ - '--ignore=-[Ignore files or directories matching this glob-style pattern. Use multiple times to ignore more.]' \ - '--dry-run[Do everything except modify the filesystem.]' \ - '--clear[Clear the existing files using the storage before trying to copy or link the original file.]' \ - '--link[Create a symbolic link to each file instead of copying.]' \ - '--no-default-ignore[Do not ignore the common private glob-style patterns "CVS", ".*" and "*~".]' \ - $noinput_args \ - $nul_args && ret=0 -} - -_managepy-dbshell(){ - _arguments -s : \ - $db_args \ - $nul_args && ret=0 -} - -_managepy-diffsettings(){ - _arguments -s : \ - "--all[Display all settings, regardless of their value.]" - $nul_args && ret=0 -} - -_managepy-dumpdata(){ - _arguments -s : \ - '--format=-[Specifies the output serialization format for fixtures.]:format:(json yaml xml)' \ - '--indent=-[Specifies the indent level to use when pretty-printing output.]' \ - '--exclude=-[An app_label or app_label.ModelName to exclude (use multiple --exclude to exclude multiple apps/models).]' \ - '--natural-foreign[Use natural foreign keys if they are available.]' \ - '--natural-primary[Use natural primary keys if they are available.]' \ - "--all[Use Django's base manager to dump all models stored in the database.]" \ - '--pks=-[Only dump objects with given primary keys.]' \ - $db_args \ - $nul_args \ - '*::appname:_applist' && ret=0 -} - -_managepy-flush(){ - _arguments -s : \ - $no_init_data_args \ - $db_args \ - $noinput_args \ - $nul_args && ret=0 -} - -_managepy-help(){ - _arguments -s : \ - '*:command:_managepy_cmds' \ - $nul_args && ret=0 -} - -_managepy_cmds(){ - local line - local -a cmd - _call_program help-command ./manage.py help \ - |& sed -n '/^ /s/[(), ]/ /gp' \ - | while read -A line; do cmd=($line $cmd) done - _describe -t managepy-command 'manage.py command' cmd -} - -_managepy-inspectdb(){ - _arguments -s : \ - $db_args \ - $nul_args && ret=0 -} - -_managepy-loaddata(){ - _arguments -s : \ - '--ignorenonexistent[Ignores entries in the serialized data for fields that do not currently exist on the model.]' \ - '--app=-[Only look for fixtures in the specified app.]:appname:_applist' \ - '*::file:_files' \ - $db_args \ - $nul_args && ret=0 -} - -_managepy-makemessages(){ - _arguments -s : \ - '--locale=-[Creates or updates the message files for the given locale(s) (e.g. pt_BR).]' \ - '--domain=-[The domain of the message files (default: "django").]' \ - '--all[Updates the message files for all existing locales.]' \ - '--extension=-[The file extension(s) to examine (default: "html,txt", or "js" if the domain is "djangojs").]' \ - '--symlinks[Follows symlinks to directories when examining source code and templates for translation strings.]' \ - '--ignore=-[Ignore files or directories matching this glob-style pattern.]' \ - "--no-default-ignore[Don't ignore the common glob-style patterns 'CVS', '.*', '*~' and '*.pyc'.]" \ - "--no-wrap[Don't break long message lines into several lines.]" \ - "--no-location[Don't write '#: filename:line' lines.]" \ - '--no-obsolete[Remove obsolete message strings.]' \ - '--keep-pot[Keep .pot file after making messages.]' \ - $nul_args && ret=0 -} -_managepy-makemigrations(){ - _arguments -s : \ - '--dry-run[Just show what migrations would be made]' \ - '--merge[Enable fixing of migration conflicts.]' \ - '--empty[Create an empty migration.]' \ - $noinput_args \ - $nul_args && ret=0 -} -_managepy-migrate(){ - _arguments -s : \ - '--fake[Mark migrations as run without actually running them]' \ - '--list[Show a list of all known migrations and which are applied]' \ - $no_init_data_args \ - $noinput_args \ - $db_args \ - $nul_args && ret=0 -} - -_managepy-runfcgi(){ - local state - - local fcgi_opts - fcgi_opts=( - 'protocol[fcgi, scgi, ajp, ... (default fcgi)]:protocol:(fcgi scgi ajp)' - 'host[hostname to listen on..]:' - 'port[port to listen on.]:' - 'socket[UNIX socket to listen on.]:file:_files' - 'method[prefork or threaded (default prefork)]:method:(prefork threaded)' - 'maxrequests[number of requests a child handles before it is killed and a new child is forked (0 = no limit).]:' - 'maxspare[max number of spare processes / threads.]:' - 'minspare[min number of spare processes / threads.]:' - 'maxchildren[hard limit number of processes / threads.]:' - 'daemonize[whether to detach from terminal.]:boolean:(False True)' - 'pidfile[write the spawned process-id to this file.]:file:_files' - 'workdir[change to this directory when daemonizing.]:directory:_files' - 'outlog[write stdout to this file.]:file:_files' - 'errlog[write stderr to this file.]:file:_files' - ) - - _arguments -s : \ - $nul_args \ - '*: :_values "FCGI Setting" $fcgi_opts' && ret=0 -} - -_managepy-runserver(){ - _arguments -s : \ - '--ipv6[Tells Django to use an IPv6 address.]' \ - '--nothreading[Tells Django to NOT use threading.]' \ - '--noreload[Tells Django to NOT use the auto-reloader.]' \ - '--nostatic[Tells Django to NOT automatically serve static files at STATIC_URL.]' \ - '--insecure[Allows serving static files even if DEBUG is False.]' \ - $nul_args && ret=0 -} - -_managepy-shell(){ - _arguments -s : \ - '--plain[Tells Django to use plain Python, not IPython.]' \ - '--no-startup[When using plain Python, ignore the PYTHONSTARTUP environment variable and ~/.pythonrc.py script.]' \ - '--interface=-[Specify an interactive interpreter interface.]:INTERFACE:((ipython bpython))' \ - $nul_args && ret=0 -} - -_managepy-sql(){ - _arguments -s : \ - $db_args \ - $nul_args && ret=0 -} - -_managepy-sqlall(){ - _arguments -s : \ - $db_args \ - $nul_args && ret=0 -} - -_managepy-sqlclear(){ - _arguments -s : \ - $db_args \ - $nul_args && ret=0 -} - -_managepy-sqlcustom(){ - _arguments -s : \ - $db_args \ - $nul_args && ret=0 -} - -_managepy-dropindexes(){ - _arguments -s : \ - $db_args \ - $nul_args && ret=0 -} - -_managepy-sqlflush(){ - _arguments -s : \ - $db_args \ - $nul_args && ret=0 -} - -_managepy-sqlindexes(){ - _arguments -s : \ - $db_args \ - $nul_args && ret=0 -} - -_managepy-sqlinitialdata(){ - _arguments -s : \ - $nul_args && ret=0 -} - -_managepy-sqlsequencereset(){ - _arguments -s : \ - $db_args \ - $nul_args && ret=0 -} - -_managepy-squashmigrations(){ - _arguments -s : \ - '--no-optimize[Do not try to optimize the squashed operations.]' \ - $noinput_args \ - $nul_args && ret=0 -} - -_managepy-startapp(){ - _arguments -s : \ - $start_args \ - $nul_args && ret=0 -} -_managepy-startproject(){ - _arguments -s : \ - $start_args \ - $nul_args && ret=0 -} - -_managepy-syncdb() { - _arguments -s : \ - $noinput_args \ - $no_init_data_args \ - $db_args \ - $nul_args && ret=0 -} - -_managepy-test() { - _arguments -s : \ - '--failfast[Tells Django to stop running the test suite after first failed test.]' \ - '--testrunner=-[Tells Django to use specified test runner class instead of the one specified by the TEST_RUNNER setting.]' \ - '--liveserver=-[Overrides the default address where the live server (used with LiveServerTestCase) is expected to run from. The default value is localhost:8081.]' \ - '--top-level-directory=-[Top level of project for unittest discovery.]' \ - '--pattern=-[The test matching pattern. Defaults to test*.py.]:' \ - $noinput_args \ - '*::appname:_applist' \ - $nul_args && ret=0 -} - -_managepy-testserver() { - _arguments -s : \ - '--addrport=-[port number or ipaddr:port to run the server on.]' \ - '--ipv6[Tells Django to use an IPv6 address.]' \ - $noinput_args \ - '*::fixture:_files' \ - $nul_args && ret=0 -} - -_managepy-validate() { - _arguments -s : \ - $tag_args \ - $nul_args && ret=0 -} - -_managepy-commands() { - local -a commands - - commands=( - "changepassword:Change a user's password for django.contrib.auth." - 'check:Checks the entire Django project for potential problems.' - 'compilemessages:Compiles .po files to .mo files for use with builtin gettext support.' - 'createcachetable:Creates the table needed to use the SQL cache backend.' - 'createsuperuser:Used to create a superuser.' - 'collectstatic:Collect static files in a single location.' - 'dbshell:Runs the command-line client for the current DATABASE_ENGINE.' - "diffsettings:Displays differences between the current settings.py and Django's default settings." - 'dumpdata:Output the contents of the database as a fixture of the given format.' - 'flush:Executes ``sqlflush`` on the current database.' - 'help:manage.py help.' - 'inspectdb:Introspects the database tables in the given database and outputs a Django model module.' - 'loaddata:Installs the named fixture(s) in the database.' - 'makemessages:Runs over the entire source tree of the current directory and pulls out all strings marked for translation.' - 'makemigrations:Creates new migration(s) for apps.' - 'migrate:Updates database schema. Manages both apps with migrations and those without.' - 'runfcgi:Run this project as a fastcgi (or some other protocol supported by flup) application,' - 'runserver:Starts a lightweight Web server for development.' - 'shell:Runs a Python interactive interpreter.' - 'showmigrations:Shows all available migrations for the current project.' - 'sql:Prints the CREATE TABLE SQL statements for the given app name(s).' - 'sqlall:Prints the CREATE TABLE, custom SQL and CREATE INDEX SQL statements for the given model module name(s).' - 'sqlclear:Prints the DROP TABLE SQL statements for the given app name(s).' - 'sqlcustom:Prints the custom table modifying SQL statements for the given app name(s).' - 'sqldropindexes:Prints the DROP INDEX SQL statements for the given model module name(s).' - 'sqlflush:Returns a list of the SQL statements required to return all tables in the database to the state they were in just after they were installed.' - 'sqlindexes:Prints the CREATE INDEX SQL statements for the given model module name(s).' - "sqlinitialdata:RENAMED: see 'sqlcustom'" - 'sqlsequencereset:Prints the SQL statements for resetting sequences for the given app name(s).' - 'squashmigrations:Squashes an existing set of migrations (from first until specified) into a single new one.' - "startapp:Creates a Django app directory structure for the given app name in this project's directory." - "startproject:Creates a Django project directory structure for the given project name in this current directory." - "syncdb:Create the database tables for all apps in INSTALLED_APPS whose tables haven't already been created." - 'test:Runs the test suite for the specified applications, or the entire site if no apps are specified.' - 'testserver:Runs a development server with data from the given fixture(s).' - 'validate:Validates all installed models.' - ) - - _describe -t commands 'manage.py command' commands && ret=0 -} - -_applist() { - local line - local -a apps - _call_program help-command "python -c \"import sys; del sys.path[0];\\ - import os.path as op, re, django.conf;\\ - bn=op.basename(op.abspath(op.curdir));[sys\\ - .stdout.write(str(re.sub(r'^%s\.(.*?)$' % - bn, r'\1', i)) + '\n') for i in django.conf.settings.\\ - INSTALLED_APPS if re.match(r'^%s' % bn, i)]\"" \ - | while read -A line; do apps=($line $apps) done - _values 'Application' $apps && ret=0 -} - -_managepy() { - local curcontext=$curcontext ret=1 - - if ((CURRENT == 2)); then - _managepy-commands - else - shift words - (( CURRENT -- )) - curcontext="${curcontext%:*:*}:managepy-$words[1]:" - _call_function ret _managepy-$words[1] - fi -} - -compdef _managepy manage.py -compdef _managepy django -compdef _managepy django-admin -compdef _managepy django-admin.py -compdef _managepy django-manage - -print -P "%F{yellow}The django plugin is deprecated in favor of Zsh's Django completion. -%BPlease remove it from your plugins to stop using it.%b%f" diff --git a/zsh/.oh-my-zsh/plugins/dnf/README.md b/zsh/.oh-my-zsh/plugins/dnf/README.md deleted file mode 100644 index dc0d1e0..0000000 --- a/zsh/.oh-my-zsh/plugins/dnf/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# dnf plugin - -This plugin makes `dnf` usage easier by adding aliases for the most common commands. - -`dnf` is the new package manager for RPM-based distributions, which replaces `yum`. - -To use it, add `dnf` to the plugins array in your zshrc file: - -```zsh -plugins=(... dnf) -``` - -## Aliases - -| Alias | Command | Description | -|-------|-------------------------|--------------------------| -| dnfl | `dnf list` | List packages | -| dnfli | `dnf list installed` | List installed packages | -| dnfgl | `dnf grouplist` | List package groups | -| dnfmc | `dnf makecache` | Generate metadata cache | -| dnfp | `dnf info` | Show package information | -| dnfs | `dnf search` | Search package | -| **Use `sudo`** | -| dnfu | `sudo dnf upgrade` | Upgrade package | -| dnfi | `sudo dnf install` | Install package | -| dnfgi | `sudo dnf groupinstall` | Install package group | -| dnfr | `sudo dnf remove` | Remove package | -| dnfgr | `sudo dnf groupremove` | Remove package group | -| dnfc | `sudo dnf clean all` | Clean cache | diff --git a/zsh/.oh-my-zsh/plugins/dnf/dnf.plugin.zsh b/zsh/.oh-my-zsh/plugins/dnf/dnf.plugin.zsh deleted file mode 100644 index 653ce7d..0000000 --- a/zsh/.oh-my-zsh/plugins/dnf/dnf.plugin.zsh +++ /dev/null @@ -1,15 +0,0 @@ -## Aliases - -alias dnfl="dnf list" # List packages -alias dnfli="dnf list installed" # List installed packages -alias dnfgl="dnf grouplist" # List package groups -alias dnfmc="dnf makecache" # Generate metadata cache -alias dnfp="dnf info" # Show package information -alias dnfs="dnf search" # Search package - -alias dnfu="sudo dnf upgrade" # Upgrade package -alias dnfi="sudo dnf install" # Install package -alias dnfgi="sudo dnf groupinstall" # Install package group -alias dnfr="sudo dnf remove" # Remove package -alias dnfgr="sudo dnf groupremove" # Remove package group -alias dnfc="sudo dnf clean all" # Clean cache diff --git a/zsh/.oh-my-zsh/plugins/dnote/README.md b/zsh/.oh-my-zsh/plugins/dnote/README.md deleted file mode 100644 index e1b9b70..0000000 --- a/zsh/.oh-my-zsh/plugins/dnote/README.md +++ /dev/null @@ -1,51 +0,0 @@ -# Dnote Plugin - -This plugin adds auto-completion for [Dnote](https://dnote.io) project. - -To use it, add `dnote` to the plugins array in your zshrc file: - -```zsh -plugins=(dnote) -``` - -## Usage - -At the basic level, this plugin completes all Dnote commands. - -```zsh -$ dnote a(press here) -``` - -would result in: - -```zsh -$ dnote add -``` - -For some commands, this plugin dynamically suggests matching book names. - -For instance, if you have three books that begin with 'j': 'javascript', 'job', 'js', - -```zsh -$ dnote view j(press here) -``` - -would result in: - -```zsh -$ dnote v j -javascript job js -``` - -As another example, - -```zsh -$ dnote edit ja(press here) -``` - -would result in: - - -```zsh -$ dnote v javascript -`````` diff --git a/zsh/.oh-my-zsh/plugins/dnote/_dnote b/zsh/.oh-my-zsh/plugins/dnote/_dnote deleted file mode 100644 index c8b3348..0000000 --- a/zsh/.oh-my-zsh/plugins/dnote/_dnote +++ /dev/null @@ -1,39 +0,0 @@ -#compdef dnote - -local -a _1st_arguments - -_1st_arguments=( - 'add:add a new note' - 'view:list books, notes, or view a content' - 'edit:edit a note or a book' - 'remove:remove a note or a book' - 'find:find notes by keywords' - 'sync:sync data with the server' - 'login:login to the dnote server' - 'logout:logout from the dnote server' - 'version:print the current version' - 'help:get help about any command' -) - -get_booknames() { - local names=$(dnote view --name-only) - local -a ret - - while read -r line; do - ret+=("${line}") - done <<< "$names" - - echo "$ret" -} - -if (( CURRENT == 2 )); then - _describe -t commands "dnote subcommand" _1st_arguments - return -elif (( CURRENT == 3 )); then - case "$words[2]" in - v|view|a|add) - _alternative \ - "names:book names:($(get_booknames))" - esac -fi - diff --git a/zsh/.oh-my-zsh/plugins/docker-compose/README.md b/zsh/.oh-my-zsh/plugins/docker-compose/README.md deleted file mode 100644 index 13f3c2c..0000000 --- a/zsh/.oh-my-zsh/plugins/docker-compose/README.md +++ /dev/null @@ -1,32 +0,0 @@ -# Docker-compose - -This plugin provides completion for [docker-compose](https://docs.docker.com/compose/) as well as some -aliases for frequent docker-compose commands. - -To use it, add docker-compose to the plugins array of your zshrc file: - -```zsh -plugins=(... docker-compose) -``` - -## Aliases - -| Alias | Command | Description | -|-----------|--------------------------------|------------------------------------------------------------------| -| dco | `docker-compose` | Docker-compose main command | -| dcb | `docker-compose build` | Build containers | -| dce | `docker-compose exec` | Execute command inside a container | -| dcps | `docker-compose ps` | List containers | -| dcrestart | `docker-compose restart` | Restart container | -| dcrm | `docker-compose rm` | Remove container | -| dcr | `docker-compose run` | Run a command in container | -| dcstop | `docker-compose stop` | Stop a container | -| dcup | `docker-compose up` | Build, (re)create, start, and attach to containers for a service | -| dcupb | `docker-compose up --build` | Same as `dcup`, but build images before starting containers | -| dcupd | `docker-compose up -d` | Same as `dcup`, but starts as daemon | -| dcdn | `docker-compose down` | Stop and remove containers | -| dcl | `docker-compose logs` | Show logs of container | -| dclf | `docker-compose logs -f` | Show logs and follow output | -| dcpull | `docker-compose pull` | Pull image of a service | -| dcstart | `docker-compose start` | Start a container | -| dck | `docker-compose kill` | Kills containers | diff --git a/zsh/.oh-my-zsh/plugins/docker-compose/_docker-compose b/zsh/.oh-my-zsh/plugins/docker-compose/_docker-compose deleted file mode 100644 index c6b7335..0000000 --- a/zsh/.oh-my-zsh/plugins/docker-compose/_docker-compose +++ /dev/null @@ -1,421 +0,0 @@ -#compdef docker-compose - -# Description -# ----------- -# zsh completion for docker-compose -# ------------------------------------------------------------------------- -# Authors -# ------- -# * Steve Durrheimer -# ------------------------------------------------------------------------- -# Inspiration -# ----------- -# * @albers docker-compose bash completion script -# * @felixr docker zsh completion script : https://github.com/felixr/docker-zsh-completion -# ------------------------------------------------------------------------- - -__docker-compose_q() { - docker-compose 2>/dev/null $compose_options "$@" -} - -# All services defined in docker-compose.yml -__docker-compose_all_services_in_compose_file() { - local already_selected - local -a services - already_selected=$(echo $words | tr " " "|") - __docker-compose_q ps --services "$@" \ - | grep -Ev "^(${already_selected})$" -} - -# All services, even those without an existing container -__docker-compose_services_all() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - services=$(__docker-compose_all_services_in_compose_file "$@") - _alternative "args:services:($services)" && ret=0 - - return ret -} - -# All services that are defined by a Dockerfile reference -__docker-compose_services_from_build() { - [[ $PREFIX = -* ]] && return 1 - __docker-compose_services_all --filter source=build -} - -# All services that are defined by an image -__docker-compose_services_from_image() { - [[ $PREFIX = -* ]] && return 1 - __docker-compose_services_all --filter source=image -} - -__docker-compose_pausedservices() { - [[ $PREFIX = -* ]] && return 1 - __docker-compose_services_all --filter status=paused -} - -__docker-compose_stoppedservices() { - [[ $PREFIX = -* ]] && return 1 - __docker-compose_services_all --filter status=stopped -} - -__docker-compose_runningservices() { - [[ $PREFIX = -* ]] && return 1 - __docker-compose_services_all --filter status=running -} - -__docker-compose_services() { - [[ $PREFIX = -* ]] && return 1 - __docker-compose_services_all -} - -__docker-compose_caching_policy() { - oldp=( "$1"(Nmh+1) ) # 1 hour - (( $#oldp )) -} - -__docker-compose_commands() { - local cache_policy - - zstyle -s ":completion:${curcontext}:" cache-policy cache_policy - if [[ -z "$cache_policy" ]]; then - zstyle ":completion:${curcontext}:" cache-policy __docker-compose_caching_policy - fi - - if ( [[ ${+_docker_compose_subcommands} -eq 0 ]] || _cache_invalid docker_compose_subcommands) \ - && ! _retrieve_cache docker_compose_subcommands; - then - local -a lines - lines=(${(f)"$(_call_program commands docker-compose 2>&1)"}) - _docker_compose_subcommands=(${${${lines[$((${lines[(i)Commands:]} + 1)),${lines[(I) *]}]}## #}/ ##/:}) - (( $#_docker_compose_subcommands > 0 )) && _store_cache docker_compose_subcommands _docker_compose_subcommands - fi - _describe -t docker-compose-commands "docker-compose command" _docker_compose_subcommands -} - -__docker-compose_subcommand() { - local opts_help opts_force_recreate opts_no_recreate opts_no_build opts_remove_orphans opts_timeout opts_no_color opts_no_deps - - opts_help='(: -)--help[Print usage]' - opts_force_recreate="(--no-recreate)--force-recreate[Recreate containers even if their configuration and image haven't changed. Incompatible with --no-recreate.]" - opts_no_recreate="(--force-recreate)--no-recreate[If containers already exist, don't recreate them. Incompatible with --force-recreate.]" - opts_no_build="(--build)--no-build[Don't build an image, even if it's missing.]" - opts_remove_orphans="--remove-orphans[Remove containers for services not defined in the Compose file]" - opts_timeout=('(-t --timeout)'{-t,--timeout}"[Specify a shutdown timeout in seconds. (default: 10)]:seconds: ") - opts_no_color='--no-color[Produce monochrome output.]' - opts_no_deps="--no-deps[Don't start linked services.]" - - integer ret=1 - - case "$words[1]" in - (build) - _arguments \ - $opts_help \ - "*--build-arg=[Set build-time variables for one service.]:=: " \ - '--force-rm[Always remove intermediate containers.]' \ - '(--quiet -q)'{--quiet,-q}'[Curb build output]' \ - '(--memory -m)'{--memory,-m}'[Memory limit for the build container.]' \ - '--no-cache[Do not use cache when building the image.]' \ - '--pull[Always attempt to pull a newer version of the image.]' \ - '--compress[Compress the build context using gzip.]' \ - '--parallel[Build images in parallel.]' \ - '*:services:__docker-compose_services_from_build' && ret=0 - ;; - (config) - _arguments \ - $opts_help \ - '(--quiet -q)'{--quiet,-q}"[Only validate the configuration, don't print anything.]" \ - '--resolve-image-digests[Pin image tags to digests.]' \ - '--services[Print the service names, one per line.]' \ - '--volumes[Print the volume names, one per line.]' \ - '--hash[Print the service config hash, one per line. Set "service1,service2" for a list of specified services.]' \ && ret=0 - ;; - (create) - _arguments \ - $opts_help \ - $opts_force_recreate \ - $opts_no_recreate \ - $opts_no_build \ - "(--no-build)--build[Build images before creating containers.]" \ - '*:services:__docker-compose_services' && ret=0 - ;; - (down) - _arguments \ - $opts_help \ - $opts_timeout \ - "--rmi[Remove images. Type must be one of: 'all': Remove all images used by any service. 'local': Remove only images that don't have a custom tag set by the \`image\` field.]:type:(all local)" \ - '(-v --volumes)'{-v,--volumes}"[Remove named volumes declared in the \`volumes\` section of the Compose file and anonymous volumes attached to containers.]" \ - $opts_remove_orphans && ret=0 - ;; - (events) - _arguments \ - $opts_help \ - '--json[Output events as a stream of json objects]' \ - '*:services:__docker-compose_services' && ret=0 - ;; - (exec) - _arguments \ - $opts_help \ - '-d[Detached mode: Run command in the background.]' \ - '--privileged[Give extended privileges to the process.]' \ - '(-u --user)'{-u,--user=}'[Run the command as this user.]:username:_users' \ - '-T[Disable pseudo-tty allocation. By default `docker-compose exec` allocates a TTY.]' \ - '--index=[Index of the container if there are multiple instances of a service \[default: 1\]]:index: ' \ - '*'{-e,--env}'[KEY=VAL Set an environment variable (can be used multiple times)]:environment variable KEY=VAL: ' \ - '(-w --workdir)'{-w,--workdir=}'[Working directory inside the container]:workdir: ' \ - '(-):running services:__docker-compose_runningservices' \ - '(-):command: _command_names -e' \ - '*::arguments: _normal' && ret=0 - ;; - (help) - _arguments ':subcommand:__docker-compose_commands' && ret=0 - ;; - (images) - _arguments \ - $opts_help \ - '-q[Only display IDs]' \ - '*:services:__docker-compose_services' && ret=0 - ;; - (kill) - _arguments \ - $opts_help \ - '-s[SIGNAL to send to the container. Default signal is SIGKILL.]:signal:_signals' \ - '*:running services:__docker-compose_runningservices' && ret=0 - ;; - (logs) - _arguments \ - $opts_help \ - '(-f --follow)'{-f,--follow}'[Follow log output]' \ - $opts_no_color \ - '--tail=[Number of lines to show from the end of the logs for each container.]:number of lines: ' \ - '(-t --timestamps)'{-t,--timestamps}'[Show timestamps]' \ - '*:services:__docker-compose_services' && ret=0 - ;; - (pause) - _arguments \ - $opts_help \ - '*:running services:__docker-compose_runningservices' && ret=0 - ;; - (port) - _arguments \ - $opts_help \ - '--protocol=[tcp or udp \[default: tcp\]]:protocol:(tcp udp)' \ - '--index=[index of the container if there are multiple instances of a service \[default: 1\]]:index: ' \ - '1:running services:__docker-compose_runningservices' \ - '2:port:_ports' && ret=0 - ;; - (ps) - _arguments \ - $opts_help \ - '-q[Only display IDs]' \ - '--filter KEY=VAL[Filter services by a property]:=:' \ - '*:services:__docker-compose_services' && ret=0 - ;; - (pull) - _arguments \ - $opts_help \ - '--ignore-pull-failures[Pull what it can and ignores images with pull failures.]' \ - '--no-parallel[Disable parallel pulling]' \ - '(-q --quiet)'{-q,--quiet}'[Pull without printing progress information]' \ - '--include-deps[Also pull services declared as dependencies]' \ - '*:services:__docker-compose_services_from_image' && ret=0 - ;; - (push) - _arguments \ - $opts_help \ - '--ignore-push-failures[Push what it can and ignores images with push failures.]' \ - '*:services:__docker-compose_services' && ret=0 - ;; - (rm) - _arguments \ - $opts_help \ - '(-f --force)'{-f,--force}"[Don't ask to confirm removal]" \ - '-v[Remove any anonymous volumes attached to containers]' \ - '*:stopped services:__docker-compose_stoppedservices' && ret=0 - ;; - (run) - _arguments \ - $opts_help \ - $opts_no_deps \ - '-d[Detached mode: Run container in the background, print new container name.]' \ - '*-e[KEY=VAL Set an environment variable (can be used multiple times)]:environment variable KEY=VAL: ' \ - '*'{-l,--label}'[KEY=VAL Add or override a label (can be used multiple times)]:label KEY=VAL: ' \ - '--entrypoint[Overwrite the entrypoint of the image.]:entry point: ' \ - '--name=[Assign a name to the container]:name: ' \ - '(-p --publish)'{-p,--publish=}"[Publish a container's port(s) to the host]" \ - '--rm[Remove container after run. Ignored in detached mode.]' \ - "--service-ports[Run command with the service's ports enabled and mapped to the host.]" \ - '-T[Disable pseudo-tty allocation. By default `docker-compose run` allocates a TTY.]' \ - '(-u --user)'{-u,--user=}'[Run as specified username or uid]:username or uid:_users' \ - '(-v --volume)*'{-v,--volume=}'[Bind mount a volume]:volume: ' \ - '(-w --workdir)'{-w,--workdir=}'[Working directory inside the container]:workdir: ' \ - "--use-aliases[Use the services network aliases in the network(s) the container connects to]" \ - '(-):services:__docker-compose_services' \ - '(-):command: _command_names -e' \ - '*::arguments: _normal' && ret=0 - ;; - (scale) - _arguments \ - $opts_help \ - $opts_timeout \ - '*:running services:__docker-compose_runningservices' && ret=0 - ;; - (start) - _arguments \ - $opts_help \ - '*:stopped services:__docker-compose_stoppedservices' && ret=0 - ;; - (stop|restart) - _arguments \ - $opts_help \ - $opts_timeout \ - '*:running services:__docker-compose_runningservices' && ret=0 - ;; - (top) - _arguments \ - $opts_help \ - '*:running services:__docker-compose_runningservices' && ret=0 - ;; - (unpause) - _arguments \ - $opts_help \ - '*:paused services:__docker-compose_pausedservices' && ret=0 - ;; - (up) - _arguments \ - $opts_help \ - '(--abort-on-container-exit)-d[Detached mode: Run containers in the background, print new container names. Incompatible with --abort-on-container-exit and --attach-dependencies.]' \ - $opts_no_color \ - $opts_no_deps \ - $opts_force_recreate \ - $opts_no_recreate \ - $opts_no_build \ - "(--no-build)--build[Build images before starting containers.]" \ - "(-d)--abort-on-container-exit[Stops all containers if any container was stopped. Incompatible with -d.]" \ - "(-d)--attach-dependencies[Attach to dependent containers. Incompatible with -d.]" \ - '(-t --timeout)'{-t,--timeout}"[Use this timeout in seconds for container shutdown when attached or when containers are already running. (default: 10)]:seconds: " \ - '--scale[SERVICE=NUM Scale SERVICE to NUM instances. Overrides the `scale` setting in the Compose file if present.]:service scale SERVICE=NUM: ' \ - '--exit-code-from=[Return the exit code of the selected service container. Implies --abort-on-container-exit]:service:__docker-compose_services' \ - $opts_remove_orphans \ - '*:services:__docker-compose_services' && ret=0 - ;; - (version) - _arguments \ - $opts_help \ - "--short[Shows only Compose's version number.]" && ret=0 - ;; - (*) - _message 'Unknown sub command' && ret=1 - ;; - esac - - return ret -} - -_docker-compose() { - # Support for subservices, which allows for `compdef _docker docker-shell=_docker_containers`. - # Based on /usr/share/zsh/functions/Completion/Unix/_git without support for `ret`. - if [[ $service != docker-compose ]]; then - _call_function - _$service - return - fi - - local curcontext="$curcontext" state line - integer ret=1 - typeset -A opt_args - - local file_description - - if [[ -n ${words[(r)-f]} || -n ${words[(r)--file]} ]] ; then - file_description="Specify an override docker-compose file (default: docker-compose.override.yml)" - else - file_description="Specify an alternate docker-compose file (default: docker-compose.yml)" - fi - - _arguments -C \ - '(- :)'{-h,--help}'[Get help]' \ - '*'{-f,--file}"[${file_description}]:file:_files -g '*.yml'" \ - '(-p --project-name)'{-p,--project-name}'[Specify an alternate project name (default: directory name)]:project name:' \ - '--env-file[Specify an alternate environment file (default: .env)]:env-file:_files' \ - "--compatibility[If set, Compose will attempt to convert keys in v3 files to their non-Swarm equivalent]" \ - '(- :)'{-v,--version}'[Print version and exit]' \ - '--verbose[Show more output]' \ - '--log-level=[Set log level]:level:(DEBUG INFO WARNING ERROR CRITICAL)' \ - '--no-ansi[Do not print ANSI control characters]' \ - '--ansi=[Control when to print ANSI control characters]:when:(never always auto)' \ - '(-H --host)'{-H,--host}'[Daemon socket to connect to]:host:' \ - '--tls[Use TLS; implied by --tlsverify]' \ - '--tlscacert=[Trust certs signed only by this CA]:ca path:' \ - '--tlscert=[Path to TLS certificate file]:client cert path:' \ - '--tlskey=[Path to TLS key file]:tls key path:' \ - '--tlsverify[Use TLS and verify the remote]' \ - "--skip-hostname-check[Don't check the daemon's hostname against the name specified in the client certificate (for example if your docker host is an IP address)]" \ - '(-): :->command' \ - '(-)*:: :->option-or-argument' && ret=0 - - local -a relevant_compose_flags relevant_compose_repeatable_flags relevant_docker_flags compose_options docker_options - - relevant_compose_flags=( - "--env-file" - "--file" "-f" - "--host" "-H" - "--project-name" "-p" - "--tls" - "--tlscacert" - "--tlscert" - "--tlskey" - "--tlsverify" - "--skip-hostname-check" - ) - - relevant_compose_repeatable_flags=( - "--file" "-f" - ) - - relevant_docker_flags=( - "--host" "-H" - "--tls" - "--tlscacert" - "--tlscert" - "--tlskey" - "--tlsverify" - ) - - for k in "${(@k)opt_args}"; do - if [[ -n "${relevant_docker_flags[(r)$k]}" ]]; then - docker_options+=$k - if [[ -n "$opt_args[$k]" ]]; then - docker_options+=$opt_args[$k] - fi - fi - if [[ -n "${relevant_compose_flags[(r)$k]}" ]]; then - if [[ -n "${relevant_compose_repeatable_flags[(r)$k]}" ]]; then - values=("${(@s/:/)opt_args[$k]}") - for value in $values - do - compose_options+=$k - compose_options+=$value - done - else - compose_options+=$k - if [[ -n "$opt_args[$k]" ]]; then - compose_options+=$opt_args[$k] - fi - fi - fi - done - - case $state in - (command) - __docker-compose_commands && ret=0 - ;; - (option-or-argument) - curcontext=${curcontext%:*:*}:docker-compose-$words[1]: - __docker-compose_subcommand && ret=0 - ;; - esac - - return ret -} - -_docker-compose "$@" diff --git a/zsh/.oh-my-zsh/plugins/docker-compose/docker-compose.plugin.zsh b/zsh/.oh-my-zsh/plugins/docker-compose/docker-compose.plugin.zsh deleted file mode 100644 index 13985fc..0000000 --- a/zsh/.oh-my-zsh/plugins/docker-compose/docker-compose.plugin.zsh +++ /dev/null @@ -1,24 +0,0 @@ -# support Compose v2 as docker CLI plugin -DOCKER_CONTEXT=default command docker compose &>/dev/null \ - && dccmd='docker compose' \ - || dccmd='docker-compose' - -alias dco="$dccmd" -alias dcb="$dccmd build" -alias dce="$dccmd exec" -alias dcps="$dccmd ps" -alias dcrestart="$dccmd restart" -alias dcrm="$dccmd rm" -alias dcr="$dccmd run" -alias dcstop="$dccmd stop" -alias dcup="$dccmd up" -alias dcupb="$dccmd up --build" -alias dcupd="$dccmd up -d" -alias dcdn="$dccmd down" -alias dcl="$dccmd logs" -alias dclf="$dccmd logs -f" -alias dcpull="$dccmd pull" -alias dcstart="$dccmd start" -alias dck="$dccmd kill" - -unset dccmd diff --git a/zsh/.oh-my-zsh/plugins/docker-machine/README.md b/zsh/.oh-my-zsh/plugins/docker-machine/README.md deleted file mode 100644 index 308a6cf..0000000 --- a/zsh/.oh-my-zsh/plugins/docker-machine/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# docker-machine plugin for oh my zsh - -### Usage - -#### docker-vm -Will create a docker-machine with the name "dev" (required only once) -To create a second machine call "docker-vm foobar" or pass any other name - -#### docker-up -This will start your "dev" docker-machine (if necessary) and set it as the active one -To start a named machine use "docker-up foobar" - -#### docker-switch dev -Use this to activate a running docker-machine (or to switch between multiple machines) -You need to call either this or docker-up when opening a new terminal - -#### docker-stop -This will stop your "dev" docker-machine -To stop a named machine use "docker-stop foobar" \ No newline at end of file diff --git a/zsh/.oh-my-zsh/plugins/docker-machine/_docker-machine b/zsh/.oh-my-zsh/plugins/docker-machine/_docker-machine deleted file mode 100644 index 7c19ba8..0000000 --- a/zsh/.oh-my-zsh/plugins/docker-machine/_docker-machine +++ /dev/null @@ -1,359 +0,0 @@ -#compdef docker-machine -# Description -# ----------- -# zsh completion for docker-machine -# https://github.com/leonhartX/docker-machine-zsh-completion -# ------------------------------------------------------------------------- -# Version -# ------- -# 0.1.1 -# ------------------------------------------------------------------------- -# Authors -# ------- -# * Ke Xu -# ------------------------------------------------------------------------- -# Inspiration -# ----------- -# * @sdurrheimer docker-compose-zsh-completion https://github.com/sdurrheimer/docker-compose-zsh-completion -# * @ilkka _docker-machine - - -__docker-machine_get_hosts() { - [[ $PREFIX = -* ]] && return 1 - local state - declare -a hosts - state=$1; shift - if [[ $state != all ]]; then - hosts=(${(f)"$(_call_program commands docker-machine ls -q --filter state=$state)"}) - else - hosts=(${(f)"$(_call_program commands docker-machine ls -q)"}) - fi - _describe 'host' hosts "$@" && ret=0 - return ret -} - -__docker-machine_hosts_with_state() { - declare -a hosts - hosts=(${(f)"$(_call_program commands docker-machine ls -f '{{.Name}}\:{{.DriverName}}\({{.State}}\)\ {{.URL}}')"}) - _describe 'host' hosts -} - -__docker-machine_hosts_all() { - __docker-machine_get_hosts all "$@" -} - -__docker-machine_hosts_running() { - __docker-machine_get_hosts Running "$@" -} - -__docker-machine_get_swarm() { - declare -a swarms - swarms=(${(f)"$(_call_program commands docker-machine ls -f {{.Swarm}} | awk '{print $1}')"}) - _describe 'swarm' swarms -} - -__docker-machine_hosts_and_files() { - _alternative "hosts:host:__docker-machine_hosts_all -qS ':'" 'files:files:_path_files' -} - -__docker-machine_filters() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - - if compset -P '*='; then - case "${${words[-1]%=*}#*=}" in - (driver) - _describe -t driver-filter-opts "driver filter" opts_driver && ret=0 - ;; - (swarm) - __docker-machine_get_swarm && ret=0 - ;; - (state) - opts_state=('Running' 'Paused' 'Saved' 'Stopped' 'Stopping' 'Starting' 'Error') - _describe -t state-filter-opts "state filter" opts_state && ret=0 - ;; - (name) - __docker-machine_hosts_all && ret=0 - ;; - (label) - _message 'label' && ret=0 - ;; - *) - _message 'value' && ret=0 - ;; - esac - else - opts=('driver' 'swarm' 'state' 'name' 'label') - _describe -t filter-opts "filter" opts -qS "=" && ret=0 - fi - return ret -} - -__get_swarm_discovery() { - declare -a masters serivces - local service - services=() - masters=($(docker-machine ls -f {{.Swarm}} |grep '(master)' |awk '{print $1}')) - for master in $masters; do - service=${${${(f)"$(_call_program commands docker-machine inspect -f '{{.HostOptions.SwarmOptions.Discovery}}:{{.Name}}' $master)"}/:/\\:}} - services=($services $service) - done - _describe -t services "swarm service" services && ret=0 - return ret -} - -__get_create_argument() { - typeset -g docker_machine_driver - if [[ CURRENT -le 2 ]]; then - docker_machine_driver="none" - elif [[ CURRENT > 2 && $words[CURRENT-2] = '-d' || $words[CURRENT-2] = '--driver' ]]; then - docker_machine_driver=$words[CURRENT-1] - elif [[ $words[CURRENT-1] =~ '^(-d|--driver)=' ]]; then - docker_machine_driver=${${words[CURRENT-1]}/*=/} - fi - local driver_opt_cmd - local -a opts_provider opts_common opts_read_argument - opts_read_argument=( - ": :->argument" - ) - opts_common=( - $opts_help \ - '(--driver -d)'{--driver=,-d=}'[Driver to create machine with]:dirver:->driver-option' \ - '--engine-install-url=[Custom URL to use for engine installation]:url' \ - '*--engine-opt=[Specify arbitrary flags to include with the created engine in the form flag=value]:flag' \ - '*--engine-insecure-registry=[Specify insecure registries to allow with the created engine]:registry' \ - '*--engine-registry-mirror=[Specify registry mirrors to use]:mirror' \ - '*--engine-label=[Specify labels for the created engine]:label' \ - '--engine-storage-driver=[Specify a storage driver to use with the engine]:storage-driver:->storage-driver-option' \ - '*--engine-env=[Specify environment variables to set in the engine]:environment' \ - '--swarm[Configure Machine with Swarm]' \ - '--swarm-image=[Specify Docker image to use for Swarm]:image' \ - '--swarm-master[Configure Machine to be a Swarm master]' \ - '--swarm-discovery=[Discovery service to use with Swarm]:service:->swarm-service' \ - '--swarm-strategy=[Define a default scheduling strategy for Swarm]:strategy:(spread binpack random)' \ - '*--swarm-opt=[Define arbitrary flags for swarm]:flag' \ - '*--swarm-join-opt=[Define arbitrary flags for Swarm join]:flag' \ - '--swarm-host=[ip/socket to listen on for Swarm master]:host' \ - '--swarm-addr=[addr to advertise for Swarm (default: detect and use the machine IP)]:address' \ - '--swarm-experimental[Enable Swarm experimental features]' \ - '*--tls-san=[Support extra SANs for TLS certs]:option' - ) - driver_opt_cmd="docker-machine create -d $docker_machine_driver | grep $docker_machine_driver | sed -e 's/\(--.*\)\ *\[\1[^]]*\]/*\1/g' -e 's/\(\[[^]]*\)/\\\\\\1\\\\/g' -e 's/\".*\"\(.*\)/\1/g' | awk '{printf \"%s[\", \$1; for(i=2;i<=NF;i++) {printf \"%s \", \$i}; print \"]\"}'" - if [[ $docker_machine_driver != "none" ]]; then - opts_provider=(${(f)"$(_call_program commands $driver_opt_cmd)"}) - _arguments \ - $opts_provider \ - $opts_read_argument \ - $opts_common && ret=0 - else - _arguments $opts_common && ret=0 - fi - case $state in - (driver-option) - _describe -t driver-option "driver" opts_driver && ret=0 - ;; - (storage-driver-option) - _describe -t storage-driver-option "storage driver" opts_storage_driver && ret=0 - ;; - (swarm-service) - __get_swarm_discovery && ret=0 - ;; - (argument) - ret=0 - ;; - esac - return ret -} - - -__docker-machine_subcommand() { - local -a opts_help - opts_help=("(- :)--help[Print usage]") - local -a opts_only_host opts_driver opts_storage_driver opts_stragery - opts_only_host=( - "$opts_help" - "*:host:__docker-machine_hosts_all" - ) - opts_driver=('amazonec2' 'azure' 'digitalocean' 'exoscale' 'generic' 'google' 'hyperv' 'none' 'openstack' 'rackspace' 'softlayer' 'virtualbox' 'vmwarefusion' 'vmwarevcloudair' 'vmwarevsphere') - opts_storage_driver=('overlay' 'aufs' 'btrfs' 'devicemapper' 'vfs' 'zfs') - integer ret=1 - - case "$words[1]" in - (active) - _arguments \ - $opts_help \ - '(--timeout -t)'{--timeout=,-t=}'[Timeout in seconds, default to 10s]:seconds' && ret=0 - ;; - (config) - _arguments \ - $opts_help \ - '--swarm[Display the Swarm config instead of the Docker daemon]' \ - "*:host:__docker-machine_hosts_all" && ret=0 - ;; - (create) - __get_create_argument - ;; - (env) - _arguments \ - $opts_help \ - '--swarm[Display the Swarm config instead of the Docker daemon]' \ - '--shell=[Force environment to be configured for a specified shell: \[fish, cmd, powershell\], default is auto-detect]:shell' \ - '(--unset -u)'{--unset,-u}'[Unset variables instead of setting them]' \ - '--no-proxy[Add machine IP to NO_PROXY environment variable]' \ - '*:host:__docker-machine_hosts_running' && ret=0 - ;; - (help) - _arguments ':subcommand:__docker-machine_commands' && ret=0 - ;; - (inspect) - _arguments \ - $opts_help \ - '(--format -f)'{--format=,-f=}'[Format the output using the given go template]:template' \ - '*:host:__docker-machine_hosts_all' && ret=0 - ;; - (ip) - _arguments \ - $opts_help \ - '*:host:__docker-machine_hosts_running' && ret=0 - ;; - (kill) - _arguments \ - $opts_help \ - '*:host:__docker-machine_hosts_with_state' && ret=0 - ;; - (ls) - _arguments \ - $opts_help \ - '(--quiet -q)'{--quiet,-q}'[Enable quiet mode]' \ - '*--filter=[Filter output based on conditions provided]:filter:->filter-options' \ - '(--timeout -t)'{--timeout=,-t=}'[Timeout in seconds, default to 10s]:seconds' \ - '(--format -f)'{--format=,-f=}'[Pretty-print machines using a Go template]:template' && ret=0 - case $state in - (filter-options) - __docker-machine_filters && ret=0 - ;; - esac - ;; - (provision) - _arguments $opts_only_host && ret=0 - ;; - (regenerate-certs) - _arguments \ - $opts_help \ - '(--force -f)'{--force,-f}'[Force rebuild and do not prompt]' \ - '*:host:__docker-machine_hosts_all' && ret=0 - ;; - (restart) - _arguments \ - $opts_help \ - '*:host:__docker-machine_hosts_with_state' && ret=0 - ;; - (rm) - _arguments \ - $opts_help \ - '(--force -f)'{--force,-f}'[Remove local configuration even if machine cannot be removed, also implies an automatic yes (`-y`)]' \ - '-y[Assumes automatic yes to proceed with remove, without prompting further user confirmation]' \ - '*:host:__docker-machine_hosts_with_state' && ret=0 - ;; - (scp) - _arguments \ - $opts_help \ - '(--recursive -r)'{--recursive,-r}'[Copy files recursively (required to copy directories))]' \ - '*:files:__docker-machine_hosts_and_files' && ret=0 - ;; - (ssh) - _arguments \ - $opts_help \ - '*:host:__docker-machine_hosts_running' && ret=0 - ;; - (start) - _arguments \ - $opts_help \ - '*:host:__docker-machine_hosts_with_state' && ret=0 - ;; - (status) - _arguments $opts_only_host && ret=0 - ;; - (stop) - _arguments \ - $opts_help \ - '*:host:__docker-machine_hosts_with_state' && ret=0 - ;; - (upgrade) - _arguments $opts_only_host && ret=0 - ;; - (url) - _arguments \ - $opts_help \ - '*:host:__docker-machine_hosts_running' && ret=0 - ;; - esac - - return ret -} - - -__docker-machine_commands() { - local cache_policy - - zstyle -s ":completion:${curcontext}:" cache-policy cache_policy - if [[ -z "$cache_policy" ]]; then - zstyle ":completion:${curcontext}:" cache-policy __docker-machine_caching_policy - fi - - if ( [[ ${+_docker_machine_subcommands} -eq 0 ]] || _cache_invalid docker_machine_subcommands) \ - && ! _retrieve_cache docker_machine_subcommands; - then - local -a lines - lines=(${(f)"$(_call_program commands docker-machine 2>&1)"}) - _docker_machine_subcommands=(${${${lines[$((${lines[(i)Commands:]} + 1)),${lines[(I) *]}]}## #}/$'\t'##/:}) - (( $#_docker_machine_subcommands > 0 )) && _store_cache docker_machine_subcommands _docker_machine_subcommands - fi - _describe -t docker-machine-commands "docker-machine command" _docker_machine_subcommands -} - -__docker-machine_caching_policy() { - oldp=( "$1"(Nmh+1) ) - (( $#oldp )) -} - -_docker-machine() { - if [[ $service != docker-machine ]]; then - _call_function - _$service - return - fi - - local curcontext="$curcontext" state line - integer ret=1 - typeset -A opt_args - - _arguments -C \ - "(- :)"{-h,--help}"[Show help]" \ - "(-D --debug)"{-D,--debug}"[Enable debug mode]" \ - '(-s --stroage-path)'{-s,--storage-path}'[Configures storage path]:file:_files' \ - '--tls-ca-cert[CA to verify remotes against]:file:_files' \ - '--tls-ca-key[Private key to generate certificates]:file:_files' \ - '--tls-client-cert[Client cert to use for TLS]:file:_files' \ - '--tls-client-key[Private key used in client TLS auth]:file:_files' \ - '--github-api-token[Token to use for requests to the Github API]' \ - '--native-ssh[Use the native (Go-based) SSH implementation.]' \ - '--bugsnag-api-token[BugSnag API token for crash reporting]' \ - '(- :)'{-v,--version}'[Print the version]' \ - "(-): :->command" \ - "(-)*:: :->option-or-argument" && ret=0 - - case $state in - (command) - __docker-machine_commands && ret=0 - ;; - (option-or-argument) - curcontext=${curcontext%:*:*}:docker-machine-$words[1]: - __docker-machine_subcommand && ret=0 - ret=0 - ;; - esac - - return ret -} - -_docker-machine "$@" diff --git a/zsh/.oh-my-zsh/plugins/docker-machine/docker-machine.plugin.zsh b/zsh/.oh-my-zsh/plugins/docker-machine/docker-machine.plugin.zsh deleted file mode 100644 index 235d90e..0000000 --- a/zsh/.oh-my-zsh/plugins/docker-machine/docker-machine.plugin.zsh +++ /dev/null @@ -1,33 +0,0 @@ -DEFAULT_MACHINE="default" - -docker-up() { - if [ -z "$1" ] - then - docker-machine start "${DEFAULT_MACHINE}" - eval $(docker-machine env "${DEFAULT_MACHINE}") - else - docker-machine start $1 - eval $(docker-machine env $1) - fi - echo $DOCKER_HOST -} -docker-stop() { - if [ -z "$1" ] - then - docker-machine stop "${DEFAULT_MACHINE}" - else - docker-machine stop $1 - fi -} -docker-switch() { - eval $(docker-machine env $1) - echo $DOCKER_HOST -} -docker-vm() { - if [ -z "$1" ] - then - docker-machine create -d virtualbox --virtualbox-disk-size 20000 --virtualbox-memory 4096 --virtualbox-cpu-count 2 "${DEFAULT_MACHINE}" - else - docker-machine create -d virtualbox --virtualbox-disk-size 20000 --virtualbox-memory 4096 --virtualbox-cpu-count 2 $1 - fi -} \ No newline at end of file diff --git a/zsh/.oh-my-zsh/plugins/docker/README.md b/zsh/.oh-my-zsh/plugins/docker/README.md deleted file mode 100644 index fab7aa8..0000000 --- a/zsh/.oh-my-zsh/plugins/docker/README.md +++ /dev/null @@ -1,34 +0,0 @@ -# Docker plugin - -This plugin adds auto-completion for [docker](https://www.docker.com/). - -To use it add `docker` to the plugins array in your zshrc file. - -```zsh -plugins=(... docker) -``` - -A copy of the completion script from the docker/cli git repo: -https://github.com/docker/cli/blob/master/contrib/completion/zsh/_docker - -## Settings - -By default, the completion doesn't allow option-stacking, meaning if you try to -complete `docker run -it ` it won't work, because you're _stacking_ the -`-i` and `-t` options. - -[You can enable it](https://github.com/docker/cli/commit/b10fb43048) by **adding -the lines below to your zshrc file**, but be aware of the side effects: - -> This enables Zsh to understand commands like `docker run -it -> ubuntu`. However, by enabling this, this also makes Zsh complete -> `docker run -u` with `docker run -uapprox` which is not valid. The -> users have to put the space or the equal sign themselves before trying -> to complete. -> -> Therefore, this behavior is disabled by default. To enable it: -> -> ``` -> zstyle ':completion:*:*:docker:*' option-stacking yes -> zstyle ':completion:*:*:docker-*:*' option-stacking yes -> ``` diff --git a/zsh/.oh-my-zsh/plugins/docker/_docker b/zsh/.oh-my-zsh/plugins/docker/_docker deleted file mode 100644 index 8ee35ab..0000000 --- a/zsh/.oh-my-zsh/plugins/docker/_docker +++ /dev/null @@ -1,3143 +0,0 @@ -#compdef docker dockerd -# -# zsh completion for docker (http://docker.com) -# -# version: 0.3.0 -# github: https://github.com/felixr/docker-zsh-completion -# -# contributors: -# - Felix Riedel -# - Steve Durrheimer -# - Vincent Bernat -# - Rohan Verma -# -# license: -# -# Copyright (c) 2013, Felix Riedel -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# * Neither the name of the nor the -# names of its contributors may be used to endorse or promote products -# derived from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -# DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY -# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# - -# Short-option stacking can be enabled with: -# zstyle ':completion:*:*:docker:*' option-stacking yes -# zstyle ':completion:*:*:docker-*:*' option-stacking yes -__docker_arguments() { - if zstyle -t ":completion:${curcontext}:" option-stacking; then - print -- -s - fi -} - -__docker_get_containers() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - local kind type line s - declare -a running stopped lines args names - - kind=$1; shift - type=$1; shift - [[ $kind = (stopped|all) ]] && args=($args -a) - - lines=(${(f)${:-"$(_call_program commands docker $docker_options ps --format 'table' --no-trunc $args)"$'\n'}}) - - # Parse header line to find columns - local i=1 j=1 k header=${lines[1]} - declare -A begin end - while (( j < ${#header} - 1 )); do - i=$(( j + ${${header[$j,-1]}[(i)[^ ]]} - 1 )) - j=$(( i + ${${header[$i,-1]}[(i) ]} - 1 )) - k=$(( j + ${${header[$j,-1]}[(i)[^ ]]} - 2 )) - begin[${header[$i,$((j-1))]}]=$i - end[${header[$i,$((j-1))]}]=$k - done - end[${header[$i,$((j-1))]}]=-1 # Last column, should go to the end of the line - lines=(${lines[2,-1]}) - - # Container ID - if [[ $type = (ids|all) ]]; then - for line in $lines; do - s="${${line[${begin[CONTAINER ID]},${end[CONTAINER ID]}]%% ##}[0,12]}" - s="$s:${(l:15:: :::)${${line[${begin[CREATED]},${end[CREATED]}]/ ago/}%% ##}}" - s="$s, ${${${line[${begin[IMAGE]},${end[IMAGE]}]}/:/\\:}%% ##}" - if [[ ${line[${begin[STATUS]},${end[STATUS]}]} = (Exit*|Created*) ]]; then - stopped=($stopped $s) - else - running=($running $s) - fi - done - fi - - # Names: we only display the one without slash. All other names - # are generated and may clutter the completion. However, with - # Swarm, all names may be prefixed by the swarm node name. - if [[ $type = (names|all) ]]; then - for line in $lines; do - names=(${(ps:,:)${${line[${begin[NAMES]},${end[NAMES]}]}%% *}}) - # First step: find a common prefix and strip it (swarm node case) - (( ${#${(u)names%%/*}} == 1 )) && names=${names#${names[1]%%/*}/} - # Second step: only keep the first name without a / - s=${${names:#*/*}[1]} - # If no name, well give up. - (( $#s != 0 )) || continue - s="$s:${(l:15:: :::)${${line[${begin[CREATED]},${end[CREATED]}]/ ago/}%% ##}}" - s="$s, ${${${line[${begin[IMAGE]},${end[IMAGE]}]}/:/\\:}%% ##}" - if [[ ${line[${begin[STATUS]},${end[STATUS]}]} = (Exit*|Created*) ]]; then - stopped=($stopped $s) - else - running=($running $s) - fi - done - fi - - [[ $kind = (running|all) ]] && _describe -t containers-running "running containers" running "$@" && ret=0 - [[ $kind = (stopped|all) ]] && _describe -t containers-stopped "stopped containers" stopped "$@" && ret=0 - return ret -} - -__docker_complete_stopped_containers() { - [[ $PREFIX = -* ]] && return 1 - __docker_get_containers stopped all "$@" -} - -__docker_complete_running_containers() { - [[ $PREFIX = -* ]] && return 1 - __docker_get_containers running all "$@" -} - -__docker_complete_containers() { - [[ $PREFIX = -* ]] && return 1 - __docker_get_containers all all "$@" -} - -__docker_complete_containers_ids() { - [[ $PREFIX = -* ]] && return 1 - __docker_get_containers all ids "$@" -} - -__docker_complete_containers_names() { - [[ $PREFIX = -* ]] && return 1 - __docker_get_containers all names "$@" -} - -__docker_complete_info_plugins() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - emulate -L zsh - setopt extendedglob - local -a plugins - plugins=(${(ps: :)${(M)${(f)${${"$(_call_program commands docker $docker_options info)"##*$'\n'Plugins:}%%$'\n'^ *}}:# $1: *}## $1: }) - _describe -t plugins "$1 plugins" plugins && ret=0 - return ret -} - -__docker_complete_images() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - declare -a images - images=(${${${(f)${:-"$(_call_program commands docker $docker_options images)"$'\n'}}[2,-1]}/(#b)([^ ]##) ##([^ ]##) ##([^ ]##)*/${match[3]}:${(r:15:: :::)match[2]} in ${match[1]}}) - _describe -t docker-images "images" images && ret=0 - __docker_complete_repositories_with_tags && ret=0 - return ret -} - -__docker_complete_repositories() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - declare -a repos - repos=(${${${(f)${:-"$(_call_program commands docker $docker_options images)"$'\n'}}%% *}[2,-1]}) - repos=(${repos#}) - _describe -t docker-repos "repositories" repos && ret=0 - return ret -} - -__docker_complete_repositories_with_tags() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - declare -a repos onlyrepos matched - declare m - repos=(${${${${(f)${:-"$(_call_program commands docker $docker_options images)"$'\n'}}[2,-1]}/ ##/:::}%% *}) - repos=(${${repos%:::}#}) - # Check if we have a prefix-match for the current prefix. - onlyrepos=(${repos%::*}) - for m in $onlyrepos; do - [[ ${PREFIX##${~~m}} != ${PREFIX} ]] && { - # Yes, complete with tags - repos=(${${repos/:::/:}/:/\\:}) - _describe -t docker-repos-with-tags "repositories with tags" repos && ret=0 - return ret - } - done - # No, only complete repositories - onlyrepos=(${${repos%:::*}/:/\\:}) - _describe -t docker-repos "repositories" onlyrepos -qS : && ret=0 - - return ret -} - -__docker_search() { - [[ $PREFIX = -* ]] && return 1 - local cache_policy - zstyle -s ":completion:${curcontext}:" cache-policy cache_policy - if [[ -z "$cache_policy" ]]; then - zstyle ":completion:${curcontext}:" cache-policy __docker_caching_policy - fi - - local searchterm cachename - searchterm="${words[$CURRENT]%/}" - cachename=_docker-search-$searchterm - - local expl - local -a result - if ( [[ ${(P)+cachename} -eq 0 ]] || _cache_invalid ${cachename#_} ) \ - && ! _retrieve_cache ${cachename#_}; then - _message "Searching for ${searchterm}..." - result=(${${${(f)${:-"$(_call_program commands docker $docker_options search $searchterm)"$'\n'}}%% *}[2,-1]}) - _store_cache ${cachename#_} result - fi - _wanted dockersearch expl 'available images' compadd -a result -} - -__docker_get_log_options() { - [[ $PREFIX = -* ]] && return 1 - - integer ret=1 - local log_driver=${opt_args[--log-driver]:-"all"} - local -a common_options common_options2 awslogs_options fluentd_options gelf_options journald_options json_file_options logentries_options syslog_options splunk_options - - common_options=("max-buffer-size" "mode") - common_options2=("env" "env-regex" "labels") - awslogs_options=($common_options "awslogs-create-group" "awslogs-datetime-format" "awslogs-group" "awslogs-multiline-pattern" "awslogs-region" "awslogs-stream" "tag") - fluentd_options=($common_options $common_options2 "fluentd-address" "fluentd-async-connect" "fluentd-buffer-limit" "fluentd-retry-wait" "fluentd-max-retries" "fluentd-sub-second-precision" "tag") - gcplogs_options=($common_options $common_options2 "gcp-log-cmd" "gcp-meta-id" "gcp-meta-name" "gcp-meta-zone" "gcp-project") - gelf_options=($common_options $common_options2 "gelf-address" "gelf-compression-level" "gelf-compression-type" "tag") - journald_options=($common_options $common_options2 "tag") - json_file_options=($common_options $common_options2 "max-file" "max-size") - logentries_options=($common_options $common_options2 "logentries-token" "tag") - syslog_options=($common_options $common_options2 "syslog-address" "syslog-facility" "syslog-format" "syslog-tls-ca-cert" "syslog-tls-cert" "syslog-tls-key" "syslog-tls-skip-verify" "tag") - splunk_options=($common_options $common_options2 "splunk-caname" "splunk-capath" "splunk-format" "splunk-gzip" "splunk-gzip-level" "splunk-index" "splunk-insecureskipverify" "splunk-source" "splunk-sourcetype" "splunk-token" "splunk-url" "splunk-verify-connection" "tag") - - [[ $log_driver = (awslogs|all) ]] && _describe -t awslogs-options "awslogs options" awslogs_options "$@" && ret=0 - [[ $log_driver = (fluentd|all) ]] && _describe -t fluentd-options "fluentd options" fluentd_options "$@" && ret=0 - [[ $log_driver = (gcplogs|all) ]] && _describe -t gcplogs-options "gcplogs options" gcplogs_options "$@" && ret=0 - [[ $log_driver = (gelf|all) ]] && _describe -t gelf-options "gelf options" gelf_options "$@" && ret=0 - [[ $log_driver = (journald|all) ]] && _describe -t journald-options "journald options" journald_options "$@" && ret=0 - [[ $log_driver = (json-file|all) ]] && _describe -t json-file-options "json-file options" json_file_options "$@" && ret=0 - [[ $log_driver = (logentries|all) ]] && _describe -t logentries-options "logentries options" logentries_options "$@" && ret=0 - [[ $log_driver = (syslog|all) ]] && _describe -t syslog-options "syslog options" syslog_options "$@" && ret=0 - [[ $log_driver = (splunk|all) ]] && _describe -t splunk-options "splunk options" splunk_options "$@" && ret=0 - - return ret -} - -__docker_complete_log_drivers() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - drivers=(awslogs etwlogs fluentd gcplogs gelf journald json-file none splunk syslog) - _describe -t log-drivers "log drivers" drivers && ret=0 - return ret -} - -__docker_complete_log_options() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - - if compset -P '*='; then - case "${${words[-1]%=*}#*=}" in - (syslog-format) - local opts=('rfc3164' 'rfc5424' 'rfc5424micro') - _describe -t syslog-format-opts "syslog format options" opts && ret=0 - ;; - (mode) - local opts=('blocking' 'non-blocking') - _describe -t mode-opts "mode options" opts && ret=0 - ;; - *) - _message 'value' && ret=0 - ;; - esac - else - __docker_get_log_options -qS "=" && ret=0 - fi - - return ret -} - -__docker_complete_detach_keys() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - - compset -P "*," - keys=(${:-{a-z}}) - ctrl_keys=(${:-ctrl-{{a-z},{@,'[','\\','^',']',_}}}) - _describe -t detach_keys "[a-z]" keys -qS "," && ret=0 - _describe -t detach_keys-ctrl "'ctrl-' + 'a-z @ [ \\\\ ] ^ _'" ctrl_keys -qS "," && ret=0 -} - -__docker_complete_pid() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - local -a opts vopts - - opts=('host') - vopts=('container') - - if compset -P '*:'; then - case "${${words[-1]%:*}#*=}" in - (container) - __docker_complete_running_containers && ret=0 - ;; - *) - _message 'value' && ret=0 - ;; - esac - else - _describe -t pid-value-opts "PID Options with value" vopts -qS ":" && ret=0 - _describe -t pid-opts "PID Options" opts && ret=0 - fi - - return ret -} - -__docker_complete_runtimes() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - - emulate -L zsh - setopt extendedglob - local -a runtimes_opts - runtimes_opts=(${(ps: :)${(f)${${"$(_call_program commands docker $docker_options info)"##*$'\n'Runtimes: }%%$'\n'^ *}}}) - _describe -t runtimes-opts "runtimes options" runtimes_opts && ret=0 -} - -__docker_complete_ps_filters() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - - if compset -P '*='; then - case "${${words[-1]%=*}#*=}" in - (ancestor) - __docker_complete_images && ret=0 - ;; - (before|since) - __docker_complete_containers && ret=0 - ;; - (health) - health_opts=('healthy' 'none' 'starting' 'unhealthy') - _describe -t health-filter-opts "health filter options" health_opts && ret=0 - ;; - (id) - __docker_complete_containers_ids && ret=0 - ;; - (is-task) - _describe -t boolean-filter-opts "filter options" boolean_opts && ret=0 - ;; - (name) - __docker_complete_containers_names && ret=0 - ;; - (network) - __docker_complete_networks && ret=0 - ;; - (status) - status_opts=('created' 'dead' 'exited' 'paused' 'restarting' 'running' 'removing') - _describe -t status-filter-opts "status filter options" status_opts && ret=0 - ;; - (volume) - __docker_complete_volumes && ret=0 - ;; - *) - _message 'value' && ret=0 - ;; - esac - else - opts=('ancestor' 'before' 'exited' 'expose' 'health' 'id' 'label' 'name' 'network' 'publish' 'since' 'status' 'volume') - _describe -t filter-opts "Filter Options" opts -qS "=" && ret=0 - fi - - return ret -} - -__docker_complete_search_filters() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - declare -a boolean_opts opts - - boolean_opts=('true' 'false') - opts=('is-automated' 'is-official' 'stars') - - if compset -P '*='; then - case "${${words[-1]%=*}#*=}" in - (is-automated|is-official) - _describe -t boolean-filter-opts "filter options" boolean_opts && ret=0 - ;; - *) - _message 'value' && ret=0 - ;; - esac - else - _describe -t filter-opts "filter options" opts -qS "=" && ret=0 - fi - - return ret -} - -__docker_complete_images_filters() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - declare -a boolean_opts opts - - boolean_opts=('true' 'false') - opts=('before' 'dangling' 'label' 'reference' 'since') - - if compset -P '*='; then - case "${${words[-1]%=*}#*=}" in - (before|reference|since) - __docker_complete_images && ret=0 - ;; - (dangling) - _describe -t boolean-filter-opts "filter options" boolean_opts && ret=0 - ;; - *) - _message 'value' && ret=0 - ;; - esac - else - _describe -t filter-opts "Filter Options" opts -qS "=" && ret=0 - fi - - return ret -} - -__docker_complete_events_filter() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - declare -a opts - - opts=('container' 'daemon' 'event' 'image' 'label' 'network' 'scope' 'type' 'volume') - - if compset -P '*='; then - case "${${words[-1]%=*}#*=}" in - (container) - __docker_complete_containers && ret=0 - ;; - (daemon) - emulate -L zsh - setopt extendedglob - local -a daemon_opts - daemon_opts=( - ${(f)${${"$(_call_program commands docker $docker_options info)"##*$'\n'Name: }%%$'\n'^ *}} - ${${(f)${${"$(_call_program commands docker $docker_options info)"##*$'\n'ID: }%%$'\n'^ *}}//:/\\:} - ) - _describe -t daemon-filter-opts "daemon filter options" daemon_opts && ret=0 - ;; - (event) - local -a event_opts - event_opts=('attach' 'commit' 'connect' 'copy' 'create' 'delete' 'destroy' 'detach' 'die' 'disable' 'disconnect' 'enable' 'exec_create' 'exec_detach' - 'exec_start' 'export' 'health_status' 'import' 'install' 'kill' 'load' 'mount' 'oom' 'pause' 'pull' 'push' 'reload' 'remove' 'rename' 'resize' - 'restart' 'save' 'start' 'stop' 'tag' 'top' 'unmount' 'unpause' 'untag' 'update') - _describe -t event-filter-opts "event filter options" event_opts && ret=0 - ;; - (image) - __docker_complete_images && ret=0 - ;; - (network) - __docker_complete_networks && ret=0 - ;; - (scope) - local -a scope_opts - scope_opts=('local' 'swarm') - _describe -t scope-filter-opts "scope filter options" scope_opts && ret=0 - ;; - (type) - local -a type_opts - type_opts=('container' 'daemon' 'image' 'network' 'volume') - _describe -t type-filter-opts "type filter options" type_opts && ret=0 - ;; - (volume) - __docker_complete_volumes && ret=0 - ;; - *) - _message 'value' && ret=0 - ;; - esac - else - _describe -t filter-opts "filter options" opts -qS "=" && ret=0 - fi - - return ret -} - -__docker_complete_prune_filters() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - declare -a opts - - opts=('until') - - if compset -P '*='; then - case "${${words[-1]%=*}#*=}" in - *) - _message 'value' && ret=0 - ;; - esac - else - _describe -t filter-opts "filter options" opts -qS "=" && ret=0 - fi - - return ret -} - -# BO checkpoint - -__docker_checkpoint_commands() { - local -a _docker_checkpoint_subcommands - _docker_checkpoint_subcommands=( - "create:Create a checkpoint from a running container" - "ls:List checkpoints for a container" - "rm:Remove a checkpoint" - ) - _describe -t docker-checkpoint-commands "docker checkpoint command" _docker_checkpoint_subcommands -} - -__docker_checkpoint_subcommand() { - local -a _command_args opts_help - local expl help="--help" - integer ret=1 - - opts_help=("(: -)--help[Print usage]") - - case "$words[1]" in - (create) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)--checkpoint-dir=[Use a custom checkpoint storage directory]:dir:_directories" \ - "($help)--leave-running[Leave the container running after checkpoint]" \ - "($help -)1:container:__docker_complete_running_containers" \ - "($help -)2:checkpoint: " && ret=0 - ;; - (ls|list) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)--checkpoint-dir=[Use a custom checkpoint storage directory]:dir:_directories" \ - "($help -)1:container:__docker_complete_containers" && ret=0 - ;; - (rm|remove) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)--checkpoint-dir=[Use a custom checkpoint storage directory]:dir:_directories" \ - "($help -)1:container:__docker_complete_containers" \ - "($help -)2:checkpoint: " && ret=0 - ;; - (help) - _arguments $(__docker_arguments) ":subcommand:__docker_checkpoint_commands" && ret=0 - ;; - esac - - return ret -} - -# EO checkpoint - -# BO container - -__docker_container_commands() { - local -a _docker_container_subcommands - _docker_container_subcommands=( - "attach:Attach to a running container" - "commit:Create a new image from a container's changes" - "cp:Copy files/folders between a container and the local filesystem" - "create:Create a new container" - "diff:Inspect changes on a container's filesystem" - "exec:Run a command in a running container" - "export:Export a container's filesystem as a tar archive" - "inspect:Display detailed information on one or more containers" - "kill:Kill one or more running containers" - "logs:Fetch the logs of a container" - "ls:List containers" - "pause:Pause all processes within one or more containers" - "port:List port mappings or a specific mapping for the container" - "prune:Remove all stopped containers" - "rename:Rename a container" - "restart:Restart one or more containers" - "rm:Remove one or more containers" - "run:Run a command in a new container" - "start:Start one or more stopped containers" - "stats:Display a live stream of container(s) resource usage statistics" - "stop:Stop one or more running containers" - "top:Display the running processes of a container" - "unpause:Unpause all processes within one or more containers" - "update:Update configuration of one or more containers" - "wait:Block until one or more containers stop, then print their exit codes" - ) - _describe -t docker-container-commands "docker container command" _docker_container_subcommands -} - -__docker_container_subcommand() { - local -a _command_args opts_help opts_attach_exec_run_start opts_create_run opts_create_run_update - local expl help="--help" - integer ret=1 - - opts_attach_exec_run_start=( - "($help)--detach-keys=[Escape key sequence used to detach a container]:sequence:__docker_complete_detach_keys" - ) - opts_create_run=( - "($help -a --attach)"{-a=,--attach=}"[Attach to stdin, stdout or stderr]:device:(STDIN STDOUT STDERR)" - "($help)*--add-host=[Add a custom host-to-IP mapping]:host\:ip mapping: " - "($help)*--blkio-weight-device=[Block IO (relative device weight)]:device:Block IO weight: " - "($help)*--cap-add=[Add Linux capabilities]:capability: " - "($help)*--cap-drop=[Drop Linux capabilities]:capability: " - "($help)--cgroupns=[Cgroup namespace mode to use]:cgroup namespace mode: " - "($help)--cgroup-parent=[Parent cgroup for the container]:cgroup: " - "($help)--cidfile=[Write the container ID to the file]:CID file:_files" - "($help)--cpus=[Number of CPUs (default 0.000)]:cpus: " - "($help)*--device=[Add a host device to the container]:device:_files" - "($help)*--device-cgroup-rule=[Add a rule to the cgroup allowed devices list]:device:cgroup: " - "($help)*--device-read-bps=[Limit the read rate (bytes per second) from a device]:device:IO rate: " - "($help)*--device-read-iops=[Limit the read rate (IO per second) from a device]:device:IO rate: " - "($help)*--device-write-bps=[Limit the write rate (bytes per second) to a device]:device:IO rate: " - "($help)*--device-write-iops=[Limit the write rate (IO per second) to a device]:device:IO rate: " - "($help)--disable-content-trust[Skip image verification]" - "($help)*--dns=[Custom DNS servers]:DNS server: " - "($help)*--dns-option=[Custom DNS options]:DNS option: " - "($help)*--dns-search=[Custom DNS search domains]:DNS domains: " - "($help)*--domainname=[Container NIS domain name]:domainname:_hosts" - "($help)*"{-e=,--env=}"[Environment variables]:environment variable: " - "($help)--entrypoint=[Overwrite the default entrypoint of the image]:entry point: " - "($help)*--env-file=[Read environment variables from a file]:environment file:_files" - "($help)*--expose=[Expose a port from the container without publishing it]: " - "($help)*--gpus=[GPU devices to add to the container ('all' to pass all GPUs)]:device: " - "($help)*--group-add=[Set one or more supplementary user groups for the container]:group:_groups" - "($help -h --hostname)"{-h=,--hostname=}"[Container host name]:hostname:_hosts" - "($help -i --interactive)"{-i,--interactive}"[Keep stdin open even if not attached]" - "($help)--init[Run an init inside the container that forwards signals and reaps processes]" - "($help)--ip=[IPv4 address]:IPv4: " - "($help)--ip6=[IPv6 address]:IPv6: " - "($help)--ipc=[IPC namespace to use]:IPC namespace: " - "($help)--isolation=[Container isolation technology]:isolation:(default hyperv process)" - "($help)*--link=[Add link to another container]:link:->link" - "($help)*--link-local-ip=[Container IPv4/IPv6 link-local addresses]:IPv4/IPv6: " - "($help)*"{-l=,--label=}"[Container metadata]:label: " - "($help)--log-driver=[Default driver for container logs]:logging driver:__docker_complete_log_drivers" - "($help)*--log-opt=[Log driver specific options]:log driver options:__docker_complete_log_options" - "($help)--mac-address=[Container MAC address]:MAC address: " - "($help)*--mount=[Attach a filesystem mount to the container]:mount: " - "($help)--name=[Container name]:name: " - "($help)--network=[Connect a container to a network]:network mode:(bridge none container host)" - "($help)*--network-alias=[Add network-scoped alias for the container]:alias: " - "($help)--oom-kill-disable[Disable OOM Killer]" - "($help)--oom-score-adj[Tune the host's OOM preferences for containers (accepts -1000 to 1000)]" - "($help)--pids-limit[Tune container pids limit (set -1 for unlimited)]" - "($help -P --publish-all)"{-P,--publish-all}"[Publish all exposed ports]" - "($help)*"{-p=,--publish=}"[Expose a container's port to the host]:port:_ports" - "($help)--pid=[PID namespace to use]:PID namespace:__docker_complete_pid" - "($help)--privileged[Give extended privileges to this container]" - "($help)--read-only[Mount the container's root filesystem as read only]" - "($help)*--security-opt=[Security options]:security option: " - "($help)*--shm-size=[Size of '/dev/shm' (format is '')]:shm size: " - "($help)--stop-signal=[Signal to kill a container]:signal:_signals" - "($help)--stop-timeout=[Timeout (in seconds) to stop a container]:time: " - "($help)*--sysctl=-[sysctl options]:sysctl: " - "($help -t --tty)"{-t,--tty}"[Allocate a pseudo-tty]" - "($help -u --user)"{-u=,--user=}"[Username or UID]:user:_users" - "($help)*--ulimit=[ulimit options]:ulimit: " - "($help)--userns=[Container user namespace]:user namespace:(host)" - "($help)--tmpfs[mount tmpfs]" - "($help)*-v[Bind mount a volume]:volume: " - "($help)--volume-driver=[Optional volume driver for the container]:volume driver:(local)" - "($help)*--volumes-from=[Mount volumes from the specified container]:volume: " - "($help -w --workdir)"{-w=,--workdir=}"[Working directory inside the container]:directory:_directories" - ) - opts_create_run_update=( - "($help)--blkio-weight=[Block IO (relative weight), between 10 and 1000]:Block IO weight:(10 100 500 1000)" - "($help -c --cpu-shares)"{-c=,--cpu-shares=}"[CPU shares (relative weight)]:CPU shares:(0 10 100 200 500 800 1000)" - "($help)--cpu-period=[Limit the CPU CFS (Completely Fair Scheduler) period]:CPU period: " - "($help)--cpu-quota=[Limit the CPU CFS (Completely Fair Scheduler) quota]:CPU quota: " - "($help)--cpu-rt-period=[Limit the CPU real-time period]:CPU real-time period in microseconds: " - "($help)--cpu-rt-runtime=[Limit the CPU real-time runtime]:CPU real-time runtime in microseconds: " - "($help)--cpuset-cpus=[CPUs in which to allow execution]:CPUs: " - "($help)--cpuset-mems=[MEMs in which to allow execution]:MEMs: " - "($help)--kernel-memory=[Kernel memory limit in bytes]:Memory limit: " - "($help -m --memory)"{-m=,--memory=}"[Memory limit]:Memory limit: " - "($help)--memory-reservation=[Memory soft limit]:Memory limit: " - "($help)--memory-swap=[Total memory limit with swap]:Memory limit: " - "($help)--pids-limit[Tune container pids limit (set -1 for unlimited)]" - "($help)--restart=[Restart policy]:restart policy:(no on-failure always unless-stopped)" - ) - opts_help=("(: -)--help[Print usage]") - - case "$words[1]" in - (attach) - _arguments $(__docker_arguments) \ - $opts_help \ - $opts_attach_exec_run_start \ - "($help)--no-stdin[Do not attach stdin]" \ - "($help)--sig-proxy[Proxy all received signals to the process (non-TTY mode only)]" \ - "($help -):containers:__docker_complete_running_containers" && ret=0 - ;; - (commit) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -a --author)"{-a=,--author=}"[Author]:author: " \ - "($help)*"{-c=,--change=}"[Apply Dockerfile instruction to the created image]:Dockerfile:_files" \ - "($help -m --message)"{-m=,--message=}"[Commit message]:message: " \ - "($help -p --pause)"{-p,--pause}"[Pause container during commit]" \ - "($help -):container:__docker_complete_containers" \ - "($help -): :__docker_complete_repositories_with_tags" && ret=0 - ;; - (cp) - local state - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -L --follow-link)"{-L,--follow-link}"[Always follow symbol link]" \ - "($help -)1:container:->container" \ - "($help -)2:hostpath:_files" && ret=0 - case $state in - (container) - if compset -P "*:"; then - _files && ret=0 - else - __docker_complete_containers -qS ":" && ret=0 - fi - ;; - esac - ;; - (create) - local state - _arguments $(__docker_arguments) \ - $opts_help \ - $opts_create_run \ - $opts_create_run_update \ - "($help -): :__docker_complete_images" \ - "($help -):command: _command_names -e" \ - "($help -)*::arguments: _normal" && ret=0 - case $state in - (link) - if compset -P "*:"; then - _wanted alias expl "Alias" compadd -E "" && ret=0 - else - __docker_complete_running_containers -qS ":" && ret=0 - fi - ;; - esac - ;; - (diff) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -)*:containers:__docker_complete_containers" && ret=0 - ;; - (exec) - local state - _arguments $(__docker_arguments) \ - $opts_help \ - $opts_attach_exec_run_start \ - "($help -d --detach)"{-d,--detach}"[Detached mode: leave the container running in the background]" \ - "($help)*"{-e=,--env=}"[Set environment variables]:environment variable: " \ - "($help)*--env-file=[Read environment variables from a file]:environment file:_files" \ - "($help -i --interactive)"{-i,--interactive}"[Keep stdin open even if not attached]" \ - "($help)--privileged[Give extended Linux capabilities to the command]" \ - "($help -t --tty)"{-t,--tty}"[Allocate a pseudo-tty]" \ - "($help -u --user)"{-u=,--user=}"[Username or UID]:user:_users" \ - "($help -w --workdir)"{-w=,--workdir=}"[Working directory inside the container]:directory:_directories" \ - "($help -):containers:__docker_complete_running_containers" \ - "($help -)*::command:->anycommand" && ret=0 - case $state in - (anycommand) - shift 1 words - (( CURRENT-- )) - _normal && ret=0 - ;; - esac - ;; - (export) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -o --output)"{-o=,--output=}"[Write to a file, instead of stdout]:output file:_files" \ - "($help -)*:containers:__docker_complete_containers" && ret=0 - ;; - (inspect) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -f --format)"{-f=,--format=}"[Format the output using the given go template]:template: " \ - "($help -s --size)"{-s,--size}"[Display total file sizes]" \ - "($help -)*:containers:__docker_complete_containers" && ret=0 - ;; - (kill) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -s --signal)"{-s=,--signal=}"[Signal to send]:signal:_signals" \ - "($help -)*:containers:__docker_complete_running_containers" && ret=0 - ;; - (logs) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)--details[Show extra details provided to logs]" \ - "($help -f --follow)"{-f,--follow}"[Follow log output]" \ - "($help -s --since)"{-s=,--since=}"[Show logs since this timestamp]:timestamp: " \ - "($help -t --timestamps)"{-t,--timestamps}"[Show timestamps]" \ - "($help -n --tail)"{-n=,--tail=}"[Number of lines to show from the end of the logs]:lines:(1 10 20 50 all)" \ - "($help -)*:containers:__docker_complete_containers" && ret=0 - ;; - (ls|list) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -a --all)"{-a,--all}"[Show all containers]" \ - "($help)--before=[Show only container created before...]:containers:__docker_complete_containers" \ - "($help)*"{-f=,--filter=}"[Filter values]:filter:__docker_complete_ps_filters" \ - "($help)--format=[Pretty-print containers using a Go template]:template: " \ - "($help -l --latest)"{-l,--latest}"[Show only the latest created container]" \ - "($help -n --last)"{-n=,--last=}"[Show n last created containers (includes all states)]:n:(1 5 10 25 50)" \ - "($help)--no-trunc[Do not truncate output]" \ - "($help -q --quiet)"{-q,--quiet}"[Only show container IDs]" \ - "($help -s --size)"{-s,--size}"[Display total file sizes]" \ - "($help)--since=[Show only containers created since...]:containers:__docker_complete_containers" && ret=0 - ;; - (pause|unpause) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -)*:containers:__docker_complete_running_containers" && ret=0 - ;; - (port) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -)1:containers:__docker_complete_running_containers" \ - "($help -)2:port:_ports" && ret=0 - ;; - (prune) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)*--filter=[Filter values]:filter:__docker_complete_prune_filters" \ - "($help -f --force)"{-f,--force}"[Do not prompt for confirmation]" && ret=0 - ;; - (rename) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -):old name:__docker_complete_containers" \ - "($help -):new name: " && ret=0 - ;; - (restart) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -t --time)"{-t=,--time=}"[Number of seconds to try to stop for before killing the container]:seconds to before killing:(1 5 10 30 60)" \ - "($help -)*:containers:__docker_complete_containers" && ret=0 - ;; - (rm) - local state - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -f --force)"{-f,--force}"[Force removal]" \ - "($help -l --link)"{-l,--link}"[Remove the specified link and not the underlying container]" \ - "($help -v --volumes)"{-v,--volumes}"[Remove the volumes associated to the container]" \ - "($help -)*:containers:->values" && ret=0 - case $state in - (values) - if [[ ${words[(r)-f]} == -f || ${words[(r)--force]} == --force ]]; then - __docker_complete_containers && ret=0 - else - __docker_complete_stopped_containers && ret=0 - fi - ;; - esac - ;; - (run) - local state - _arguments $(__docker_arguments) \ - $opts_help \ - $opts_create_run \ - $opts_create_run_update \ - $opts_attach_exec_run_start \ - "($help -d --detach)"{-d,--detach}"[Detached mode: leave the container running in the background]" \ - "($help)--health-cmd=[Command to run to check health]:command: " \ - "($help)--health-interval=[Time between running the check]:time: " \ - "($help)--health-retries=[Consecutive failures needed to report unhealthy]:retries:(1 2 3 4 5)" \ - "($help)--health-timeout=[Maximum time to allow one check to run]:time: " \ - "($help)--no-healthcheck[Disable any container-specified HEALTHCHECK]" \ - "($help)--rm[Remove intermediate containers when it exits]" \ - "($help)--runtime=[Name of the runtime to be used for that container]:runtime:__docker_complete_runtimes" \ - "($help)--sig-proxy[Proxy all received signals to the process (non-TTY mode only)]" \ - "($help)--storage-opt=[Storage driver options for the container]:storage options:->storage-opt" \ - "($help -): :__docker_complete_images" \ - "($help -):command: _command_names -e" \ - "($help -)*::arguments: _normal" && ret=0 - case $state in - (link) - if compset -P "*:"; then - _wanted alias expl "Alias" compadd -E "" && ret=0 - else - __docker_complete_running_containers -qS ":" && ret=0 - fi - ;; - (storage-opt) - if compset -P "*="; then - _message "value" && ret=0 - else - opts=('size') - _describe -t filter-opts "storage options" opts -qS "=" && ret=0 - fi - ;; - esac - ;; - (start) - _arguments $(__docker_arguments) \ - $opts_help \ - $opts_attach_exec_run_start \ - "($help -a --attach)"{-a,--attach}"[Attach container's stdout/stderr and forward all signals]" \ - "($help -i --interactive)"{-i,--interactive}"[Attach container's stdin]" \ - "($help -)*:containers:__docker_complete_stopped_containers" && ret=0 - ;; - (stats) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -a --all)"{-a,--all}"[Show all containers (default shows just running)]" \ - "($help)--format=[Pretty-print images using a Go template]:template: " \ - "($help)--no-stream[Disable streaming stats and only pull the first result]" \ - "($help)--no-trunc[Do not truncate output]" \ - "($help -)*:containers:__docker_complete_running_containers" && ret=0 - ;; - (stop) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -t --time)"{-t=,--time=}"[Number of seconds to try to stop for before killing the container]:seconds to before killing:(1 5 10 30 60)" \ - "($help -)*:containers:__docker_complete_running_containers" && ret=0 - ;; - (top) - local state - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -)1:containers:__docker_complete_running_containers" \ - "($help -)*:: :->ps-arguments" && ret=0 - case $state in - (ps-arguments) - _ps && ret=0 - ;; - esac - ;; - (update) - local state - _arguments $(__docker_arguments) \ - $opts_help \ - $opts_create_run_update \ - "($help -)*: :->values" && ret=0 - case $state in - (values) - if [[ ${words[(r)--kernel-memory*]} = (--kernel-memory*) ]]; then - __docker_complete_stopped_containers && ret=0 - else - __docker_complete_containers && ret=0 - fi - ;; - esac - ;; - (wait) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -)*:containers:__docker_complete_running_containers" && ret=0 - ;; - (help) - _arguments $(__docker_arguments) ":subcommand:__docker_container_commands" && ret=0 - ;; - esac - - return ret -} - -# EO container - -# BO image - -__docker_image_commands() { - local -a _docker_image_subcommands - _docker_image_subcommands=( - "build:Build an image from a Dockerfile" - "history:Show the history of an image" - "import:Import the contents from a tarball to create a filesystem image" - "inspect:Display detailed information on one or more images" - "load:Load an image from a tar archive or STDIN" - "ls:List images" - "prune:Remove unused images" - "pull:Pull an image or a repository from a registry" - "push:Push an image or a repository to a registry" - "rm:Remove one or more images" - "save:Save one or more images to a tar archive (streamed to STDOUT by default)" - "tag:Tag an image into a repository" - ) - _describe -t docker-image-commands "docker image command" _docker_image_subcommands -} - -__docker_image_subcommand() { - local -a _command_args opts_help - local expl help="--help" - integer ret=1 - - opts_help=("(: -)--help[Print usage]") - - case "$words[1]" in - (build) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)*--add-host=[Add a custom host-to-IP mapping]:host\:ip mapping: " \ - "($help)*--build-arg=[Build-time variables]:=: " \ - "($help)*--cache-from=[Images to consider as cache sources]: :__docker_complete_repositories_with_tags" \ - "($help -c --cpu-shares)"{-c=,--cpu-shares=}"[CPU shares (relative weight)]:CPU shares:(0 10 100 200 500 800 1000)" \ - "($help)--cgroup-parent=[Parent cgroup for the container]:cgroup: " \ - "($help)--compress[Compress the build context using gzip]" \ - "($help)--cpu-period=[Limit the CPU CFS (Completely Fair Scheduler) period]:CPU period: " \ - "($help)--cpu-quota=[Limit the CPU CFS (Completely Fair Scheduler) quota]:CPU quota: " \ - "($help)--cpu-rt-period=[Limit the CPU real-time period]:CPU real-time period in microseconds: " \ - "($help)--cpu-rt-runtime=[Limit the CPU real-time runtime]:CPU real-time runtime in microseconds: " \ - "($help)--cpuset-cpus=[CPUs in which to allow execution]:CPUs: " \ - "($help)--cpuset-mems=[MEMs in which to allow execution]:MEMs: " \ - "($help)--disable-content-trust[Skip image verification]" \ - "($help -f --file)"{-f=,--file=}"[Name of the Dockerfile]:Dockerfile:_files" \ - "($help)--force-rm[Always remove intermediate containers]" \ - "($help)--isolation=[Container isolation technology]:isolation:(default hyperv process)" \ - "($help)*--label=[Set metadata for an image]:label=value: " \ - "($help -m --memory)"{-m=,--memory=}"[Memory limit]:Memory limit: " \ - "($help)--memory-swap=[Total memory limit with swap]:Memory limit: " \ - "($help)--network=[Connect a container to a network]:network mode:(bridge none container host)" \ - "($help)--no-cache[Do not use cache when building the image]" \ - "($help)--pull[Attempt to pull a newer version of the image]" \ - "($help -q --quiet)"{-q,--quiet}"[Suppress verbose build output]" \ - "($help)--rm[Remove intermediate containers after a successful build]" \ - "($help)*--shm-size=[Size of '/dev/shm' (format is '')]:shm size: " \ - "($help)--squash[Squash newly built layers into a single new layer]" \ - "($help -t --tag)*"{-t=,--tag=}"[Repository, name and tag for the image]: :__docker_complete_repositories_with_tags" \ - "($help)--target=[Set the target build stage to build.]" \ - "($help)*--ulimit=[ulimit options]:ulimit: " \ - "($help)--userns=[Container user namespace]:user namespace:(host)" \ - "($help -):path or URL:_directories" && ret=0 - ;; - (history) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -H --human)"{-H,--human}"[Print sizes and dates in human readable format]" \ - "($help)--no-trunc[Do not truncate output]" \ - "($help -q --quiet)"{-q,--quiet}"[Only show image IDs]" \ - "($help -)*: :__docker_complete_images" && ret=0 - ;; - (import) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)*"{-c=,--change=}"[Apply Dockerfile instruction to the created image]:Dockerfile:_files" \ - "($help -m --message)"{-m=,--message=}"[Commit message for imported image]:message: " \ - "($help -):URL:(- http:// file://)" \ - "($help -): :__docker_complete_repositories_with_tags" && ret=0 - ;; - (inspect) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -f --format)"{-f=,--format=}"[Format the output using the given go template]:template: " \ - "($help -)*:images:__docker_complete_images" && ret=0 - ;; - (load) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -i --input)"{-i=,--input=}"[Read from tar archive file]:archive file:_files -g \"*.((tar|TAR)(.gz|.GZ|.Z|.bz2|.lzma|.xz|)|(tbz|tgz|txz))(-.)\"" \ - "($help -q --quiet)"{-q,--quiet}"[Suppress the load output]" && ret=0 - ;; - (ls|list) - local state - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -a --all)"{-a,--all}"[Show all images]" \ - "($help)--digests[Show digests]" \ - "($help)*"{-f=,--filter=}"[Filter values]:filter:__docker_complete_images_filters" \ - "($help)--format=[Pretty-print images using a Go template]:template: " \ - "($help)--no-trunc[Do not truncate output]" \ - "($help -q --quiet)"{-q,--quiet}"[Only show image IDs]" \ - "($help -): :__docker_complete_repositories" && ret=0 - ;; - (prune) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -a --all)"{-a,--all}"[Remove all unused images, not just dangling ones]" \ - "($help)*--filter=[Filter values]:filter:__docker_complete_prune_filters" \ - "($help -f --force)"{-f,--force}"[Do not prompt for confirmation]" && ret=0 - ;; - (pull) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -a --all-tags)"{-a,--all-tags}"[Download all tagged images]" \ - "($help)--disable-content-trust[Skip image verification]" \ - "($help -):name:__docker_search" && ret=0 - ;; - (push) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -a --all-tags)"{-a,--all-tags}"[Push all tagged images in the repository]" \ - "($help)--disable-content-trust[Skip image signing]" \ - "($help -): :__docker_complete_images" && ret=0 - ;; - (rm) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -f --force)"{-f,--force}"[Force removal]" \ - "($help)--no-prune[Do not delete untagged parents]" \ - "($help -)*: :__docker_complete_images" && ret=0 - ;; - (save) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -o --output)"{-o=,--output=}"[Write to file]:file:_files" \ - "($help -)*: :__docker_complete_images" && ret=0 - ;; - (tag) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -):source:__docker_complete_images"\ - "($help -):destination:__docker_complete_repositories_with_tags" && ret=0 - ;; - (help) - _arguments $(__docker_arguments) ":subcommand:__docker_container_commands" && ret=0 - ;; - esac - - return ret -} - -# EO image - -# BO network - -__docker_network_complete_ls_filters() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - - if compset -P '*='; then - case "${${words[-1]%=*}#*=}" in - (driver) - __docker_complete_info_plugins Network && ret=0 - ;; - (id) - __docker_complete_networks_ids && ret=0 - ;; - (name) - __docker_complete_networks_names && ret=0 - ;; - (scope) - opts=('global' 'local' 'swarm') - _describe -t scope-filter-opts "Scope filter options" opts && ret=0 - ;; - (type) - opts=('builtin' 'custom') - _describe -t type-filter-opts "Type filter options" opts && ret=0 - ;; - *) - _message 'value' && ret=0 - ;; - esac - else - opts=('driver' 'id' 'label' 'name' 'scope' 'type') - _describe -t filter-opts "Filter Options" opts -qS "=" && ret=0 - fi - - return ret -} - -__docker_get_networks() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - local line s - declare -a lines networks - - type=$1; shift - - lines=(${(f)${:-"$(_call_program commands docker $docker_options network ls)"$'\n'}}) - - # Parse header line to find columns - local i=1 j=1 k header=${lines[1]} - declare -A begin end - while (( j < ${#header} - 1 )); do - i=$(( j + ${${header[$j,-1]}[(i)[^ ]]} - 1 )) - j=$(( i + ${${header[$i,-1]}[(i) ]} - 1 )) - k=$(( j + ${${header[$j,-1]}[(i)[^ ]]} - 2 )) - begin[${header[$i,$((j-1))]}]=$i - end[${header[$i,$((j-1))]}]=$k - done - end[${header[$i,$((j-1))]}]=-1 - lines=(${lines[2,-1]}) - - # Network ID - if [[ $type = (ids|all) ]]; then - for line in $lines; do - s="${line[${begin[NETWORK ID]},${end[NETWORK ID]}]%% ##}" - s="$s:${(l:7:: :::)${${line[${begin[DRIVER]},${end[DRIVER]}]}%% ##}}" - s="$s, ${${line[${begin[SCOPE]},${end[SCOPE]}]}%% ##}" - networks=($networks $s) - done - fi - - # Names - if [[ $type = (names|all) ]]; then - for line in $lines; do - s="${line[${begin[NAME]},${end[NAME]}]%% ##}" - s="$s:${(l:7:: :::)${${line[${begin[DRIVER]},${end[DRIVER]}]}%% ##}}" - s="$s, ${${line[${begin[SCOPE]},${end[SCOPE]}]}%% ##}" - networks=($networks $s) - done - fi - - _describe -t networks-list "networks" networks "$@" && ret=0 - return ret -} - -__docker_complete_networks() { - [[ $PREFIX = -* ]] && return 1 - __docker_get_networks all "$@" -} - -__docker_complete_networks_ids() { - [[ $PREFIX = -* ]] && return 1 - __docker_get_networks ids "$@" -} - -__docker_complete_networks_names() { - [[ $PREFIX = -* ]] && return 1 - __docker_get_networks names "$@" -} - -__docker_network_commands() { - local -a _docker_network_subcommands - _docker_network_subcommands=( - "connect:Connect a container to a network" - "create:Creates a new network with a name specified by the user" - "disconnect:Disconnects a container from a network" - "inspect:Displays detailed information on a network" - "ls:Lists all the networks created by the user" - "prune:Remove all unused networks" - "rm:Deletes one or more networks" - ) - _describe -t docker-network-commands "docker network command" _docker_network_subcommands -} - -__docker_network_subcommand() { - local -a _command_args opts_help - local expl help="--help" - integer ret=1 - - opts_help=("(: -)--help[Print usage]") - - case "$words[1]" in - (connect) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)*--alias=[Add network-scoped alias for the container]:alias: " \ - "($help)--ip=[IPv4 address]:IPv4: " \ - "($help)--ip6=[IPv6 address]:IPv6: " \ - "($help)*--link=[Add a link to another container]:link:->link" \ - "($help)*--link-local-ip=[Add a link-local address for the container]:IPv4/IPv6: " \ - "($help -)1:network:__docker_complete_networks" \ - "($help -)2:containers:__docker_complete_containers" && ret=0 - - case $state in - (link) - if compset -P "*:"; then - _wanted alias expl "Alias" compadd -E "" && ret=0 - else - __docker_complete_running_containers -qS ":" && ret=0 - fi - ;; - esac - ;; - (create) - _arguments $(__docker_arguments) -A '-*' \ - $opts_help \ - "($help)--attachable[Enable manual container attachment]" \ - "($help)*--aux-address[Auxiliary IPv4 or IPv6 addresses used by network driver]:key=IP: " \ - "($help -d --driver)"{-d=,--driver=}"[Driver to manage the Network]:driver:(null host bridge overlay)" \ - "($help)*--gateway=[IPv4 or IPv6 Gateway for the master subnet]:IP: " \ - "($help)--internal[Restricts external access to the network]" \ - "($help)*--ip-range=[Allocate container ip from a sub-range]:IP/mask: " \ - "($help)--ipam-driver=[IP Address Management Driver]:driver:(default)" \ - "($help)*--ipam-opt=[Custom IPAM plugin options]:opt=value: " \ - "($help)--ipv6[Enable IPv6 networking]" \ - "($help)*--label=[Set metadata on a network]:label=value: " \ - "($help)*"{-o=,--opt=}"[Driver specific options]:opt=value: " \ - "($help)*--subnet=[Subnet in CIDR format that represents a network segment]:IP/mask: " \ - "($help -)1:Network Name: " && ret=0 - ;; - (disconnect) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -)1:network:__docker_complete_networks" \ - "($help -)2:containers:__docker_complete_containers" && ret=0 - ;; - (inspect) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -f --format)"{-f=,--format=}"[Format the output using the given go template]:template: " \ - "($help)--verbose[Show detailed information]" \ - "($help -)*:network:__docker_complete_networks" && ret=0 - ;; - (ls) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)--no-trunc[Do not truncate the output]" \ - "($help)*"{-f=,--filter=}"[Provide filter values]:filter:__docker_network_complete_ls_filters" \ - "($help)--format=[Pretty-print networks using a Go template]:template: " \ - "($help -q --quiet)"{-q,--quiet}"[Only display network IDs]" && ret=0 - ;; - (prune) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)*--filter=[Filter values]:filter:__docker_complete_prune_filters" \ - "($help -f --force)"{-f,--force}"[Do not prompt for confirmation]" && ret=0 - ;; - (rm) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -)*:network:__docker_complete_networks" && ret=0 - ;; - (help) - _arguments $(__docker_arguments) ":subcommand:__docker_network_commands" && ret=0 - ;; - esac - - return ret -} - -# EO network - -# BO node - -__docker_node_complete_ls_filters() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - - if compset -P '*='; then - case "${${words[-1]%=*}#*=}" in - (id) - __docker_complete_nodes_ids && ret=0 - ;; - (membership) - membership_opts=('accepted' 'pending' 'rejected') - _describe -t membership-opts "membership options" membership_opts && ret=0 - ;; - (name) - __docker_complete_nodes_names && ret=0 - ;; - (role) - role_opts=('manager' 'worker') - _describe -t role-opts "role options" role_opts && ret=0 - ;; - *) - _message 'value' && ret=0 - ;; - esac - else - opts=('id' 'label' 'membership' 'name' 'node.label' 'role') - _describe -t filter-opts "filter options" opts -qS "=" && ret=0 - fi - - return ret -} - -__docker_node_complete_ps_filters() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - - if compset -P '*='; then - case "${${words[-1]%=*}#*=}" in - (desired-state) - state_opts=('accepted' 'running' 'shutdown') - _describe -t state-opts "desired state options" state_opts && ret=0 - ;; - *) - _message 'value' && ret=0 - ;; - esac - else - opts=('desired-state' 'id' 'label' 'name') - _describe -t filter-opts "filter options" opts -qS "=" && ret=0 - fi - - return ret -} - -__docker_nodes() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - local line s - declare -a lines nodes args - - type=$1; shift - filter=$1; shift - [[ $filter != "none" ]] && args=("-f $filter") - - lines=(${(f)${:-"$(_call_program commands docker $docker_options node ls $args)"$'\n'}}) - # Parse header line to find columns - local i=1 j=1 k header=${lines[1]} - declare -A begin end - while (( j < ${#header} - 1 )); do - i=$(( j + ${${header[$j,-1]}[(i)[^ ]]} - 1 )) - j=$(( i + ${${header[$i,-1]}[(i) ]} - 1 )) - k=$(( j + ${${header[$j,-1]}[(i)[^ ]]} - 2 )) - begin[${header[$i,$((j-1))]}]=$i - end[${header[$i,$((j-1))]}]=$k - done - end[${header[$i,$((j-1))]}]=-1 - lines=(${lines[2,-1]}) - - # Node ID - if [[ $type = (ids|all) ]]; then - for line in $lines; do - s="${line[${begin[ID]},${end[ID]}]%% ##}" - nodes=($nodes $s) - done - fi - - # Names - if [[ $type = (names|all) ]]; then - for line in $lines; do - s="${line[${begin[HOSTNAME]},${end[HOSTNAME]}]%% ##}" - nodes=($nodes $s) - done - fi - - _describe -t nodes-list "nodes" nodes "$@" && ret=0 - return ret -} - -__docker_complete_nodes() { - [[ $PREFIX = -* ]] && return 1 - __docker_nodes all none "$@" -} - -__docker_complete_nodes_ids() { - [[ $PREFIX = -* ]] && return 1 - __docker_nodes ids none "$@" -} - -__docker_complete_nodes_names() { - [[ $PREFIX = -* ]] && return 1 - __docker_nodes names none "$@" -} - -__docker_complete_pending_nodes() { - [[ $PREFIX = -* ]] && return 1 - __docker_nodes all "membership=pending" "$@" -} - -__docker_complete_manager_nodes() { - [[ $PREFIX = -* ]] && return 1 - __docker_nodes all "role=manager" "$@" -} - -__docker_complete_worker_nodes() { - [[ $PREFIX = -* ]] && return 1 - __docker_nodes all "role=worker" "$@" -} - -__docker_node_commands() { - local -a _docker_node_subcommands - _docker_node_subcommands=( - "demote:Demote a node as manager in the swarm" - "inspect:Display detailed information on one or more nodes" - "ls:List nodes in the swarm" - "promote:Promote a node as manager in the swarm" - "rm:Remove one or more nodes from the swarm" - "ps:List tasks running on one or more nodes, defaults to current node" - "update:Update a node" - ) - _describe -t docker-node-commands "docker node command" _docker_node_subcommands -} - -__docker_node_subcommand() { - local -a _command_args opts_help - local expl help="--help" - integer ret=1 - - opts_help=("(: -)--help[Print usage]") - - case "$words[1]" in - (rm|remove) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -f --force)"{-f,--force}"[Force remove a node from the swarm]" \ - "($help -)*:node:__docker_complete_pending_nodes" && ret=0 - ;; - (demote) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -)*:node:__docker_complete_manager_nodes" && ret=0 - ;; - (inspect) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -f --format)"{-f=,--format=}"[Format the output using the given go template]:template: " \ - "($help)--pretty[Print the information in a human friendly format]" \ - "($help -)*:node:__docker_complete_nodes" && ret=0 - ;; - (ls|list) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)*"{-f=,--filter=}"[Provide filter values]:filter:__docker_node_complete_ls_filters" \ - "($help -q --quiet)"{-q,--quiet}"[Only display IDs]" && ret=0 - ;; - (promote) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -)*:node:__docker_complete_worker_nodes" && ret=0 - ;; - (ps) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -a --all)"{-a,--all}"[Display all instances]" \ - "($help)*"{-f=,--filter=}"[Provide filter values]:filter:__docker_node_complete_ps_filters" \ - "($help)--format=[Format the output using the given go template]:template: " \ - "($help)--no-resolve[Do not map IDs to Names]" \ - "($help)--no-trunc[Do not truncate output]" \ - "($help -q --quiet)"{-q,--quiet}"[Only display IDs]" \ - "($help -)*:node:__docker_complete_nodes" && ret=0 - ;; - (update) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)--availability=[Availability of the node]:availability:(active pause drain)" \ - "($help)*--label-add=[Add or update a node label]:key=value: " \ - "($help)*--label-rm=[Remove a node label if exists]:label: " \ - "($help)--role=[Role of the node]:role:(manager worker)" \ - "($help -)1:node:__docker_complete_nodes" && ret=0 - ;; - (help) - _arguments $(__docker_arguments) ":subcommand:__docker_node_commands" && ret=0 - ;; - esac - - return ret -} - -# EO node - -# BO plugin - -__docker_plugin_complete_ls_filters() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - - if compset -P '*='; then - case "${${words[-1]%=*}#*=}" in - (capability) - opts=('authz' 'ipamdriver' 'logdriver' 'metricscollector' 'networkdriver' 'volumedriver') - _describe -t capability-opts "capability options" opts && ret=0 - ;; - (enabled) - opts=('false' 'true') - _describe -t enabled-opts "enabled options" opts && ret=0 - ;; - *) - _message 'value' && ret=0 - ;; - esac - else - opts=('capability' 'enabled') - _describe -t filter-opts "filter options" opts -qS "=" && ret=0 - fi - - return ret -} - -__docker_plugins() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - local line s - declare -a lines plugins args - - filter=$1; shift - [[ $filter != "none" ]] && args=("-f $filter") - - lines=(${(f)${:-"$(_call_program commands docker $docker_options plugin ls $args)"$'\n'}}) - - # Parse header line to find columns - local i=1 j=1 k header=${lines[1]} - declare -A begin end - while (( j < ${#header} - 1 )); do - i=$(( j + ${${header[$j,-1]}[(i)[^ ]]} - 1 )) - j=$(( i + ${${header[$i,-1]}[(i) ]} - 1 )) - k=$(( j + ${${header[$j,-1]}[(i)[^ ]]} - 2 )) - begin[${header[$i,$((j-1))]}]=$i - end[${header[$i,$((j-1))]}]=$k - done - end[${header[$i,$((j-1))]}]=-1 - lines=(${lines[2,-1]}) - - # Name - for line in $lines; do - s="${line[${begin[NAME]},${end[NAME]}]%% ##}" - s="$s:${(l:7:: :::)${${line[${begin[TAG]},${end[TAG]}]}%% ##}}" - plugins=($plugins $s) - done - - _describe -t plugins-list "plugins" plugins "$@" && ret=0 - return ret -} - -__docker_complete_plugins() { - [[ $PREFIX = -* ]] && return 1 - __docker_plugins none "$@" -} - -__docker_complete_enabled_plugins() { - [[ $PREFIX = -* ]] && return 1 - __docker_plugins enabled=true "$@" -} - -__docker_complete_disabled_plugins() { - [[ $PREFIX = -* ]] && return 1 - __docker_plugins enabled=false "$@" -} - -__docker_plugin_commands() { - local -a _docker_plugin_subcommands - _docker_plugin_subcommands=( - "disable:Disable a plugin" - "enable:Enable a plugin" - "inspect:Return low-level information about a plugin" - "install:Install a plugin" - "ls:List plugins" - "push:Push a plugin" - "rm:Remove a plugin" - "set:Change settings for a plugin" - "upgrade:Upgrade an existing plugin" - ) - _describe -t docker-plugin-commands "docker plugin command" _docker_plugin_subcommands -} - -__docker_plugin_subcommand() { - local -a _command_args opts_help - local expl help="--help" - integer ret=1 - - opts_help=("(: -)--help[Print usage]") - - case "$words[1]" in - (disable) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -f --force)"{-f,--force}"[Force the disable of an active plugin]" \ - "($help -)1:plugin:__docker_complete_enabled_plugins" && ret=0 - ;; - (enable) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)--timeout=[HTTP client timeout (in seconds)]:timeout: " \ - "($help -)1:plugin:__docker_complete_disabled_plugins" && ret=0 - ;; - (inspect) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -f --format)"{-f=,--format=}"[Format the output using the given Go template]:template: " \ - "($help -)*:plugin:__docker_complete_plugins" && ret=0 - ;; - (install) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)--alias=[Local name for plugin]:alias: " \ - "($help)--disable[Do not enable the plugin on install]" \ - "($help)--disable-content-trust[Skip image verification (default true)]" \ - "($help)--grant-all-permissions[Grant all permissions necessary to run the plugin]" \ - "($help -)1:plugin:__docker_complete_plugins" \ - "($help -)*:key=value: " && ret=0 - ;; - (ls|list) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)*"{-f=,--filter=}"[Filter output based on conditions provided]:filter:__docker_plugin_complete_ls_filters" \ - "($help --format)--format=[Format the output using the given Go template]:template: " \ - "($help)--no-trunc[Don't truncate output]" \ - "($help -q --quiet)"{-q,--quiet}"[Only display IDs]" && ret=0 - ;; - (push) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)--disable-content-trust[Skip image verification (default true)]" \ - "($help -)1:plugin:__docker_complete_plugins" && ret=0 - ;; - (rm|remove) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -f --force)"{-f,--force}"[Force the removal of an active plugin]" \ - "($help -)*:plugin:__docker_complete_plugins" && ret=0 - ;; - (set) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -)1:plugin:__docker_complete_plugins" \ - "($help -)*:key=value: " && ret=0 - ;; - (upgrade) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)--disable-content-trust[Skip image verification (default true)]" \ - "($help)--grant-all-permissions[Grant all permissions necessary to run the plugin]" \ - "($help)--skip-remote-check[Do not check if specified remote plugin matches existing plugin image]" \ - "($help -)1:plugin:__docker_complete_plugins" \ - "($help -):remote: " && ret=0 - ;; - (help) - _arguments $(__docker_arguments) ":subcommand:__docker_plugin_commands" && ret=0 - ;; - esac - - return ret -} - -# EO plugin - -# BO secret - -__docker_secrets() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - local line s - declare -a lines secrets - - type=$1; shift - - lines=(${(f)${:-"$(_call_program commands docker $docker_options secret ls)"$'\n'}}) - - # Parse header line to find columns - local i=1 j=1 k header=${lines[1]} - declare -A begin end - while (( j < ${#header} - 1 )); do - i=$(( j + ${${header[$j,-1]}[(i)[^ ]]} - 1 )) - j=$(( i + ${${header[$i,-1]}[(i) ]} - 1 )) - k=$(( j + ${${header[$j,-1]}[(i)[^ ]]} - 2 )) - begin[${header[$i,$((j-1))]}]=$i - end[${header[$i,$((j-1))]}]=$k - done - end[${header[$i,$((j-1))]}]=-1 - lines=(${lines[2,-1]}) - - # ID - if [[ $type = (ids|all) ]]; then - for line in $lines; do - s="${line[${begin[ID]},${end[ID]}]%% ##}" - secrets=($secrets $s) - done - fi - - # Names - if [[ $type = (names|all) ]]; then - for line in $lines; do - s="${line[${begin[NAME]},${end[NAME]}]%% ##}" - secrets=($secrets $s) - done - fi - - _describe -t secrets-list "secrets" secrets "$@" && ret=0 - return ret -} - -__docker_complete_secrets() { - [[ $PREFIX = -* ]] && return 1 - __docker_secrets all "$@" -} - -__docker_secret_commands() { - local -a _docker_secret_subcommands - _docker_secret_subcommands=( - "create:Create a secret using stdin as content" - "inspect:Display detailed information on one or more secrets" - "ls:List secrets" - "rm:Remove one or more secrets" - ) - _describe -t docker-secret-commands "docker secret command" _docker_secret_subcommands -} - -__docker_secret_subcommand() { - local -a _command_args opts_help - local expl help="--help" - integer ret=1 - - opts_help=("(: -)--help[Print usage]") - - case "$words[1]" in - (create) - _arguments $(__docker_arguments) -A '-*' \ - $opts_help \ - "($help)*"{-l=,--label=}"[Secret labels]:label: " \ - "($help -):secret: " && ret=0 - ;; - (inspect) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -f --format)"{-f=,--format=}"[Format the output using the given Go template]:template: " \ - "($help -)*:secret:__docker_complete_secrets" && ret=0 - ;; - (ls|list) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)--format=[Format the output using the given go template]:template: " \ - "($help -q --quiet)"{-q,--quiet}"[Only display IDs]" && ret=0 - ;; - (rm|remove) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -)*:secret:__docker_complete_secrets" && ret=0 - ;; - (help) - _arguments $(__docker_arguments) ":subcommand:__docker_secret_commands" && ret=0 - ;; - esac - - return ret -} - -# EO secret - -# BO service - -__docker_service_complete_ls_filters() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - - if compset -P '*='; then - case "${${words[-1]%=*}#*=}" in - (id) - __docker_complete_services_ids && ret=0 - ;; - (mode) - opts=('global' 'replicated') - _describe -t mode-opts "mode options" opts && ret=0 - ;; - (name) - __docker_complete_services_names && ret=0 - ;; - *) - _message 'value' && ret=0 - ;; - esac - else - opts=('id' 'label' 'mode' 'name') - _describe -t filter-opts "filter options" opts -qS "=" && ret=0 - fi - - return ret -} - -__docker_service_complete_ps_filters() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - - if compset -P '*='; then - case "${${words[-1]%=*}#*=}" in - (desired-state) - state_opts=('accepted' 'running' 'shutdown') - _describe -t state-opts "desired state options" state_opts && ret=0 - ;; - *) - _message 'value' && ret=0 - ;; - esac - else - opts=('desired-state' 'id' 'label' 'name') - _describe -t filter-opts "filter options" opts -qS "=" && ret=0 - fi - - return ret -} - -__docker_service_complete_placement_pref() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - - if compset -P '*='; then - case "${${words[-1]%=*}#*=}" in - (spread) - opts=('engine.labels' 'node.labels') - _describe -t spread-opts "spread options" opts -qS "." && ret=0 - ;; - *) - _message 'value' && ret=0 - ;; - esac - else - opts=('spread') - _describe -t pref-opts "placement pref options" opts -qS "=" && ret=0 - fi - - return ret -} - -__docker_services() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - local line s - declare -a lines services - - type=$1; shift - - lines=(${(f)${:-"$(_call_program commands docker $docker_options service ls)"$'\n'}}) - - # Parse header line to find columns - local i=1 j=1 k header=${lines[1]} - declare -A begin end - while (( j < ${#header} - 1 )); do - i=$(( j + ${${header[$j,-1]}[(i)[^ ]]} - 1 )) - j=$(( i + ${${header[$i,-1]}[(i) ]} - 1 )) - k=$(( j + ${${header[$j,-1]}[(i)[^ ]]} - 2 )) - begin[${header[$i,$((j-1))]}]=$i - end[${header[$i,$((j-1))]}]=$k - done - end[${header[$i,$((j-1))]}]=-1 - lines=(${lines[2,-1]}) - - # Service ID - if [[ $type = (ids|all) ]]; then - for line in $lines; do - s="${line[${begin[ID]},${end[ID]}]%% ##}" - s="$s:${(l:7:: :::)${${line[${begin[IMAGE]},${end[IMAGE]}]}%% ##}}" - services=($services $s) - done - fi - - # Names - if [[ $type = (names|all) ]]; then - for line in $lines; do - s="${line[${begin[NAME]},${end[NAME]}]%% ##}" - s="$s:${(l:7:: :::)${${line[${begin[IMAGE]},${end[IMAGE]}]}%% ##}}" - services=($services $s) - done - fi - - _describe -t services-list "services" services "$@" && ret=0 - return ret -} - -__docker_complete_services() { - [[ $PREFIX = -* ]] && return 1 - __docker_services all "$@" -} - -__docker_complete_services_ids() { - [[ $PREFIX = -* ]] && return 1 - __docker_services ids "$@" -} - -__docker_complete_services_names() { - [[ $PREFIX = -* ]] && return 1 - __docker_services names "$@" -} - -__docker_service_commands() { - local -a _docker_service_subcommands - _docker_service_subcommands=( - "create:Create a new service" - "inspect:Display detailed information on one or more services" - "logs:Fetch the logs of a service or task" - "ls:List services" - "rm:Remove one or more services" - "rollback:Revert changes to a service's configuration" - "scale:Scale one or multiple replicated services" - "ps:List the tasks of a service" - "update:Update a service" - ) - _describe -t docker-service-commands "docker service command" _docker_service_subcommands -} - -__docker_service_subcommand() { - local -a _command_args opts_help opts_create_update - local expl help="--help" - integer ret=1 - - opts_help=("(: -)--help[Print usage]") - opts_create_update=( - "($help)*--cap-add=[Add Linux capabilities]:capability: " - "($help)*--cap-drop=[Drop Linux capabilities]:capability: " - "($help)*--constraint=[Placement constraints]:constraint: " - "($help)--endpoint-mode=[Placement constraints]:mode:(dnsrr vip)" - "($help)*"{-e=,--env=}"[Set environment variables]:env: " - "($help)--health-cmd=[Command to run to check health]:command: " - "($help)--health-interval=[Time between running the check]:time: " - "($help)--health-retries=[Consecutive failures needed to report unhealthy]:retries:(1 2 3 4 5)" - "($help)--health-timeout=[Maximum time to allow one check to run]:time: " - "($help)--hostname=[Service container hostname]:hostname: " \ - "($help)--isolation=[Service container isolation mode]:isolation:(default process hyperv)" \ - "($help)*--label=[Service labels]:label: " - "($help)--limit-cpu=[Limit CPUs]:value: " - "($help)--limit-memory=[Limit Memory]:value: " - "($help)--limit-pids[Limit maximum number of processes (default 0 = unlimited)]" - "($help)--log-driver=[Logging driver for service]:logging driver:__docker_complete_log_drivers" - "($help)*--log-opt=[Logging driver options]:log driver options:__docker_complete_log_options" - "($help)*--mount=[Attach a filesystem mount to the service]:mount: " - "($help)*--network=[Network attachments]:network: " - "($help)--no-healthcheck[Disable any container-specified HEALTHCHECK]" - "($help)--read-only[Mount the container's root filesystem as read only]" - "($help)--replicas=[Number of tasks]:replicas: " - "($help)--reserve-cpu=[Reserve CPUs]:value: " - "($help)--reserve-memory=[Reserve Memory]:value: " - "($help)--restart-condition=[Restart when condition is met]:mode:(any none on-failure)" - "($help)--restart-delay=[Delay between restart attempts]:delay: " - "($help)--restart-max-attempts=[Maximum number of restarts before giving up]:max-attempts: " - "($help)--restart-window=[Window used to evaluate the restart policy]:duration: " - "($help)--rollback-delay=[Delay between task rollbacks]:duration: " - "($help)--rollback-failure-action=[Action on rollback failure]:action:(continue pause)" - "($help)--rollback-max-failure-ratio=[Failure rate to tolerate during a rollback]:failure rate: " - "($help)--rollback-monitor=[Duration after each task rollback to monitor for failure]:duration: " - "($help)--rollback-parallelism=[Maximum number of tasks rolled back simultaneously]:number: " - "($help)*--secret=[Specify secrets to expose to the service]:secret:__docker_complete_secrets" - "($help)--stop-grace-period=[Time to wait before force killing a container]:grace period: " - "($help)--stop-signal=[Signal to stop the container]:signal:_signals" - "($help -t --tty)"{-t,--tty}"[Allocate a pseudo-TTY]" - "($help)--update-delay=[Delay between updates]:delay: " - "($help)--update-failure-action=[Action on update failure]:mode:(continue pause rollback)" - "($help)--update-max-failure-ratio=[Failure rate to tolerate during an update]:fraction: " - "($help)--update-monitor=[Duration after each task update to monitor for failure]:window: " - "($help)--update-parallelism=[Maximum number of tasks updated simultaneously]:number: " - "($help -u --user)"{-u=,--user=}"[Username or UID]:user:_users" - "($help)--with-registry-auth[Send registry authentication details to swarm agents]" - "($help -w --workdir)"{-w=,--workdir=}"[Working directory inside the container]:directory:_directories" - ) - - case "$words[1]" in - (create) - _arguments $(__docker_arguments) \ - $opts_help \ - $opts_create_update \ - "($help)*--container-label=[Container labels]:label: " \ - "($help)*--dns=[Set custom DNS servers]:DNS: " \ - "($help)*--dns-option=[Set DNS options]:DNS option: " \ - "($help)*--dns-search=[Set custom DNS search domains]:DNS search: " \ - "($help)*--env-file=[Read environment variables from a file]:environment file:_files" \ - "($help)*--group=[Set one or more supplementary user groups for the container]:group: _groups " \ - "($help)--mode=[Service Mode]:mode:(global replicated)" \ - "($help)--name=[Service name]:name: " \ - "($help)*--placement-pref=[Add a placement preference]:pref:__docker_service_complete_placement_pref" \ - "($help)*"{-p=,--publish=}"[Publish a port as a node port]:port: " \ - "($help -): :__docker_complete_images" \ - "($help -):command: _command_names -e" \ - "($help -)*::arguments: _normal" && ret=0 - ;; - (inspect) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -f --format)"{-f=,--format=}"[Format the output using the given go template]:template: " \ - "($help)--pretty[Print the information in a human friendly format]" \ - "($help -)*:service:__docker_complete_services" && ret=0 - ;; - (logs) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -f --follow)"{-f,--follow}"[Follow log output]" \ - "($help)--no-resolve[Do not map IDs to Names]" \ - "($help)--no-task-ids[Do not include task IDs]" \ - "($help)--no-trunc[Do not truncate output]" \ - "($help)--since=[Show logs since timestamp]:timestamp: " \ - "($help -n --tail)"{-n=,--tail=}"[Number of lines to show from the end of the logs]:lines:(1 10 20 50 all)" \ - "($help -t --timestamps)"{-t,--timestamps}"[Show timestamps]" \ - "($help -)1:service:__docker_complete_services" && ret=0 - ;; - (ls|list) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)*"{-f=,--filter=}"[Filter output based on conditions provided]:filter:__docker_service_complete_ls_filters" \ - "($help)--format=[Pretty-print services using a Go template]:template: " \ - "($help -q --quiet)"{-q,--quiet}"[Only display IDs]" && ret=0 - ;; - (rm|remove) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -)*:service:__docker_complete_services" && ret=0 - ;; - (rollback) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -d --detach)"{-d=false,--detach=false}"[Disable detached mode]" \ - "($help -q --quiet)"{-q,--quiet}"[Suppress progress output]" \ - "($help -)*:service:__docker_complete_services" && ret=0 - ;; - (scale) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -d --detach)"{-d=false,--detach=false}"[Disable detached mode]" \ - "($help -)*:service:->values" && ret=0 - case $state in - (values) - if compset -P '*='; then - _message 'replicas' && ret=0 - else - __docker_complete_services -qS "=" - fi - ;; - esac - ;; - (ps) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)*"{-f=,--filter=}"[Provide filter values]:filter:__docker_service_complete_ps_filters" \ - "($help)--format=[Format the output using the given go template]:template: " \ - "($help)--no-resolve[Do not map IDs to Names]" \ - "($help)--no-trunc[Do not truncate output]" \ - "($help -q --quiet)"{-q,--quiet}"[Only display task IDs]" \ - "($help -)*:service:__docker_complete_services" && ret=0 - ;; - (update) - _arguments $(__docker_arguments) \ - $opts_help \ - $opts_create_update \ - "($help)--arg=[Service command args]:arguments: _normal" \ - "($help)*--container-label-add=[Add or update container labels]:label: " \ - "($help)*--container-label-rm=[Remove a container label by its key]:label: " \ - "($help)*--dns-add=[Add or update custom DNS servers]:DNS: " \ - "($help)*--dns-rm=[Remove custom DNS servers]:DNS: " \ - "($help)*--dns-option-add=[Add or update DNS options]:DNS option: " \ - "($help)*--dns-option-rm=[Remove DNS options]:DNS option: " \ - "($help)*--dns-search-add=[Add or update custom DNS search domains]:DNS search: " \ - "($help)*--dns-search-rm=[Remove DNS search domains]:DNS search: " \ - "($help)--force[Force update]" \ - "($help)*--group-add=[Add additional supplementary user groups to the container]:group:_groups" \ - "($help)*--group-rm=[Remove previously added supplementary user groups from the container]:group:_groups" \ - "($help)--image=[Service image tag]:image:__docker_complete_repositories" \ - "($help)*--placement-pref-add=[Add a placement preference]:pref:__docker_service_complete_placement_pref" \ - "($help)*--placement-pref-rm=[Remove a placement preference]:pref:__docker_service_complete_placement_pref" \ - "($help)*--publish-add=[Add or update a port]:port: " \ - "($help)*--publish-rm=[Remove a port(target-port mandatory)]:port: " \ - "($help)--rollback[Rollback to previous specification]" \ - "($help -)1:service:__docker_complete_services" && ret=0 - ;; - (help) - _arguments $(__docker_arguments) ":subcommand:__docker_service_commands" && ret=0 - ;; - esac - - return ret -} - -# EO service - -# BO stack - -__docker_stack_complete_ps_filters() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - - if compset -P '*='; then - case "${${words[-1]%=*}#*=}" in - (desired-state) - state_opts=('accepted' 'running' 'shutdown') - _describe -t state-opts "desired state options" state_opts && ret=0 - ;; - *) - _message 'value' && ret=0 - ;; - esac - else - opts=('desired-state' 'id' 'name') - _describe -t filter-opts "filter options" opts -qS "=" && ret=0 - fi - - return ret -} - -__docker_stack_complete_services_filters() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - - if compset -P '*='; then - case "${${words[-1]%=*}#*=}" in - *) - _message 'value' && ret=0 - ;; - esac - else - opts=('id' 'label' 'name') - _describe -t filter-opts "filter options" opts -qS "=" && ret=0 - fi - - return ret -} - -__docker_stacks() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - local line s - declare -a lines stacks - - lines=(${(f)${:-"$(_call_program commands docker $docker_options stack ls)"$'\n'}}) - - # Parse header line to find columns - local i=1 j=1 k header=${lines[1]} - declare -A begin end - while (( j < ${#header} - 1 )); do - i=$(( j + ${${header[$j,-1]}[(i)[^ ]]} - 1 )) - j=$(( i + ${${header[$i,-1]}[(i) ]} - 1 )) - k=$(( j + ${${header[$j,-1]}[(i)[^ ]]} - 2 )) - begin[${header[$i,$((j-1))]}]=$i - end[${header[$i,$((j-1))]}]=$k - done - end[${header[$i,$((j-1))]}]=-1 - lines=(${lines[2,-1]}) - - # Service NAME - for line in $lines; do - s="${line[${begin[NAME]},${end[NAME]}]%% ##}" - stacks=($stacks $s) - done - - _describe -t stacks-list "stacks" stacks "$@" && ret=0 - return ret -} - -__docker_complete_stacks() { - [[ $PREFIX = -* ]] && return 1 - __docker_stacks "$@" -} - -__docker_stack_commands() { - local -a _docker_stack_subcommands - _docker_stack_subcommands=( - "deploy:Deploy a new stack or update an existing stack" - "ls:List stacks" - "ps:List the tasks in the stack" - "rm:Remove the stack" - "services:List the services in the stack" - ) - _describe -t docker-stack-commands "docker stack command" _docker_stack_subcommands -} - -__docker_stack_subcommand() { - local -a _command_args opts_help - local expl help="--help" - integer ret=1 - - opts_help=("(: -)--help[Print usage]") - - case "$words[1]" in - (deploy|up) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -c --compose-file)"{-c=,--compose-file=}"[Path to a Compose file, or '-' to read from stdin]:compose file:_files -g \"*.(yml|yaml)\"" \ - "($help)--with-registry-auth[Send registry authentication details to Swarm agents]" \ - "($help -):stack:__docker_complete_stacks" && ret=0 - ;; - (ls|list) - _arguments $(__docker_arguments) \ - $opts_help && ret=0 - ;; - (ps) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -a --all)"{-a,--all}"[Display all tasks]" \ - "($help)*"{-f=,--filter=}"[Filter output based on conditions provided]:filter:__docker_stack_complete_ps_filters" \ - "($help)--format=[Format the output using the given go template]:template: " \ - "($help)--no-resolve[Do not map IDs to Names]" \ - "($help)--no-trunc[Do not truncate output]" \ - "($help -q --quiet)"{-q,--quiet}"[Only display task IDs]" \ - "($help -):stack:__docker_complete_stacks" && ret=0 - ;; - (rm|remove|down) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -):stack:__docker_complete_stacks" && ret=0 - ;; - (services) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)*"{-f=,--filter=}"[Filter output based on conditions provided]:filter:__docker_stack_complete_services_filters" \ - "($help)--format=[Pretty-print services using a Go template]:template: " \ - "($help -q --quiet)"{-q,--quiet}"[Only display IDs]" \ - "($help -):stack:__docker_complete_stacks" && ret=0 - ;; - (help) - _arguments $(__docker_arguments) ":subcommand:__docker_stack_commands" && ret=0 - ;; - esac - - return ret -} - -# EO stack - -# BO swarm - -__docker_swarm_commands() { - local -a _docker_swarm_subcommands - _docker_swarm_subcommands=( - "init:Initialize a swarm" - "join:Join a swarm as a node and/or manager" - "join-token:Manage join tokens" - "leave:Leave a swarm" - "unlock:Unlock swarm" - "unlock-key:Manage the unlock key" - "update:Update the swarm" - ) - _describe -t docker-swarm-commands "docker swarm command" _docker_swarm_subcommands -} - -__docker_swarm_subcommand() { - local -a _command_args opts_help - local expl help="--help" - integer ret=1 - - opts_help=("(: -)--help[Print usage]") - - case "$words[1]" in - (init) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)--advertise-addr=[Advertised address]:ip\:port: " \ - "($help)--data-path-addr=[Data path IP or interface]:ip " \ - "($help)--data-path-port=[Data Path Port]:port " \ - "($help)--default-addr-pool=[Default address pool]" \ - "($help)--default-addr-pool-mask-length=[Default address pool subnet mask length]" \ - "($help)--autolock[Enable manager autolocking]" \ - "($help)--availability=[Availability of the node]:availability:(active drain pause)" \ - "($help)--cert-expiry=[Validity period for node certificates]:duration: " \ - "($help)--dispatcher-heartbeat=[Dispatcher heartbeat period]:duration: " \ - "($help)*--external-ca=[Specifications of one or more certificate signing endpoints]:endpoint: " \ - "($help)--force-new-cluster[Force create a new cluster from current state]" \ - "($help)--listen-addr=[Listen address]:ip\:port: " \ - "($help)--max-snapshots[Number of additional Raft snapshots to retain]" \ - "($help)--snapshot-interval[Number of log entries between Raft snapshots]" \ - "($help)--task-history-limit=[Task history retention limit]:limit: " && ret=0 - ;; - (join) - _arguments $(__docker_arguments) -A '-*' \ - $opts_help \ - "($help)--advertise-addr=[Advertised address]:ip\:port: " \ - "($help)--data-path-addr=[Data path IP or interface]:ip " \ - "($help)--availability=[Availability of the node]:availability:(active drain pause)" \ - "($help)--listen-addr=[Listen address]:ip\:port: " \ - "($help)--token=[Token for entry into the swarm]:secret: " \ - "($help -):host\:port: " && ret=0 - ;; - (join-token) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -q --quiet)"{-q,--quiet}"[Only display token]" \ - "($help)--rotate[Rotate join token]" \ - "($help -):role:(manager worker)" && ret=0 - ;; - (leave) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -f --force)"{-f,--force}"[Force this node to leave the swarm, ignoring warnings]" && ret=0 - ;; - (unlock) - _arguments $(__docker_arguments) \ - $opts_help && ret=0 - ;; - (unlock-key) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -q --quiet)"{-q,--quiet}"[Only display token]" \ - "($help)--rotate[Rotate unlock token]" && ret=0 - ;; - (update) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)--autolock[Enable manager autolocking]" \ - "($help)--cert-expiry=[Validity period for node certificates]:duration: " \ - "($help)--dispatcher-heartbeat=[Dispatcher heartbeat period]:duration: " \ - "($help)*--external-ca=[Specifications of one or more certificate signing endpoints]:endpoint: " \ - "($help)--max-snapshots[Number of additional Raft snapshots to retain]" \ - "($help)--snapshot-interval[Number of log entries between Raft snapshots]" \ - "($help)--task-history-limit=[Task history retention limit]:limit: " && ret=0 - ;; - (help) - _arguments $(__docker_arguments) ":subcommand:__docker_network_commands" && ret=0 - ;; - esac - - return ret -} - -# EO swarm - -# BO system - -__docker_system_commands() { - local -a _docker_system_subcommands - _docker_system_subcommands=( - "df:Show docker filesystem usage" - "events:Get real time events from the server" - "info:Display system-wide information" - "prune:Remove unused data" - ) - _describe -t docker-system-commands "docker system command" _docker_system_subcommands -} - -__docker_system_subcommand() { - local -a _command_args opts_help - local expl help="--help" - integer ret=1 - - opts_help=("(: -)--help[Print usage]") - - case "$words[1]" in - (df) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -v --verbose)"{-v,--verbose}"[Show detailed information on space usage]" && ret=0 - ;; - (events) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)*"{-f=,--filter=}"[Filter values]:filter:__docker_complete_events_filter" \ - "($help)--since=[Events created since this timestamp]:timestamp: " \ - "($help)--until=[Events created until this timestamp]:timestamp: " \ - "($help)--format=[Format the output using the given go template]:template: " && ret=0 - ;; - (info) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -f --format)"{-f=,--format=}"[Format the output using the given go template]:template: " && ret=0 - ;; - (prune) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -a --all)"{-a,--all}"[Remove all unused data, not just dangling ones]" \ - "($help)*--filter=[Filter values]:filter:__docker_complete_prune_filters" \ - "($help -f --force)"{-f,--force}"[Do not prompt for confirmation]" \ - "($help)--volumes=[Remove all unused volumes]" && ret=0 - ;; - (help) - _arguments $(__docker_arguments) ":subcommand:__docker_volume_commands" && ret=0 - ;; - esac - - return ret -} - -# EO system - -# BO volume - -__docker_volume_complete_ls_filters() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - - if compset -P '*='; then - case "${${words[-1]%=*}#*=}" in - (dangling) - dangling_opts=('true' 'false') - _describe -t dangling-filter-opts "Dangling Filter Options" dangling_opts && ret=0 - ;; - (driver) - __docker_complete_info_plugins Volume && ret=0 - ;; - (name) - __docker_complete_volumes && ret=0 - ;; - *) - _message 'value' && ret=0 - ;; - esac - else - opts=('dangling' 'driver' 'label' 'name') - _describe -t filter-opts "Filter Options" opts -qS "=" && ret=0 - fi - - return ret -} - -__docker_complete_volumes() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - declare -a lines volumes - - lines=(${(f)${:-"$(_call_program commands docker $docker_options volume ls)"$'\n'}}) - - # Parse header line to find columns - local i=1 j=1 k header=${lines[1]} - declare -A begin end - while (( j < ${#header} - 1 )); do - i=$(( j + ${${header[$j,-1]}[(i)[^ ]]} - 1 )) - j=$(( i + ${${header[$i,-1]}[(i) ]} - 1 )) - k=$(( j + ${${header[$j,-1]}[(i)[^ ]]} - 2 )) - begin[${header[$i,$((j-1))]}]=$i - end[${header[$i,$((j-1))]}]=$k - done - end[${header[$i,$((j-1))]}]=-1 - lines=(${lines[2,-1]}) - - # Names - local line s - for line in $lines; do - s="${line[${begin[VOLUME NAME]},${end[VOLUME NAME]}]%% ##}" - s="$s:${(l:7:: :::)${${line[${begin[DRIVER]},${end[DRIVER]}]}%% ##}}" - volumes=($volumes $s) - done - - _describe -t volumes-list "volumes" volumes && ret=0 - return ret -} - -__docker_volume_commands() { - local -a _docker_volume_subcommands - _docker_volume_subcommands=( - "create:Create a volume" - "inspect:Display detailed information on one or more volumes" - "ls:List volumes" - "prune:Remove all unused volumes" - "rm:Remove one or more volumes" - ) - _describe -t docker-volume-commands "docker volume command" _docker_volume_subcommands -} - -__docker_volume_subcommand() { - local -a _command_args opts_help - local expl help="--help" - integer ret=1 - - opts_help=("(: -)--help[Print usage]") - - case "$words[1]" in - (create) - _arguments $(__docker_arguments) -A '-*' \ - $opts_help \ - "($help -d --driver)"{-d=,--driver=}"[Volume driver name]:Driver name:(local)" \ - "($help)*--label=[Set metadata for a volume]:label=value: " \ - "($help)*"{-o=,--opt=}"[Driver specific options]:Driver option: " \ - "($help -)1:Volume name: " && ret=0 - ;; - (inspect) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -f --format)"{-f=,--format=}"[Format the output using the given go template]:template: " \ - "($help -)1:volume:__docker_complete_volumes" && ret=0 - ;; - (ls) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)*"{-f=,--filter=}"[Provide filter values]:filter:__docker_volume_complete_ls_filters" \ - "($help)--format=[Pretty-print volumes using a Go template]:template: " \ - "($help -q --quiet)"{-q,--quiet}"[Only display volume names]" && ret=0 - ;; - (prune) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -f --force)"{-f,--force}"[Do not prompt for confirmation]" && ret=0 - ;; - (rm) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -f --force)"{-f,--force}"[Force the removal of one or more volumes]" \ - "($help -):volume:__docker_complete_volumes" && ret=0 - ;; - (help) - _arguments $(__docker_arguments) ":subcommand:__docker_volume_commands" && ret=0 - ;; - esac - - return ret -} - -# EO volume - -# BO context - -__docker_complete_contexts() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - declare -a contexts - - contexts=(${(f)${:-"$(_call_program commands docker $docker_options context ls -q)"$'\n'}}) - - _describe -t context-list "context" contexts && ret=0 - return ret -} - -__docker_context_commands() { - local -a _docker_context_subcommands - _docker_context_subcommands=( - "create:Create new context" - "inspect:Display detailed information on one or more contexts" - "list:List available contexts" - "rm:Remove one or more contexts" - "show:Print the current context" - "update:Update a context" - "use:Set the default context" - ) - _describe -t docker-context-commands "docker context command" _docker_context_subcommands -} - -__docker_context_subcommand() { - local -a _command_args opts_help - local expl help="--help" - integer ret=1 - - opts_help=("(: -)--help[Print usage]") - - case "$words[1]" in - (create) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)--default-stack-orchestrator=[Default orchestrator for stack operations to use with this context]:default-stack-orchestrator:(swarm kubernetes all)" \ - "($help)--description=[Description of the context]:description:" \ - "($help)--docker=[Set the docker endpoint]:docker:" \ - "($help)--kubernetes=[Set the kubernetes endpoint]:kubernetes:" \ - "($help)--from=[Create context from a named context]:from:__docker_complete_contexts" \ - "($help -):name: " && ret=0 - ;; - (use) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -)1:context:__docker_complete_contexts" && ret=0 - ;; - (inspect) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -)1:context:__docker_complete_contexts" && ret=0 - ;; - (rm) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -)1:context:__docker_complete_contexts" && ret=0 - ;; - (update) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)--default-stack-orchestrator=[Default orchestrator for stack operations to use with this context]:default-stack-orchestrator:(swarm kubernetes all)" \ - "($help)--description=[Description of the context]:description:" \ - "($help)--docker=[Set the docker endpoint]:docker:" \ - "($help)--kubernetes=[Set the kubernetes endpoint]:kubernetes:" \ - "($help -):name:" && ret=0 - ;; - esac - - return ret -} - -# EO context - -__docker_caching_policy() { - oldp=( "$1"(Nmh+1) ) # 1 hour - (( $#oldp )) -} - -__docker_commands() { - local cache_policy - integer force_invalidation=0 - - zstyle -s ":completion:${curcontext}:" cache-policy cache_policy - if [[ -z "$cache_policy" ]]; then - zstyle ":completion:${curcontext}:" cache-policy __docker_caching_policy - fi - - if ( (( ! ${+_docker_hide_legacy_commands} )) || _cache_invalid docker_hide_legacy_commands ) \ - && ! _retrieve_cache docker_hide_legacy_commands; - then - _docker_hide_legacy_commands="${DOCKER_HIDE_LEGACY_COMMANDS}" - _store_cache docker_hide_legacy_commands _docker_hide_legacy_commands - fi - - if [[ "${_docker_hide_legacy_commands}" != "${DOCKER_HIDE_LEGACY_COMMANDS}" ]]; then - force_invalidation=1 - _docker_hide_legacy_commands="${DOCKER_HIDE_LEGACY_COMMANDS}" - _store_cache docker_hide_legacy_commands _docker_hide_legacy_commands - fi - - if ( [[ ${+_docker_subcommands} -eq 0 ]] || _cache_invalid docker_subcommands ) \ - && ! _retrieve_cache docker_subcommands || [[ ${force_invalidation} -eq 1 ]]; - then - local -a lines - lines=(${(f)"$(_call_program commands docker 2>&1)"}) - _docker_subcommands=(${${${(M)${lines[$((${lines[(i)*Commands:]} + 1)),-1]}:# *}## #}/\*# ##/:}) - _docker_subcommands=($_docker_subcommands 'daemon:Enable daemon mode' 'help:Show help for a command') - (( $#_docker_subcommands > 2 )) && _store_cache docker_subcommands _docker_subcommands - fi - _describe -t docker-commands "docker command" _docker_subcommands -} - -__docker_subcommand() { - local -a _command_args opts_help - local expl help="--help" - integer ret=1 - - opts_help=("(: -)--help[Print usage]") - - case "$words[1]" in - (attach|commit|cp|create|diff|exec|export|kill|logs|pause|unpause|port|rename|restart|rm|run|start|stats|stop|top|update|wait) - __docker_container_subcommand && ret=0 - ;; - (build|history|import|load|pull|push|save|tag) - __docker_image_subcommand && ret=0 - ;; - (checkpoint) - local curcontext="$curcontext" state - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -): :->command" \ - "($help -)*:: :->option-or-argument" && ret=0 - - case $state in - (command) - __docker_checkpoint_commands && ret=0 - ;; - (option-or-argument) - curcontext=${curcontext%:*:*}:docker-${words[-1]}: - __docker_checkpoint_subcommand && ret=0 - ;; - esac - ;; - (container) - local curcontext="$curcontext" state - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -): :->command" \ - "($help -)*:: :->option-or-argument" && ret=0 - - case $state in - (command) - __docker_container_commands && ret=0 - ;; - (option-or-argument) - curcontext=${curcontext%:*:*}:docker-${words[-1]}: - __docker_container_subcommand && ret=0 - ;; - esac - ;; - (context) - local curcontext="$curcontext" state - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -): :->command" \ - "($help -)*:: :->option-or-argument" && ret=0 - - case $state in - (command) - __docker_context_commands && ret=0 - ;; - (option-or-argument) - curcontext=${curcontext%:*:*}:docker-${words[-1]}: - __docker_context_subcommand && ret=0 - ;; - esac - ;; - (daemon) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)*--add-runtime=[Register an additional OCI compatible runtime]:runtime:__docker_complete_runtimes" \ - "($help)*--allow-nondistributable-artifacts=[Push nondistributable artifacts to specified registries]:registry: " \ - "($help)--api-cors-header=[CORS headers in the Engine API]:CORS headers: " \ - "($help)*--authorization-plugin=[Authorization plugins to load]" \ - "($help -b --bridge)"{-b=,--bridge=}"[Attach containers to a network bridge]:bridge:_net_interfaces" \ - "($help)--bip=[Network bridge IP]:IP address: " \ - "($help)--cgroup-parent=[Parent cgroup for all containers]:cgroup: " \ - "($help)--cluster-advertise=[Address or interface name to advertise]:Instance to advertise (host\:port): " \ - "($help)--cluster-store=[URL of the distributed storage backend]:Cluster Store:->cluster-store" \ - "($help)*--cluster-store-opt=[Cluster store options]:Cluster options:->cluster-store-options" \ - "($help)--config-file=[Path to daemon configuration file]:Config File:_files" \ - "($help)--containerd=[Path to containerd socket]:socket:_files -g \"*.sock\"" \ - "($help)--containerd-namespace=[Containerd namespace to use]:containerd namespace:" \ - "($help)--containerd-plugins-namespace=[Containerd namespace to use for plugins]:containerd namespace:" \ - "($help)--data-root=[Root directory of persisted Docker data]:path:_directories" \ - "($help -D --debug)"{-D,--debug}"[Enable debug mode]" \ - "($help)--default-gateway[Container default gateway IPv4 address]:IPv4 address: " \ - "($help)--default-gateway-v6[Container default gateway IPv6 address]:IPv6 address: " \ - "($help)--default-shm-size=[Default shm size for containers]:size:" \ - "($help)*--default-ulimit=[Default ulimits for containers]:ulimit: " \ - "($help)*--dns=[DNS server to use]:DNS: " \ - "($help)*--dns-opt=[DNS options to use]:DNS option: " \ - "($help)*--dns-search=[DNS search domains to use]:DNS search: " \ - "($help)*--exec-opt=[Runtime execution options]:runtime execution options: " \ - "($help)--exec-root=[Root directory for execution state files]:path:_directories" \ - "($help)--experimental[Enable experimental features]" \ - "($help)--fixed-cidr=[IPv4 subnet for fixed IPs]:IPv4 subnet: " \ - "($help)--fixed-cidr-v6=[IPv6 subnet for fixed IPs]:IPv6 subnet: " \ - "($help -G --group)"{-G=,--group=}"[Group for the unix socket]:group:_groups" \ - "($help -H --host)"{-H=,--host=}"[tcp://host:port to bind/connect to]:host: " \ - "($help)--icc[Enable inter-container communication]" \ - "($help)--init[Run an init inside containers to forward signals and reap processes]" \ - "($help)--init-path=[Path to the docker-init binary]:docker-init binary:_files" \ - "($help)*--insecure-registry=[Enable insecure registry communication]:registry: " \ - "($help)--ip=[Default IP when binding container ports]" \ - "($help)--ip-forward[Enable net.ipv4.ip_forward]" \ - "($help)--ip-masq[Enable IP masquerading]" \ - "($help)--iptables[Enable addition of iptables rules]" \ - "($help)--ipv6[Enable IPv6 networking]" \ - "($help -l --log-level)"{-l=,--log-level=}"[Logging level]:level:(debug info warn error fatal)" \ - "($help)*--label=[Key=value labels]:label: " \ - "($help)--live-restore[Enable live restore of docker when containers are still running]" \ - "($help)--log-driver=[Default driver for container logs]:logging driver:__docker_complete_log_drivers" \ - "($help)*--log-opt=[Default log driver options for containers]:log driver options:__docker_complete_log_options" \ - "($help)--max-concurrent-downloads[Set the max concurrent downloads for each pull]" \ - "($help)--max-concurrent-uploads[Set the max concurrent uploads for each push]" \ - "($help)--max-download-attempts[Set the max download attempts for each pull]" \ - "($help)--mtu=[Network MTU]:mtu:(0 576 1420 1500 9000)" \ - "($help)--oom-score-adjust=[Set the oom_score_adj for the daemon]:oom-score:(-500)" \ - "($help -p --pidfile)"{-p=,--pidfile=}"[Path to use for daemon PID file]:PID file:_files" \ - "($help)--raw-logs[Full timestamps without ANSI coloring]" \ - "($help)*--registry-mirror=[Preferred Docker registry mirror]:registry mirror: " \ - "($help)--seccomp-profile=[Path to seccomp profile]:path:_files -g \"*.json\"" \ - "($help -s --storage-driver)"{-s=,--storage-driver=}"[Storage driver to use]:driver:(aufs btrfs devicemapper overlay overlay2 vfs zfs)" \ - "($help)--selinux-enabled[Enable selinux support]" \ - "($help)--shutdown-timeout=[Set the shutdown timeout value in seconds]:time: " \ - "($help)*--storage-opt=[Storage driver options]:storage driver options: " \ - "($help)--tls[Use TLS]" \ - "($help)--tlscacert=[Trust certs signed only by this CA]:PEM file:_files -g \"*.(pem|crt)\"" \ - "($help)--tlscert=[Path to TLS certificate file]:PEM file:_files -g \"*.(pem|crt)\"" \ - "($help)--tlskey=[Path to TLS key file]:Key file:_files -g \"*.(pem|key)\"" \ - "($help)--tlsverify[Use TLS and verify the remote]" \ - "($help)--userns-remap=[User/Group setting for user namespaces]:user\:group:->users-groups" \ - "($help)--userland-proxy[Use userland proxy for loopback traffic]" \ - "($help)--userland-proxy-path=[Path to the userland proxy binary]:binary:_files" \ - "($help)--validate[Validate daemon configuration and exit]" && ret=0 - - case $state in - (cluster-store) - if compset -P '*://'; then - _message 'host:port' && ret=0 - else - store=('consul' 'etcd' 'zk') - _describe -t cluster-store "Cluster Store" store -qS "://" && ret=0 - fi - ;; - (cluster-store-options) - if compset -P '*='; then - _files && ret=0 - else - opts=('discovery.heartbeat' 'discovery.ttl' 'kv.cacertfile' 'kv.certfile' 'kv.keyfile' 'kv.path') - _describe -t cluster-store-opts "Cluster Store Options" opts -qS "=" && ret=0 - fi - ;; - (users-groups) - if compset -P '*:'; then - _groups && ret=0 - else - _describe -t userns-default "default Docker user management" '(default)' && ret=0 - _users && ret=0 - fi - ;; - esac - ;; - (events|info) - __docker_system_subcommand && ret=0 - ;; - (image) - local curcontext="$curcontext" state - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -): :->command" \ - "($help -)*:: :->option-or-argument" && ret=0 - - case $state in - (command) - __docker_image_commands && ret=0 - ;; - (option-or-argument) - curcontext=${curcontext%:*:*}:docker-${words[-1]}: - __docker_image_subcommand && ret=0 - ;; - esac - ;; - (images) - words[1]='ls' - __docker_image_subcommand && ret=0 - ;; - (inspect) - local state - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -f --format)"{-f=,--format=}"[Format the output using the given go template]:template: " \ - "($help -s --size)"{-s,--size}"[Display total file sizes if the type is container]" \ - "($help)--type=[Return JSON for specified type]:type:(container image network node plugin service volume)" \ - "($help -)*: :->values" && ret=0 - - case $state in - (values) - if [[ ${words[(r)--type=container]} == --type=container ]]; then - __docker_complete_containers && ret=0 - elif [[ ${words[(r)--type=image]} == --type=image ]]; then - __docker_complete_images && ret=0 - elif [[ ${words[(r)--type=network]} == --type=network ]]; then - __docker_complete_networks && ret=0 - elif [[ ${words[(r)--type=node]} == --type=node ]]; then - __docker_complete_nodes && ret=0 - elif [[ ${words[(r)--type=plugin]} == --type=plugin ]]; then - __docker_complete_plugins && ret=0 - elif [[ ${words[(r)--type=service]} == --type=secrets ]]; then - __docker_complete_secrets && ret=0 - elif [[ ${words[(r)--type=service]} == --type=service ]]; then - __docker_complete_services && ret=0 - elif [[ ${words[(r)--type=volume]} == --type=volume ]]; then - __docker_complete_volumes && ret=0 - else - __docker_complete_containers - __docker_complete_images - __docker_complete_networks - __docker_complete_nodes - __docker_complete_plugins - __docker_complete_secrets - __docker_complete_services - __docker_complete_volumes && ret=0 - fi - ;; - esac - ;; - (login) - _arguments $(__docker_arguments) -A '-*' \ - $opts_help \ - "($help -p --password)"{-p=,--password=}"[Password]:password: " \ - "($help)--password-stdin[Read password from stdin]" \ - "($help -u --username)"{-u=,--username=}"[Username]:username: " \ - "($help -)1:server: " && ret=0 - ;; - (logout) - _arguments $(__docker_arguments) -A '-*' \ - $opts_help \ - "($help -)1:server: " && ret=0 - ;; - (network) - local curcontext="$curcontext" state - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -): :->command" \ - "($help -)*:: :->option-or-argument" && ret=0 - - case $state in - (command) - __docker_network_commands && ret=0 - ;; - (option-or-argument) - curcontext=${curcontext%:*:*}:docker-${words[-1]}: - __docker_network_subcommand && ret=0 - ;; - esac - ;; - (node) - local curcontext="$curcontext" state - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -): :->command" \ - "($help -)*:: :->option-or-argument" && ret=0 - - case $state in - (command) - __docker_node_commands && ret=0 - ;; - (option-or-argument) - curcontext=${curcontext%:*:*}:docker-${words[-1]}: - __docker_node_subcommand && ret=0 - ;; - esac - ;; - (plugin) - local curcontext="$curcontext" state - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -): :->command" \ - "($help -)*:: :->option-or-argument" && ret=0 - - case $state in - (command) - __docker_plugin_commands && ret=0 - ;; - (option-or-argument) - curcontext=${curcontext%:*:*}:docker-${words[-1]}: - __docker_plugin_subcommand && ret=0 - ;; - esac - ;; - (ps) - words[1]='ls' - __docker_container_subcommand && ret=0 - ;; - (rmi) - words[1]='rm' - __docker_image_subcommand && ret=0 - ;; - (search) - _arguments $(__docker_arguments) -A '-*' \ - $opts_help \ - "($help)*"{-f=,--filter=}"[Filter values]:filter:__docker_complete_search_filters" \ - "($help)--limit=[Maximum returned search results]:limit:(1 5 10 25 50)" \ - "($help)--no-trunc[Do not truncate output]" \ - "($help -):term: " && ret=0 - ;; - (secret) - local curcontext="$curcontext" state - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -): :->command" \ - "($help -)*:: :->option-or-argument" && ret=0 - - case $state in - (command) - __docker_secret_commands && ret=0 - ;; - (option-or-argument) - curcontext=${curcontext%:*:*}:docker-${words[-1]}: - __docker_secret_subcommand && ret=0 - ;; - esac - ;; - (service) - local curcontext="$curcontext" state - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -): :->command" \ - "($help -)*:: :->option-or-argument" && ret=0 - - case $state in - (command) - __docker_service_commands && ret=0 - ;; - (option-or-argument) - curcontext=${curcontext%:*:*}:docker-${words[-1]}: - __docker_service_subcommand && ret=0 - ;; - esac - ;; - (stack) - local curcontext="$curcontext" state - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -): :->command" \ - "($help -)*:: :->option-or-argument" && ret=0 - - case $state in - (command) - __docker_stack_commands && ret=0 - ;; - (option-or-argument) - curcontext=${curcontext%:*:*}:docker-${words[-1]}: - __docker_stack_subcommand && ret=0 - ;; - esac - ;; - (swarm) - local curcontext="$curcontext" state - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -): :->command" \ - "($help -)*:: :->option-or-argument" && ret=0 - - case $state in - (command) - __docker_swarm_commands && ret=0 - ;; - (option-or-argument) - curcontext=${curcontext%:*:*}:docker-${words[-1]}: - __docker_swarm_subcommand && ret=0 - ;; - esac - ;; - (system) - local curcontext="$curcontext" state - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -): :->command" \ - "($help -)*:: :->option-or-argument" && ret=0 - - case $state in - (command) - __docker_system_commands && ret=0 - ;; - (option-or-argument) - curcontext=${curcontext%:*:*}:docker-${words[-1]}: - __docker_system_subcommand && ret=0 - ;; - esac - ;; - (version) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -f --format)"{-f=,--format=}"[Format the output using the given go template]:template: " && ret=0 - ;; - (volume) - local curcontext="$curcontext" state - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -): :->command" \ - "($help -)*:: :->option-or-argument" && ret=0 - - case $state in - (command) - __docker_volume_commands && ret=0 - ;; - (option-or-argument) - curcontext=${curcontext%:*:*}:docker-${words[-1]}: - __docker_volume_subcommand && ret=0 - ;; - esac - ;; - (help) - _arguments $(__docker_arguments) ":subcommand:__docker_commands" && ret=0 - ;; - esac - - return ret -} - -_docker() { - # Support for subservices, which allows for `compdef _docker docker-shell=_docker_containers`. - # Based on /usr/share/zsh/functions/Completion/Unix/_git without support for `ret`. - if [[ $service != docker ]]; then - _call_function - _$service - return - fi - - local curcontext="$curcontext" state line help="-h --help" - integer ret=1 - typeset -A opt_args - - _arguments $(__docker_arguments) -C \ - "(: -)"{-h,--help}"[Print usage]" \ - "($help)--config[Location of client config files]:path:_directories" \ - "($help -D --debug)"{-D,--debug}"[Enable debug mode]" \ - "($help -H --host)"{-H=,--host=}"[tcp://host:port to bind/connect to]:host: " \ - "($help -l --log-level)"{-l=,--log-level=}"[Logging level]:level:(debug info warn error fatal)" \ - "($help)--tls[Use TLS]" \ - "($help)--tlscacert=[Trust certs signed only by this CA]:PEM file:_files -g "*.(pem|crt)"" \ - "($help)--tlscert=[Path to TLS certificate file]:PEM file:_files -g "*.(pem|crt)"" \ - "($help)--tlskey=[Path to TLS key file]:Key file:_files -g "*.(pem|key)"" \ - "($help)--tlsverify[Use TLS and verify the remote]" \ - "($help)--userland-proxy[Use userland proxy for loopback traffic]" \ - "($help -v --version)"{-v,--version}"[Print version information and quit]" \ - "($help -): :->command" \ - "($help -)*:: :->option-or-argument" && ret=0 - - local host=${opt_args[-H]}${opt_args[--host]} - local config=${opt_args[--config]} - local docker_options="${host:+--host $host} ${config:+--config $config}" - - case $state in - (command) - __docker_commands && ret=0 - ;; - (option-or-argument) - curcontext=${curcontext%:*:*}:docker-$words[1]: - __docker_subcommand && ret=0 - ;; - esac - - return ret -} - -_dockerd() { - integer ret=1 - words[1]='daemon' - __docker_subcommand && ret=0 - return ret -} - -_docker "$@" - -# Local Variables: -# mode: Shell-Script -# sh-indentation: 4 -# indent-tabs-mode: nil -# sh-basic-offset: 4 -# End: -# vim: ft=zsh sw=4 ts=4 et diff --git a/zsh/.oh-my-zsh/plugins/doctl/README.md b/zsh/.oh-my-zsh/plugins/doctl/README.md deleted file mode 100644 index a81e90b..0000000 --- a/zsh/.oh-my-zsh/plugins/doctl/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# Doctl - -This plugin provides completion for [Doctl](https://github.com/digitalocean/doctl). - -To use it add doctl to the plugins array in your zshrc file. - -```bash -plugins=(... doctl) -``` diff --git a/zsh/.oh-my-zsh/plugins/doctl/doctl.plugin.zsh b/zsh/.oh-my-zsh/plugins/doctl/doctl.plugin.zsh deleted file mode 100644 index d23ed08..0000000 --- a/zsh/.oh-my-zsh/plugins/doctl/doctl.plugin.zsh +++ /dev/null @@ -1,9 +0,0 @@ -# Autocompletion for doctl, the command line tool for DigitalOcean service -# -# doctl project: https://github.com/digitalocean/doctl -# -# Author: https://github.com/HalisCz - -if [ $commands[doctl] ]; then - source <(doctl completion zsh) -fi diff --git a/zsh/.oh-my-zsh/plugins/dotenv/README.md b/zsh/.oh-my-zsh/plugins/dotenv/README.md deleted file mode 100644 index ab9d329..0000000 --- a/zsh/.oh-my-zsh/plugins/dotenv/README.md +++ /dev/null @@ -1,92 +0,0 @@ -# dotenv - -Automatically load your project ENV variables from `.env` file when you `cd` into project root directory. - -Storing configuration in the environment is one of the tenets of a [twelve-factor app](https://www.12factor.net). Anything that is likely to change between deployment environments, such as resource handles for databases or credentials for external services, should be extracted from the code into environment variables. - -To use it, add `dotenv` to the plugins array in your zshrc file: - -```sh -plugins=(... dotenv) -``` - -## Usage - -Create `.env` file inside your project root directory and put your ENV variables there. - -For example: - -```sh -export AWS_S3_TOKEN=d84a83539134f28f412c652b09f9f98eff96c9a -export SECRET_KEY=7c6c72d959416d5aa368a409362ec6e2ac90d7f -export MONGO_URI=mongodb://127.0.0.1:27017 -export PORT=3001 -``` - -`export` is optional. This format works as well: - -```sh -AWS_S3_TOKEN=d84a83539134f28f412c652b09f9f98eff96c9a -SECRET_KEY=7c6c72d959416d5aa368a409362ec6e2ac90d7f -MONGO_URI=mongodb://127.0.0.1:27017 -PORT=3001 -``` - -You can even mix both formats, although it's probably a bad idea. - -## Settings - -### ZSH_DOTENV_FILE - -You can also modify the name of the file to be loaded with the variable `ZSH_DOTENV_FILE`. -If the variable isn't set, the plugin will default to use `.env`. -For example, this will make the plugin look for files named `.dotenv` and load them: - -```zsh -# in ~/.zshrc, before Oh My Zsh is sourced: -ZSH_DOTENV_FILE=.dotenv -``` - -### ZSH_DOTENV_PROMPT - -Set `ZSH_DOTENV_PROMPT=false` in your zshrc file if you don't want the confirmation message. -You can also choose the `Always` option when prompted to always allow sourcing the .env file -in that directory. See the next section for more details. - -### ZSH_DOTENV_ALLOWED_LIST, ZSH_DOTENV_DISALLOWED_LIST - -The default behavior of the plugin is to always ask whether to source a dotenv file. There's -a **Y**es, **N**o, **A**lways and N**e**ver option. If you choose Always, the directory of the .env file -will be added to an allowed list; if you choose Never, it will be added to a disallowed list. -If a directory is found in either of those lists, the plugin won't ask for confirmation and will -instead either source the .env file or proceed without action respectively. - -The allowed and disallowed lists are saved by default in `$ZSH_CACHE_DIR/dotenv-allowed.list` and -`$ZSH_CACHE_DIR/dotenv-disallowed.list` respectively. If you want to change that location, -change the `$ZSH_DOTENV_ALLOWED_LIST` and `$ZSH_DOTENV_DISALLOWED_LIST` variables, like so: - -```zsh -# in ~/.zshrc, before Oh My Zsh is sourced: -ZSH_DOTENV_ALLOWED_LIST=/path/to/dotenv/allowed/list -ZSH_DOTENV_DISALLOWED_LIST=/path/to/dotenv/disallowed/list -``` - -The file is just a list of directories, separated by a newline character. If you want -to change your decision, just edit the file and remove the line for the directory you want to -change. - -NOTE: if a directory is found in both the allowed and disallowed lists, the disallowed list -takes preference, _i.e._ the .env file will never be sourced. - -## Version Control - -**It's strongly recommended to add `.env` file to `.gitignore`**, because usually it contains sensitive information such as your credentials, secret keys, passwords etc. You don't want to commit this file, it's supposed to be local only. - -## Disclaimer - -This plugin only sources the `.env` file. Nothing less, nothing more. It doesn't do any checks. It's designed to be the fastest and simplest option. You're responsible for the `.env` file content. You can put some code (or weird symbols) there, but do it on your own risk. `dotenv` is the basic tool, yet it does the job. - -If you need more advanced and feature-rich ENV management, check out these awesome projects: - -* [direnv](https://github.com/direnv/direnv) -* [zsh-autoenv](https://github.com/Tarrasch/zsh-autoenv) diff --git a/zsh/.oh-my-zsh/plugins/dotenv/dotenv.plugin.zsh b/zsh/.oh-my-zsh/plugins/dotenv/dotenv.plugin.zsh deleted file mode 100644 index 40ec5c4..0000000 --- a/zsh/.oh-my-zsh/plugins/dotenv/dotenv.plugin.zsh +++ /dev/null @@ -1,64 +0,0 @@ -## Settings - -# Filename of the dotenv file to look for -: ${ZSH_DOTENV_FILE:=.env} - -# Path to the file containing allowed paths -: ${ZSH_DOTENV_ALLOWED_LIST:="${ZSH_CACHE_DIR:-$ZSH/cache}/dotenv-allowed.list"} -: ${ZSH_DOTENV_DISALLOWED_LIST:="${ZSH_CACHE_DIR:-$ZSH/cache}/dotenv-disallowed.list"} - - -## Functions - -source_env() { - if [[ ! -f "$ZSH_DOTENV_FILE" ]]; then - return - fi - - if [[ "$ZSH_DOTENV_PROMPT" != false ]]; then - local confirmation dirpath="${PWD:A}" - - # make sure there is an (dis-)allowed file - touch "$ZSH_DOTENV_ALLOWED_LIST" - touch "$ZSH_DOTENV_DISALLOWED_LIST" - - # early return if disallowed - if command grep -q "$dirpath" "$ZSH_DOTENV_DISALLOWED_LIST" &>/dev/null; then - return - fi - - # check if current directory's .env file is allowed or ask for confirmation - if ! command grep -q "$dirpath" "$ZSH_DOTENV_ALLOWED_LIST" &>/dev/null; then - # get cursor column and print new line before prompt if not at line beginning - local column - echo -ne "\e[6n" > /dev/tty - read -t 1 -s -d R column < /dev/tty - column="${column##*\[*;}" - [[ $column -eq 1 ]] || echo - - # print same-line prompt and output newline character if necessary - echo -n "dotenv: found '$ZSH_DOTENV_FILE' file. Source it? ([Y]es/[n]o/[a]lways/n[e]ver) " - read -k 1 confirmation - [[ "$confirmation" = $'\n' ]] || echo - - # check input - case "$confirmation" in - [nN]) return ;; - [aA]) echo "$dirpath" >> "$ZSH_DOTENV_ALLOWED_LIST" ;; - [eE]) echo "$dirpath" >> "$ZSH_DOTENV_DISALLOWED_LIST"; return ;; - *) ;; # interpret anything else as a yes - esac - fi - fi - - # test .env syntax - zsh -fn $ZSH_DOTENV_FILE || echo "dotenv: error when sourcing '$ZSH_DOTENV_FILE' file" >&2 - - setopt localoptions allexport - source $ZSH_DOTENV_FILE -} - -autoload -U add-zsh-hook -add-zsh-hook chpwd source_env - -source_env diff --git a/zsh/.oh-my-zsh/plugins/dotnet/README.md b/zsh/.oh-my-zsh/plugins/dotnet/README.md deleted file mode 100644 index 7554b4e..0000000 --- a/zsh/.oh-my-zsh/plugins/dotnet/README.md +++ /dev/null @@ -1,23 +0,0 @@ -# .NET Core CLI plugin - -This plugin provides completion and useful aliases for [.NET Core CLI](https://dotnet.microsoft.com/). - -To use it, add `dotnet` to the plugins array in your zshrc file. - -``` -plugins=(... dotnet) -``` - -## Aliases - -| Alias | Command | Description | -|-------|------------------|-------------------------------------------------------------------| -| dn | dotnet new | Create a new .NET project or file. | -| dr | dotnet run | Build and run a .NET project output. | -| dt | dotnet test | Run unit tests using the test runner specified in a .NET project. | -| dw | dotnet watch | Watch for source file changes and restart the dotnet command. | -| dwr | dotnet watch run | Watch for source file changes and restart the `run` command. | -| ds | dotnet sln | Modify Visual Studio solution files. | -| da | dotnet add | Add a package or reference to a .NET project. | -| dp | dotnet pack | Create a NuGet package. | -| dng | dotnet nuget | Provides additional NuGet commands. | diff --git a/zsh/.oh-my-zsh/plugins/dotnet/dotnet.plugin.zsh b/zsh/.oh-my-zsh/plugins/dotnet/dotnet.plugin.zsh deleted file mode 100644 index 6bd4b7a..0000000 --- a/zsh/.oh-my-zsh/plugins/dotnet/dotnet.plugin.zsh +++ /dev/null @@ -1,32 +0,0 @@ -# This scripts is copied from (MIT License): -# https://github.com/dotnet/toolset/blob/master/scripts/register-completions.zsh - -_dotnet_zsh_complete() -{ - local completions=("$(dotnet complete "$words")") - - # If the completion list is empty, just continue with filename selection - if [ -z "$completions" ] - then - _arguments '*::arguments: _normal' - return - fi - - # This is not a variable assigment, don't remove spaces! - _values = "${(ps:\n:)completions}" -} - -compdef _dotnet_zsh_complete dotnet - -# Aliases bellow are here for backwards compatibility -# added by Shaun Tabone (https://github.com/xontab) - -alias dn='dotnet new' -alias dr='dotnet run' -alias dt='dotnet test' -alias dw='dotnet watch' -alias dwr='dotnet watch run' -alias ds='dotnet sln' -alias da='dotnet add' -alias dp='dotnet pack' -alias dng='dotnet nuget' diff --git a/zsh/.oh-my-zsh/plugins/droplr/README.md b/zsh/.oh-my-zsh/plugins/droplr/README.md deleted file mode 100644 index 6daa254..0000000 --- a/zsh/.oh-my-zsh/plugins/droplr/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# droplr - -Use [Droplr](https://droplr.com/) from the command line to upload files and shorten -links. It needs to have [Droplr.app](https://droplr.com/apps) installed and logged -in. MacOS only. - -To use it, add `droplr` to the `$plugins` variable in your zshrc file: - -```zsh -plugins=(... droplr) -``` - -Author: [Fabio Fernandes](https://github.com/fabiofl) - -## Examples - -- Upload a file: `droplr ./path/to/file/` - -- Shorten a link: `droplr https://example.com` diff --git a/zsh/.oh-my-zsh/plugins/droplr/droplr.plugin.zsh b/zsh/.oh-my-zsh/plugins/droplr/droplr.plugin.zsh deleted file mode 100644 index af0a212..0000000 --- a/zsh/.oh-my-zsh/plugins/droplr/droplr.plugin.zsh +++ /dev/null @@ -1,15 +0,0 @@ -# Only compatible with MacOS -[[ "$OSTYPE" == darwin* ]] || return - -droplr() { - if [[ $# -eq 0 ]]; then - echo You need to specify a parameter. >&2 - return 1 - fi - - if [[ "$1" =~ ^https?:// ]]; then - osascript -e 'tell app "Droplr" to shorten "'"$1"'"' - else - open -ga /Applications/Droplr.app "$1" - fi -} diff --git a/zsh/.oh-my-zsh/plugins/drush/README.md b/zsh/.oh-my-zsh/plugins/drush/README.md deleted file mode 100644 index df7b82b..0000000 --- a/zsh/.oh-my-zsh/plugins/drush/README.md +++ /dev/null @@ -1,83 +0,0 @@ -# Drush - -## Description -This plugin offers aliases and functions to make the work with drush easier and more productive. - -To enable it, add the `drush` to your `plugins` array in `~/.zshrc`: - -``` -plugins=(... drush) -``` - -## Aliases -| Alias | Description | Command | -|-------|-----------------------------------------------------------------------|-----------------------------| -| dr | Display drush help | drush | -| drca | Clear all drupal caches. | drush cc all | -| drcb | Clear block cache. | drush cc block | -| drcg | Clear registry cache. | drush cc registry | -| drcj | Clear css-js cache. | drush cc css-js | -| drcm | Clear menu cache. | drush cc menu | -| drcml | Clear module-list cache. | drush cc module-list | -| drcr | Run all cron hooks in all active modules for specified site. | drush core-cron | -| drct | Clear theme-registry cache. | drush cc theme-registry | -| drcv | Clear views cache. (Make sure that the views module is enabled) | drush cc views | -| drdmp | Backup database in a new dump.sql file | drush drush sql-dump --ordered-dump --result-file=dump.sql| -| drf | Display features status | drush features | -| drfr | Revert a feature module on your site. | drush features-revert -y | -| drfu | Update a feature module on your site. | drush features-update -y | -| drfra | Revert all enabled feature module on your site. | drush features-revert-all | -| drif | Flush all derived images. | drush image-flush --all | -| drpm | Show a list of available modules. | drush pm-list --type=module | -| drst | Provides a birds-eye view of the current Drupal installation, if any. | drush core-status | -| drup | Apply any database updates required (as with running update.php). | drush updatedb | -| drups | List any pending database updates. | drush updatedb-status | -| drv | Show drush version. | drush version | -| drvd | Delete a variable. | drush variable-del | -| drvg | Get a list of some or all site variables and values. | drush variable-get | -| drvs | Set a variable. | drush variable-set | - -## Functions - -### dren -Download and enable one or more extensions (modules or themes). -Must be invoked with one or more parameters. e.g.: -`dren devel` or `dren devel module_filter views` - -### drf -Edit drushrc, site alias, and Drupal settings.php files. -Can be invoked with one or without parameters. e.g.: -`drf 1` - -### dris -Disable one or more extensions (modules or themes) -Must be invoked with one or more parameters. e.g.: -`dris devel` or `dris devel module_filter views` - -### drpu -Uninstall one or more modules. -Must be invoked with one or more parameters. e.g.: -`drpu devel` or `drpu devel module_filter views` - -### drnew -Creates a brand new drupal website. -Note: As soon as the installation is complete, drush will print a username and a random password into the terminal: -``` -Installation complete. User name: admin User password: cf7t8yqNEm -``` - -## Additional features - -### Autocomplete -The [completion script for drush](https://github.com/drush-ops/drush/blob/8.0.1/drush.complete.sh) comes enabled with this plugin. -So, it is possible to type a command: -``` -drush sql -``` - -And as soon as the tab key is pressed, the script will display the available commands: -``` -drush sql -sqlc sql-conf sql-create sql-dump sql-query sql-sanitize -sql-cli sql-connect sql-drop sqlq sqlsan sql-sync -``` diff --git a/zsh/.oh-my-zsh/plugins/drush/drush.complete.sh b/zsh/.oh-my-zsh/plugins/drush/drush.complete.sh deleted file mode 100644 index 38b882e..0000000 --- a/zsh/.oh-my-zsh/plugins/drush/drush.complete.sh +++ /dev/null @@ -1,50 +0,0 @@ -# BASH completion script for Drush. -# -# Place this in your /etc/bash_completion.d/ directory or source it from your -# ~/.bash_completion or ~/.bash_profile files. Alternatively, source -# examples/example.bashrc instead, as it will automatically find and source -# this file. -# -# If you're using ZSH instead of BASH, add the following to your ~/.zshrc file -# and source it. -# -# autoload bashcompinit -# bashcompinit -# source /path/to/your/drush.complete.sh - -# Ensure drush is available. -which drush > /dev/null || alias drush &> /dev/null || return - -__drush_ps1() { - f="${TMPDIR:-/tmp/}/drush-env-${USER}/drush-drupal-site-$$" - if [ -f $f ] - then - __DRUPAL_SITE=$(cat "$f") - else - __DRUPAL_SITE="$DRUPAL_SITE" - fi - - # Set DRUSH_PS1_SHOWCOLORHINTS to a non-empty value and define a - # __drush_ps1_colorize_alias() function for color hints in your Drush PS1 - # prompt. See example.prompt.sh for an example implementation. - if [ -n "${__DRUPAL_SITE-}" ] && [ -n "${DRUSH_PS1_SHOWCOLORHINTS-}" ]; then - __drush_ps1_colorize_alias - fi - - [[ -n "$__DRUPAL_SITE" ]] && printf "${1:- (%s)}" "$__DRUPAL_SITE" -} - -# Completion function, uses the "drush complete" command to retrieve -# completions for a specific command line COMP_WORDS. -_drush_completion() { - # Set IFS to newline (locally), since we only use newline separators, and - # need to retain spaces (or not) after completions. - local IFS=$'\n' - # The '< /dev/null' is a work around for a bug in php libedit stdin handling. - # Note that libedit in place of libreadline in some distributions. See: - # https://bugs.launchpad.net/ubuntu/+source/php5/+bug/322214 - COMPREPLY=( $(drush --early=includes/complete.inc "${COMP_WORDS[@]}" < /dev/null 2> /dev/null) ) -} - -# Register our completion function. We include common short aliases for Drush. -complete -o bashdefault -o default -o nospace -F _drush_completion d dr drush drush5 drush6 drush7 drush8 drush.php diff --git a/zsh/.oh-my-zsh/plugins/drush/drush.plugin.zsh b/zsh/.oh-my-zsh/plugins/drush/drush.plugin.zsh deleted file mode 100644 index 8a20d79..0000000 --- a/zsh/.oh-my-zsh/plugins/drush/drush.plugin.zsh +++ /dev/null @@ -1,104 +0,0 @@ -# Drush support. - -function dren() { - drush en $@ -y -} - -function dris() { - drush pm-disable $@ -y -} - -function drpu() { - drush pm-uninstall $@ -y -} - -function drf() { - if [[ $1 == "" ]] then - drush core-config - else - drush core-config --choice=$1 - fi -} - -function drfi() { - if [[ $1 == "fields" ]]; then - drush field-info fields - elif [[ $1 == "types" ]]; then - drush field-info types - else - drush field-info - fi -} - -function drnew() { - - cd ~ - echo "Website's name: " - read WEBSITE_NAME - - HOST=http://$(hostname -i)/ - - if [[ $WEBSITE_NAME == "" ]] then - MINUTES=$(date +%M:%S) - WEBSITE_NAME="Drupal-$MINUTES" - echo "Your website will be named: $WEBSITE_NAME" - fi - - drush dl drupal --drupal-project-rename=$WEBSITE_NAME - - echo "Type your localhost directory: (Leave empty for /var/www/html/)" - read DIRECTORY - - if [[ $DIRECTORY == "" ]] then - DIRECTORY="/var/www/html/" - fi - - echo "Moving to $DIRECTORY$WEBSITE_NAME" - sudo mv $WEBSITE_NAME $DIRECTORY - cd $DIRECTORY$WEBSITE_NAME - - echo "Database's user: " - read DATABASE_USR - echo "Database's password: " - read -s DATABASE_PWD - echo "Database's name for your project: " - read DATABASE - - DB_URL="mysql://$DATABASE_USR:$DATABASE_PWD@localhost/$DATABASE" - drush site-install standard --db-url=$DB_URL --site-name=$WEBSITE_NAME - - open_command $HOST$WEBSITE_NAME - echo "Done" - -} - -# Aliases, sorted alphabetically. -alias dr="drush" -alias drca="drush cc all" # Deprecated for Drush 8 -alias drcb="drush cc block" # Deprecated for Drush 8 -alias drcg="drush cc registry" # Deprecated for Drush 8 -alias drcj="drush cc css-js" -alias drcm="drush cc menu" -alias drcml="drush cc module-list" -alias drcr="drush core-cron" -alias drct="drush cc theme-registry" -alias drcv="drush cc views" -alias drdmp="drush sql-dump --ordered-dump --result-file=dump.sql" -alias drf="drush features" -alias drfr="drush features-revert -y" -alias drfu="drush features-update -y" -alias drfra="drush features-revert-all" -alias drif="drush image-flush --all" -alias drpm="drush pm-list --type=module" -alias drst="drush core-status" -alias drup="drush updatedb" -alias drups="drush updatedb-status" -alias drv="drush version" -alias drvd="drush variable-del" -alias drvg="drush variable-get" -alias drvs="drush variable-set" - -# Enable drush autocomplete support -autoload bashcompinit -bashcompinit -source $(dirname $0)/drush.complete.sh diff --git a/zsh/.oh-my-zsh/plugins/eecms/README.md b/zsh/.oh-my-zsh/plugins/eecms/README.md deleted file mode 100644 index c538355..0000000 --- a/zsh/.oh-my-zsh/plugins/eecms/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# eecms plugin - -This plugin adds auto-completion of console commands for [`eecms`](https://github.com/ExpressionEngine/ExpressionEngine). - -To use it, add `eecms` to the plugins array of your `.zshrc` file: -``` -plugins=(... eecms) -``` - -It also adds the alias `eecms` which finds the eecms file in the current project -and runs it with php. diff --git a/zsh/.oh-my-zsh/plugins/eecms/eecms.plugin.zsh b/zsh/.oh-my-zsh/plugins/eecms/eecms.plugin.zsh deleted file mode 100644 index ee10fbb..0000000 --- a/zsh/.oh-my-zsh/plugins/eecms/eecms.plugin.zsh +++ /dev/null @@ -1,20 +0,0 @@ -# ExpressionEngine CMS basic command completion - -_eecms_console () { - echo "php $(find . -maxdepth 3 -mindepth 1 -name 'eecms' -type f | head -n 1)" -} - -_eecms_get_command_list () { - `_eecms_console` | sed "/Available commands/,/^/d" | sed "s/[[:space:]].*//g" -} - -_eecms () { - compadd `_eecms_get_command_list` -} - -compdef _eecms '`_eecms_console`' -compdef _eecms 'system/ee/eecms' -compdef _eecms eecms - -#Alias -alias eecms='`_eecms_console`' diff --git a/zsh/.oh-my-zsh/plugins/emacs/README.md b/zsh/.oh-my-zsh/plugins/emacs/README.md deleted file mode 100644 index c8e33b5..0000000 --- a/zsh/.oh-my-zsh/plugins/emacs/README.md +++ /dev/null @@ -1,30 +0,0 @@ -# Emacs plugin - -This plugin utilizes the Emacs daemon capability, allowing the user to quickly open frames, whether they are opened in a terminal via a ssh connection, or X frames opened on the same host. The plugin also provides some aliases for such operations. - -- You don't have the cost of starting Emacs all the time anymore -- Opening a file is as fast as Emacs does not have anything else to do. -- You can share opened buffered across opened frames. -- Configuration changes made at runtime are applied to all frames. - -**NOTE:** requires Emacs 24 and newer. - -To use it, add emacs to the plugins array in your zshrc file: - -```zsh -plugins=(... emacs) -``` - -## Aliases - -The plugin uses a custom launcher (which we'll call here `$EMACS_LAUNCHER`) that is just a wrapper around [`emacsclient`](https://www.emacswiki.org/emacs/EmacsClient). - -| Alias | Command | Description | -|--------|----------------------------------------------------|----------------------------------------------------------------| -| emacs | `$EMACS_LAUNCHER --no-wait` | Opens a temporary emacsclient frame | -| e | `emacs` | Same as emacs alias | -| te | `$EMACS_LAUNCHER -nw` | Open terminal emacsclient | -| eeval | `$EMACS_LAUNCHER --eval` | Same as `M-x eval` but from outside Emacs | -| eframe | `emacsclient --alternate-editor "" --create-frame` | Create new X frame | -| efile | - | Print the path to the file open in the current buffer | -| ecd | - | Print the directory of the file open in the the current buffer | diff --git a/zsh/.oh-my-zsh/plugins/emacs/emacs.plugin.zsh b/zsh/.oh-my-zsh/plugins/emacs/emacs.plugin.zsh deleted file mode 100644 index 027c755..0000000 --- a/zsh/.oh-my-zsh/plugins/emacs/emacs.plugin.zsh +++ /dev/null @@ -1,63 +0,0 @@ -# Emacs 23 daemon capability is a killing feature. -# One emacs process handles all your frames whether -# you use a frame opened in a terminal via a ssh connection or X frames -# opened on the same host. - -# Benefits are multiple -# - You don't have the cost of starting Emacs all the time anymore -# - Opening a file is as fast as Emacs does not have anything else to do. -# - You can share opened buffered across opened frames. -# - Configuration changes made at runtime are applied to all frames. - -# Require emacs version to be minimum 24 -autoload -Uz is-at-least -is-at-least 24 "${${(Az)"$(emacsclient --version 2>/dev/null)"}[2]}" || return 0 - -# Path to custom emacsclient launcher -export EMACS_PLUGIN_LAUNCHER="${0:A:h}/emacsclient.sh" - -# set EDITOR if not already defined. -export EDITOR="${EDITOR:-${EMACS_PLUGIN_LAUNCHER}}" - -alias emacs="$EMACS_PLUGIN_LAUNCHER --no-wait" -alias e=emacs -# open terminal emacsclient -alias te="$EMACS_PLUGIN_LAUNCHER -nw" - -# same than M-x eval but from outside Emacs. -alias eeval="$EMACS_PLUGIN_LAUNCHER --eval" -# create a new X frame -alias eframe='emacsclient --alternate-editor "" --create-frame' - -# Emacs ANSI Term tracking -if [[ -n "$INSIDE_EMACS" ]]; then - chpwd_emacs() { print -P "\033AnSiTc %d"; } - print -P "\033AnSiTc %d" # Track current working directory - print -P "\033AnSiTu %n" # Track username - - # add chpwd hook - autoload -Uz add-zsh-hook - add-zsh-hook chpwd chpwd_emacs -fi - -# Write to standard output the path to the file -# opened in the current buffer. -function efile { - local cmd="(buffer-file-name (window-buffer))" - local file="$("$EMACS_PLUGIN_LAUNCHER" --eval "$cmd" | tr -d \")" - - if [[ -z "$file" ]]; then - echo "Can't deduce current buffer filename." >&2 - return 1 - fi - - echo "$file" -} - -# Write to standard output the directory of the file -# opened in the the current buffer -function ecd { - local file - file="$(efile)" || return $? - echo "${file:h}" -} diff --git a/zsh/.oh-my-zsh/plugins/emacs/emacsclient.sh b/zsh/.oh-my-zsh/plugins/emacs/emacsclient.sh deleted file mode 100755 index 25efe0d..0000000 --- a/zsh/.oh-my-zsh/plugins/emacs/emacsclient.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/sh - -emacsfun() { - local cmd frames - - # Build the Emacs Lisp command to check for suitable frames - # See https://www.gnu.org/software/emacs/manual/html_node/elisp/Frames.html#index-framep - case "$*" in - *-t*|*--tty*|*-nw*) cmd="(memq 't (mapcar 'framep (frame-list)))" ;; # if != nil, there are tty frames - *) cmd="(delete 't (mapcar 'framep (frame-list)))" ;; # if != nil, there are graphical terminals (x, w32, ns) - esac - - # Check if there are suitable frames - frames="$(emacsclient -a '' -n -e "$cmd" 2>/dev/null)" - - # Only create another X frame if there isn't one present - if [ -z "$frames" -o "$frames" = nil ]; then - emacsclient --alternate-editor "" --create-frame "$@" - return $? - fi - - emacsclient --alternate-editor "" "$@" -} - -# Adapted from https://github.com/davidshepherd7/emacs-read-stdin/blob/master/emacs-read-stdin.sh -# If the second argument is - then write stdin to a tempfile and open the -# tempfile. (first argument will be `--no-wait` passed in by the plugin.zsh) -if [ $# -ge 2 -a "$2" = "-" ]; then - # Create a tempfile to hold stdin - tempfile="$(mktemp --tmpdir emacs-stdin-$USERNAME.XXXXXXX 2>/dev/null \ - || mktemp -t emacs-stdin-$USERNAME)" # support BSD mktemp - # Redirect stdin to the tempfile - cat - > "$tempfile" - # Reset $2 to the tempfile so that "$@" works as expected - set -- "$1" "$tempfile" "${@:3}" -fi - -emacsfun "$@" diff --git a/zsh/.oh-my-zsh/plugins/ember-cli/README.md b/zsh/.oh-my-zsh/plugins/ember-cli/README.md deleted file mode 100644 index b463736..0000000 --- a/zsh/.oh-my-zsh/plugins/ember-cli/README.md +++ /dev/null @@ -1,22 +0,0 @@ -# Ember CLI - -**Maintainers:** [BilalBudhani](https://github.com/BilalBudhani), [eubenesa](https://github.com/eubenesa), [scottkidder](https://github.com/scottkidder] - -Ember CLI (https://www.ember-cli.com/) - -### List of Aliases - -Alias | Ember-CLI command ------ | ----------------- -**es** | *ember serve* -**ea** | *ember addon* -**eb** | *ember build* -**ed** | *ember destroy* -**eg** | *ember generate* -**eh** | *ember help* -**ein** | *ember init* -**ei** | *ember install* -**et** | *ember test* -**ets** | *ember test --serve* -**eu** | *ember update* -**ev** | *ember version* diff --git a/zsh/.oh-my-zsh/plugins/ember-cli/ember-cli.plugin.zsh b/zsh/.oh-my-zsh/plugins/ember-cli/ember-cli.plugin.zsh deleted file mode 100644 index 67842c1..0000000 --- a/zsh/.oh-my-zsh/plugins/ember-cli/ember-cli.plugin.zsh +++ /dev/null @@ -1,17 +0,0 @@ -# Ember CLI -# Visit https://www.ember-cli.com/ to view user guide - -alias es='ember serve' -alias ea='ember addon' -alias eb='ember build' -alias ed='ember destroy' -alias eg='ember generate' -alias eh='ember help' -alias ein='ember init' -alias ei='ember install' -alias et='ember test' -alias ets='ember test --serve' -alias eu='ember update' - -# version -alias ev='ember version' diff --git a/zsh/.oh-my-zsh/plugins/emoji-clock/README.md b/zsh/.oh-my-zsh/plugins/emoji-clock/README.md deleted file mode 100644 index 4934f38..0000000 --- a/zsh/.oh-my-zsh/plugins/emoji-clock/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# emoji-clock - -The plugin displays current time as an emoji symbol with half hour accuracy. - -To use it, add `emoji-clock` to the plugins array of your zshrc file: -``` -plugins=(... emoji-clock) -``` - -## Features - -| Function | Description | -|-------------------|----------------------------------------------------------------------| -| `emoji-clock` | Displays current time in clock emoji symbol with half hour accuracy | diff --git a/zsh/.oh-my-zsh/plugins/emoji-clock/emoji-clock.plugin.zsh b/zsh/.oh-my-zsh/plugins/emoji-clock/emoji-clock.plugin.zsh deleted file mode 100644 index bdd606f..0000000 --- a/zsh/.oh-my-zsh/plugins/emoji-clock/emoji-clock.plugin.zsh +++ /dev/null @@ -1,33 +0,0 @@ -# ------------------------------------------------------------------------------ -# FILE: emoji-clock.plugin.zsh -# DESCRIPTION: The current time with half hour accuracy as an emoji symbol. -# Inspired by Andre Torrez' "Put A Burger In Your Shell" -# https://notes.torrez.org/2013/04/put-a-burger-in-your-shell.html -# AUTHOR: Alexis Hildebrandt (afh[at]surryhill.net) -# VERSION: 1.0.0 -# ----------------------------------------------------------------------------- - -function emoji-clock() { - # Add 15 minutes to the current time and save the value as $minutes. - (( minutes = $(date '+%M') + 15 )) - (( hour = $(date '+%I') + minutes / 60 )) - # make sure minutes and hours don't exceed 60 nor 12 respectively - (( minutes %= 60 )); (( hour %= 12 )) - - case $hour in - 0) clock="🕛"; [ $minutes -ge 30 ] && clock="🕧";; - 1) clock="ðŸ•"; [ $minutes -ge 30 ] && clock="🕜";; - 2) clock="🕑"; [ $minutes -ge 30 ] && clock="ðŸ•";; - 3) clock="🕒"; [ $minutes -ge 30 ] && clock="🕞";; - 4) clock="🕓"; [ $minutes -ge 30 ] && clock="🕟";; - 5) clock="🕔"; [ $minutes -ge 30 ] && clock="🕠";; - 6) clock="🕕"; [ $minutes -ge 30 ] && clock="🕡";; - 7) clock="🕖"; [ $minutes -ge 30 ] && clock="🕢";; - 8) clock="🕗"; [ $minutes -ge 30 ] && clock="🕣";; - 9) clock="🕘"; [ $minutes -ge 30 ] && clock="🕤";; - 10) clock="🕙"; [ $minutes -ge 30 ] && clock="🕥";; - 11) clock="🕚"; [ $minutes -ge 30 ] && clock="🕦";; - *) clock="⌛";; - esac - echo $clock -} diff --git a/zsh/.oh-my-zsh/plugins/emoji/README.md b/zsh/.oh-my-zsh/plugins/emoji/README.md deleted file mode 100644 index 8b8860a..0000000 --- a/zsh/.oh-my-zsh/plugins/emoji/README.md +++ /dev/null @@ -1,135 +0,0 @@ -# emoji plugin - -Support for conveniently working with Unicode emoji in Zsh. - -## Features - -This plugin provides support for working with Unicode emoji characters in `zsh` using human-readable identifiers. It provides global variables which map emoji names to the actual characters, country names to their flags, and some named groupings of emoji. It also provides associated functions for displaying them. - -#### Variables - -Variable | Description ------------------ | -------------------------------- - $emoji | Maps emoji names to characters - $emoji_flags | Maps country names to flag characters (using region indicators) - $emoji_groups | Named groups of emoji. Keys are group names; values are whitespace-separated lists of character names - -You may define new emoji groups at run time by modifying `$emoji_groups`. The special group name `all` is reserved for use by the plugin. You should not modify `$emoji` or `$emoji_flags`. - -#### Functions - -Function | Description ----------------- | ------------------------------- - random_emoji | Prints a random emoji character - display_emoji | Displays emoji, along with their names - -## Usage and Examples - -To output a specific emoji, use: -``` -$> echo $emoji[] -``` -E.g.: -``` -$> echo $emoji[mouse_face] -``` - -To output a random emoji, use: -``` -$> random_emoji -``` -To output a random emoji from a particular group, use: -``` -$> random_emoji -``` -E.g.: -``` -$> random_emoji fruits -$> random_emoji animals -$> random_emoji vehicles -$> random_emoji faces -``` - -The defined group names can be found with `echo ${(k)emoji_groups}`. - -To list all available emoji with their names, use: -``` -$> display_emoji -$> display_emoji fruits -$> display_emoji animals -$> display_emoji vehicles -$> display_emoji faces -``` - -To use emoji in a prompt: -``` -PROMPT="$emoji[penguin] > "" -PROMPT='$(random_emoji fruits) > ' -surfer=$emoji[surfer] -PROMPT="$surfer > " -``` - -## Technical Details - -The emoji names and codes are sourced from Unicode Technical Report \#51, which provides information on emoji support in Unicode. It can be found at https://www.unicode.org/reports/tr51/index.html. - -The group definitions are added by this OMZ plugin. They are not based on external definitions. (As far as I can tell. -apjanke) - -The values in the `$emoji*` maps are the emoji characters themselves, not escape sequences or other forms that require interpretation. They can be used in any context and do not require escape sequence support from commands like `echo` or `print`. - -The emoji in the main `$emoji` map are standalone character sequences which can all be output on their own, without worrying about combining characters. The values may actually be multi-code-point sequences, instead of a single code point, and may include combining characters in those sequences. But they're arranged so their effects do not extend beyond that sequence. - -The exception to this is the skin tone variation selectors. These are included in the main `$emoji` map because they can be displayed on their own, as well as used as combining characters. (If they follow a character that is not one of the emoji characters they combine with, they are displayed as color swatches.) - - -## Experimental Features - -This defines some additional variables and functions, but these are experimental and subject to change at any time. You shouldn't rely on them being available. They're mostly for the use of emoji plugin developers to help decide what to include in future revisions. - -Variables: - -Variable | Description ------------------ | -------------------------------- - $emoji2 | Auxiliary and combining characters - $emoji_skintone | Skin tone modifiers (from Unicode 8.0) - - -#### Skin Tone Variation Selection - -This includes experimental support for the skin tone Variation Selectors introduced with Unicode 8.0, which let you select different skin tones for emoji involving humans. - -NOTE: This really is experimental. The skin tone selectors are a relatively new feature and may not be supported by all systems. And the support in this plugin is a work in progress. It may not work in all places. In fact, I haven't gotten it to work anywhere yet. -apjanke - -The "variation selectors" are combining characters which change the appearance of the preceding character. A variation selector character can be output immediately following a human emoji to change its skin tone color. You can also output a variation selector on its own to display a color swatch of that skin tone. - -The `$emoji_skintone` associative array maps skin tone IDs to the variation selector characters. To use one, output it immediately following a smiley or other human emoji. - -``` -echo "$emoji[smiling_face_with_open_mouth]$emoji_skintone[4]" -``` - -Note that `$emoji_skintone` is an associative array, and its keys are the *names* of "Fitzpatrick Skin Type" groups, not linear indexes into a normal array. The names are `1_2`, `3`, `4`, `5`, and `6`. (Types 1 and 2 are combined into a single color.) See the [Diversity section in Unicode TR 51](https://www.unicode.org/reports/tr51/index.html#Diversity) for details. - -## TODO - -These are things that could be enhanced in future revisions of the plugin. - -* Incorporate CLDR data for ordering and groupings -* Short :bracket: style names (from gemoji) -* Incorporate `gemoji` data -* Country codes for flags -* ZWJ combining function? - -#### Gemoji support - -The [gemoji project](https://github.com/github/gemoji) seems to be the de facto main source for short names and other emoji-related metadata that isn't included in the official Unicode reports. (I'm saying this just from looking at the google results for "emoji short names" and related searches. -apjanke) - -If this plugin is updated to provide short names, CLDR sorting data, and similar stuff, it should probably be changed to use the Gemoji project, and the `update_emoji.pl` script be rewritten in Ruby so it can use the Gemoji library directly instead of parsing its data files. - -This does *not* mean that it should use Gemoji at run time. None of the `zsh` plugin stuff should call Gemoji or Ruby code. Rather, the "build time" `update_emoji.pl` script should be rewritten to use Gemoji to generate a pure-native-`zsh` character definition file which would be checked in to the repo and can be called by OMZ users without having Gemoji installed. - -#### ZWJ combining function - -One of the newer features of Unicode emoji is the ability to use the "Zero-Width Joiner" character to compose multiple emoji characters in to a single "emoji ligature" glyph. For example, this is [how Apple supports "family" emoji with various genders and skin tones](https://www.unicode.org/reports/tr51/index.html#ZWJ_Sequences). - -These are a pain to write out (and probably worse to read), and it might be convenient to have a couple functions for concisely composing them, if wider support for them appears. diff --git a/zsh/.oh-my-zsh/plugins/emoji/emoji-char-definitions.zsh b/zsh/.oh-my-zsh/plugins/emoji/emoji-char-definitions.zsh deleted file mode 100644 index 04693da..0000000 --- a/zsh/.oh-my-zsh/plugins/emoji/emoji-char-definitions.zsh +++ /dev/null @@ -1,1303 +0,0 @@ - -# emoji-char-definitions.zsh - Emoji character definitions for oh-my-zsh emoji plugin -# -# This file is auto-generated by update_emoji.pl. Do not edit it manually. -# -# This contains the definition for: -# $emoji - which maps character names to Unicode characters -# $emoji_flags - maps country names to Unicode flag characters using region indicators - -# Main emoji -typeset -gAH emoji -# National flags -typeset -gAH emoji_flags -# Combining modifiers -typeset -gAH emoji_mod - -emoji[copyright_sign]=$'\U00A9' -emoji[registered_sign]=$'\U00AE' -emoji[double_exclamation_mark]=$'\U203C' -emoji[exclamation_question_mark]=$'\U2049' -emoji[trade_mark_sign]=$'\U2122' -emoji[information_source]=$'\U2139' -emoji[left_right_arrow]=$'\U2194' -emoji[up_down_arrow]=$'\U2195' -emoji[north_west_arrow]=$'\U2196' -emoji[north_east_arrow]=$'\U2197' -emoji[south_east_arrow]=$'\U2198' -emoji[south_west_arrow]=$'\U2199' -emoji[leftwards_arrow_with_hook]=$'\U21A9' -emoji[rightwards_arrow_with_hook]=$'\U21AA' -emoji[watch]=$'\U231A' -emoji[hourglass]=$'\U231B' -emoji[keyboard]=$'\U2328' -emoji[eject_symbol]=$'\U23CF' -emoji[black_right_pointing_double_triangle]=$'\U23E9' -emoji[black_left_pointing_double_triangle]=$'\U23EA' -emoji[black_up_pointing_double_triangle]=$'\U23EB' -emoji[black_down_pointing_double_triangle]=$'\U23EC' -emoji[black_right_pointing_double_triangle_with_vertical_bar]=$'\U23ED' -emoji[black_left_pointing_double_triangle_with_vertical_bar]=$'\U23EE' -emoji[black_right_pointing_triangle_with_double_vertical_bar]=$'\U23EF' -emoji[alarm_clock]=$'\U23F0' -emoji[stopwatch]=$'\U23F1' -emoji[timer_clock]=$'\U23F2' -emoji[hourglass_with_flowing_sand]=$'\U23F3' -emoji[double_vertical_bar]=$'\U23F8' -emoji[black_square_for_stop]=$'\U23F9' -emoji[black_circle_for_record]=$'\U23FA' -emoji[circled_latin_capital_letter_m]=$'\U24C2' -emoji[black_small_square]=$'\U25AA' -emoji[white_small_square]=$'\U25AB' -emoji[black_right_pointing_triangle]=$'\U25B6' -emoji[black_left_pointing_triangle]=$'\U25C0' -emoji[white_medium_square]=$'\U25FB' -emoji[black_medium_square]=$'\U25FC' -emoji[white_medium_small_square]=$'\U25FD' -emoji[black_medium_small_square]=$'\U25FE' -emoji[black_sun_with_rays]=$'\U2600' -emoji[cloud]=$'\U2601' -emoji[umbrella]=$'\U2602' -emoji[snowman]=$'\U2603' -emoji[comet]=$'\U2604' -emoji[black_telephone]=$'\U260E' -emoji[ballot_box_with_check]=$'\U2611' -emoji[umbrella_with_rain_drops]=$'\U2614' -emoji[hot_beverage]=$'\U2615' -emoji[shamrock]=$'\U2618' -emoji[white_up_pointing_index]=$'\U261D' -emoji[skull_and_crossbones]=$'\U2620' -emoji[radioactive_sign]=$'\U2622' -emoji[biohazard_sign]=$'\U2623' -emoji[orthodox_cross]=$'\U2626' -emoji[star_and_crescent]=$'\U262A' -emoji[peace_symbol]=$'\U262E' -emoji[yin_yang]=$'\U262F' -emoji[wheel_of_dharma]=$'\U2638' -emoji[white_frowning_face]=$'\U2639' -emoji[white_smiling_face]=$'\U263A' -emoji[aries]=$'\U2648' -emoji[taurus]=$'\U2649' -emoji[gemini]=$'\U264A' -emoji[cancer]=$'\U264B' -emoji[leo]=$'\U264C' -emoji[virgo]=$'\U264D' -emoji[libra]=$'\U264E' -emoji[scorpius]=$'\U264F' -emoji[sagittarius]=$'\U2650' -emoji[capricorn]=$'\U2651' -emoji[aquarius]=$'\U2652' -emoji[pisces]=$'\U2653' -emoji[black_spade_suit]=$'\U2660' -emoji[black_club_suit]=$'\U2663' -emoji[black_heart_suit]=$'\U2665' -emoji[black_diamond_suit]=$'\U2666' -emoji[hot_springs]=$'\U2668' -emoji[black_universal_recycling_symbol]=$'\U267B' -emoji[wheelchair_symbol]=$'\U267F' -emoji[hammer_and_pick]=$'\U2692' -emoji[anchor]=$'\U2693' -emoji[crossed_swords]=$'\U2694' -emoji[scales]=$'\U2696' -emoji[alembic]=$'\U2697' -emoji[gear]=$'\U2699' -emoji[atom_symbol]=$'\U269B' -emoji[fleur_de_lis]=$'\U269C' -emoji[warning_sign]=$'\U26A0' -emoji[high_voltage_sign]=$'\U26A1' -emoji[medium_white_circle]=$'\U26AA' -emoji[medium_black_circle]=$'\U26AB' -emoji[coffin]=$'\U26B0' -emoji[funeral_urn]=$'\U26B1' -emoji[soccer_ball]=$'\U26BD' -emoji[baseball]=$'\U26BE' -emoji[snowman_without_snow]=$'\U26C4' -emoji[sun_behind_cloud]=$'\U26C5' -emoji[thunder_cloud_and_rain]=$'\U26C8' -emoji[ophiuchus]=$'\U26CE' -emoji[pick]=$'\U26CF' -emoji[helmet_with_white_cross]=$'\U26D1' -emoji[chains]=$'\U26D3' -emoji[no_entry]=$'\U26D4' -emoji[shinto_shrine]=$'\U26E9' -emoji[church]=$'\U26EA' -emoji[mountain]=$'\U26F0' -emoji[umbrella_on_ground]=$'\U26F1' -emoji[fountain]=$'\U26F2' -emoji[flag_in_hole]=$'\U26F3' -emoji[ferry]=$'\U26F4' -emoji[sailboat]=$'\U26F5' -emoji[skier]=$'\U26F7' -emoji[ice_skate]=$'\U26F8' -emoji[person_with_ball]=$'\U26F9' -emoji[tent]=$'\U26FA' -emoji[fuel_pump]=$'\U26FD' -emoji[black_scissors]=$'\U2702' -emoji[white_heavy_check_mark]=$'\U2705' -emoji[airplane]=$'\U2708' -emoji[envelope]=$'\U2709' -emoji[raised_fist]=$'\U270A' -emoji[raised_hand]=$'\U270B' -emoji[victory_hand]=$'\U270C' -emoji[writing_hand]=$'\U270D' -emoji[pencil]=$'\U270F' -emoji[black_nib]=$'\U2712' -emoji[heavy_check_mark]=$'\U2714' -emoji[heavy_multiplication_x]=$'\U2716' -emoji[latin_cross]=$'\U271D' -emoji[star_of_david]=$'\U2721' -emoji[sparkles]=$'\U2728' -emoji[eight_spoked_asterisk]=$'\U2733' -emoji[eight_pointed_black_star]=$'\U2734' -emoji[snowflake]=$'\U2744' -emoji[sparkle]=$'\U2747' -emoji[cross_mark]=$'\U274C' -emoji[negative_squared_cross_mark]=$'\U274E' -emoji[black_question_mark_ornament]=$'\U2753' -emoji[white_question_mark_ornament]=$'\U2754' -emoji[white_exclamation_mark_ornament]=$'\U2755' -emoji[heavy_exclamation_mark_symbol]=$'\U2757' -emoji[heavy_heart_exclamation_mark_ornament]=$'\U2763' -emoji[heavy_black_heart]=$'\U2764' -emoji[heavy_plus_sign]=$'\U2795' -emoji[heavy_minus_sign]=$'\U2796' -emoji[heavy_division_sign]=$'\U2797' -emoji[black_rightwards_arrow]=$'\U27A1' -emoji[curly_loop]=$'\U27B0' -emoji[double_curly_loop]=$'\U27BF' -emoji[arrow_pointing_rightwards_then_curving_upwards]=$'\U2934' -emoji[arrow_pointing_rightwards_then_curving_downwards]=$'\U2935' -emoji[leftwards_black_arrow]=$'\U2B05' -emoji[upwards_black_arrow]=$'\U2B06' -emoji[downwards_black_arrow]=$'\U2B07' -emoji[black_large_square]=$'\U2B1B' -emoji[white_large_square]=$'\U2B1C' -emoji[white_medium_star]=$'\U2B50' -emoji[heavy_large_circle]=$'\U2B55' -emoji[wavy_dash]=$'\U3030' -emoji[part_alternation_mark]=$'\U303D' -emoji[circled_ideograph_congratulation]=$'\U3297' -emoji[circled_ideograph_secret]=$'\U3299' -emoji[mahjong_tile_red_dragon]=$'\U1F004' -emoji[playing_card_black_joker]=$'\U1F0CF' -emoji[negative_squared_latin_capital_letter_a]=$'\U1F170' -emoji[negative_squared_latin_capital_letter_b]=$'\U1F171' -emoji[negative_squared_latin_capital_letter_o]=$'\U1F17E' -emoji[negative_squared_latin_capital_letter_p]=$'\U1F17F' -emoji[negative_squared_ab]=$'\U1F18E' -emoji[squared_cl]=$'\U1F191' -emoji[squared_cool]=$'\U1F192' -emoji[squared_free]=$'\U1F193' -emoji[squared_id]=$'\U1F194' -emoji[squared_new]=$'\U1F195' -emoji[squared_ng]=$'\U1F196' -emoji[squared_ok]=$'\U1F197' -emoji[squared_sos]=$'\U1F198' -emoji[squared_up_with_exclamation_mark]=$'\U1F199' -emoji[squared_vs]=$'\U1F19A' -emoji[squared_katakana_koko]=$'\U1F201' -emoji[squared_katakana_sa]=$'\U1F202' -emoji[squared_cjk_unified_ideograph_7121]=$'\U1F21A' -emoji[squared_cjk_unified_ideograph_6307]=$'\U1F22F' -emoji[squared_cjk_unified_ideograph_7981]=$'\U1F232' -emoji[squared_cjk_unified_ideograph_7a7a]=$'\U1F233' -emoji[squared_cjk_unified_ideograph_5408]=$'\U1F234' -emoji[squared_cjk_unified_ideograph_6e80]=$'\U1F235' -emoji[squared_cjk_unified_ideograph_6709]=$'\U1F236' -emoji[squared_cjk_unified_ideograph_6708]=$'\U1F237' -emoji[squared_cjk_unified_ideograph_7533]=$'\U1F238' -emoji[squared_cjk_unified_ideograph_5272]=$'\U1F239' -emoji[squared_cjk_unified_ideograph_55b6]=$'\U1F23A' -emoji[circled_ideograph_advantage]=$'\U1F250' -emoji[circled_ideograph_accept]=$'\U1F251' -emoji[cyclone]=$'\U1F300' -emoji[foggy]=$'\U1F301' -emoji[closed_umbrella]=$'\U1F302' -emoji[night_with_stars]=$'\U1F303' -emoji[sunrise_over_mountains]=$'\U1F304' -emoji[sunrise]=$'\U1F305' -emoji[cityscape_at_dusk]=$'\U1F306' -emoji[sunset_over_buildings]=$'\U1F307' -emoji[rainbow]=$'\U1F308' -emoji[bridge_at_night]=$'\U1F309' -emoji[water_wave]=$'\U1F30A' -emoji[volcano]=$'\U1F30B' -emoji[milky_way]=$'\U1F30C' -emoji[earth_globe_europe_africa]=$'\U1F30D' -emoji[earth_globe_americas]=$'\U1F30E' -emoji[earth_globe_asia_australia]=$'\U1F30F' -emoji[globe_with_meridians]=$'\U1F310' -emoji[new_moon_symbol]=$'\U1F311' -emoji[waxing_crescent_moon_symbol]=$'\U1F312' -emoji[first_quarter_moon_symbol]=$'\U1F313' -emoji[waxing_gibbous_moon_symbol]=$'\U1F314' -emoji[full_moon_symbol]=$'\U1F315' -emoji[waning_gibbous_moon_symbol]=$'\U1F316' -emoji[last_quarter_moon_symbol]=$'\U1F317' -emoji[waning_crescent_moon_symbol]=$'\U1F318' -emoji[crescent_moon]=$'\U1F319' -emoji[new_moon_with_face]=$'\U1F31A' -emoji[first_quarter_moon_with_face]=$'\U1F31B' -emoji[last_quarter_moon_with_face]=$'\U1F31C' -emoji[full_moon_with_face]=$'\U1F31D' -emoji[sun_with_face]=$'\U1F31E' -emoji[glowing_star]=$'\U1F31F' -emoji[shooting_star]=$'\U1F320' -emoji[thermometer]=$'\U1F321' -emoji[white_sun_with_small_cloud]=$'\U1F324' -emoji[white_sun_behind_cloud]=$'\U1F325' -emoji[white_sun_behind_cloud_with_rain]=$'\U1F326' -emoji[cloud_with_rain]=$'\U1F327' -emoji[cloud_with_snow]=$'\U1F328' -emoji[cloud_with_lightning]=$'\U1F329' -emoji[cloud_with_tornado]=$'\U1F32A' -emoji[fog]=$'\U1F32B' -emoji[wind_blowing_face]=$'\U1F32C' -emoji[hot_dog]=$'\U1F32D' -emoji[taco]=$'\U1F32E' -emoji[burrito]=$'\U1F32F' -emoji[chestnut]=$'\U1F330' -emoji[seedling]=$'\U1F331' -emoji[evergreen_tree]=$'\U1F332' -emoji[deciduous_tree]=$'\U1F333' -emoji[palm_tree]=$'\U1F334' -emoji[cactus]=$'\U1F335' -emoji[hot_pepper]=$'\U1F336' -emoji[tulip]=$'\U1F337' -emoji[cherry_blossom]=$'\U1F338' -emoji[rose]=$'\U1F339' -emoji[hibiscus]=$'\U1F33A' -emoji[sunflower]=$'\U1F33B' -emoji[blossom]=$'\U1F33C' -emoji[ear_of_maize]=$'\U1F33D' -emoji[ear_of_rice]=$'\U1F33E' -emoji[herb]=$'\U1F33F' -emoji[four_leaf_clover]=$'\U1F340' -emoji[maple_leaf]=$'\U1F341' -emoji[fallen_leaf]=$'\U1F342' -emoji[leaf_fluttering_in_wind]=$'\U1F343' -emoji[mushroom]=$'\U1F344' -emoji[tomato]=$'\U1F345' -emoji[aubergine]=$'\U1F346' -emoji[grapes]=$'\U1F347' -emoji[melon]=$'\U1F348' -emoji[watermelon]=$'\U1F349' -emoji[tangerine]=$'\U1F34A' -emoji[lemon]=$'\U1F34B' -emoji[banana]=$'\U1F34C' -emoji[pineapple]=$'\U1F34D' -emoji[red_apple]=$'\U1F34E' -emoji[green_apple]=$'\U1F34F' -emoji[pear]=$'\U1F350' -emoji[peach]=$'\U1F351' -emoji[cherries]=$'\U1F352' -emoji[strawberry]=$'\U1F353' -emoji[hamburger]=$'\U1F354' -emoji[slice_of_pizza]=$'\U1F355' -emoji[meat_on_bone]=$'\U1F356' -emoji[poultry_leg]=$'\U1F357' -emoji[rice_cracker]=$'\U1F358' -emoji[rice_ball]=$'\U1F359' -emoji[cooked_rice]=$'\U1F35A' -emoji[curry_and_rice]=$'\U1F35B' -emoji[steaming_bowl]=$'\U1F35C' -emoji[spaghetti]=$'\U1F35D' -emoji[bread]=$'\U1F35E' -emoji[french_fries]=$'\U1F35F' -emoji[roasted_sweet_potato]=$'\U1F360' -emoji[dango]=$'\U1F361' -emoji[oden]=$'\U1F362' -emoji[sushi]=$'\U1F363' -emoji[fried_shrimp]=$'\U1F364' -emoji[fish_cake_with_swirl_design]=$'\U1F365' -emoji[soft_ice_cream]=$'\U1F366' -emoji[shaved_ice]=$'\U1F367' -emoji[ice_cream]=$'\U1F368' -emoji[doughnut]=$'\U1F369' -emoji[cookie]=$'\U1F36A' -emoji[chocolate_bar]=$'\U1F36B' -emoji[candy]=$'\U1F36C' -emoji[lollipop]=$'\U1F36D' -emoji[custard]=$'\U1F36E' -emoji[honey_pot]=$'\U1F36F' -emoji[shortcake]=$'\U1F370' -emoji[bento_box]=$'\U1F371' -emoji[pot_of_food]=$'\U1F372' -emoji[cooking]=$'\U1F373' -emoji[fork_and_knife]=$'\U1F374' -emoji[teacup_without_handle]=$'\U1F375' -emoji[sake_bottle_and_cup]=$'\U1F376' -emoji[wine_glass]=$'\U1F377' -emoji[cocktail_glass]=$'\U1F378' -emoji[tropical_drink]=$'\U1F379' -emoji[beer_mug]=$'\U1F37A' -emoji[clinking_beer_mugs]=$'\U1F37B' -emoji[baby_bottle]=$'\U1F37C' -emoji[fork_and_knife_with_plate]=$'\U1F37D' -emoji[bottle_with_popping_cork]=$'\U1F37E' -emoji[popcorn]=$'\U1F37F' -emoji[ribbon]=$'\U1F380' -emoji[wrapped_present]=$'\U1F381' -emoji[birthday_cake]=$'\U1F382' -emoji[jack_o_lantern]=$'\U1F383' -emoji[christmas_tree]=$'\U1F384' -emoji[father_christmas]=$'\U1F385' -emoji[fireworks]=$'\U1F386' -emoji[firework_sparkler]=$'\U1F387' -emoji[balloon]=$'\U1F388' -emoji[party_popper]=$'\U1F389' -emoji[confetti_ball]=$'\U1F38A' -emoji[tanabata_tree]=$'\U1F38B' -emoji[crossed_flags]=$'\U1F38C' -emoji[pine_decoration]=$'\U1F38D' -emoji[japanese_dolls]=$'\U1F38E' -emoji[carp_streamer]=$'\U1F38F' -emoji[wind_chime]=$'\U1F390' -emoji[moon_viewing_ceremony]=$'\U1F391' -emoji[school_satchel]=$'\U1F392' -emoji[graduation_cap]=$'\U1F393' -emoji[military_medal]=$'\U1F396' -emoji[reminder_ribbon]=$'\U1F397' -emoji[studio_microphone]=$'\U1F399' -emoji[level_slider]=$'\U1F39A' -emoji[control_knobs]=$'\U1F39B' -emoji[film_frames]=$'\U1F39E' -emoji[admission_tickets]=$'\U1F39F' -emoji[carousel_horse]=$'\U1F3A0' -emoji[ferris_wheel]=$'\U1F3A1' -emoji[roller_coaster]=$'\U1F3A2' -emoji[fishing_pole_and_fish]=$'\U1F3A3' -emoji[microphone]=$'\U1F3A4' -emoji[movie_camera]=$'\U1F3A5' -emoji[cinema]=$'\U1F3A6' -emoji[headphone]=$'\U1F3A7' -emoji[artist_palette]=$'\U1F3A8' -emoji[top_hat]=$'\U1F3A9' -emoji[circus_tent]=$'\U1F3AA' -emoji[ticket]=$'\U1F3AB' -emoji[clapper_board]=$'\U1F3AC' -emoji[performing_arts]=$'\U1F3AD' -emoji[video_game]=$'\U1F3AE' -emoji[direct_hit]=$'\U1F3AF' -emoji[slot_machine]=$'\U1F3B0' -emoji[billiards]=$'\U1F3B1' -emoji[game_die]=$'\U1F3B2' -emoji[bowling]=$'\U1F3B3' -emoji[flower_playing_cards]=$'\U1F3B4' -emoji[musical_note]=$'\U1F3B5' -emoji[multiple_musical_notes]=$'\U1F3B6' -emoji[saxophone]=$'\U1F3B7' -emoji[guitar]=$'\U1F3B8' -emoji[musical_keyboard]=$'\U1F3B9' -emoji[trumpet]=$'\U1F3BA' -emoji[violin]=$'\U1F3BB' -emoji[musical_score]=$'\U1F3BC' -emoji[running_shirt_with_sash]=$'\U1F3BD' -emoji[tennis_racquet_and_ball]=$'\U1F3BE' -emoji[ski_and_ski_boot]=$'\U1F3BF' -emoji[basketball_and_hoop]=$'\U1F3C0' -emoji[chequered_flag]=$'\U1F3C1' -emoji[snowboarder]=$'\U1F3C2' -emoji[runner]=$'\U1F3C3' -emoji[surfer]=$'\U1F3C4' -emoji[sports_medal]=$'\U1F3C5' -emoji[trophy]=$'\U1F3C6' -emoji[horse_racing]=$'\U1F3C7' -emoji[american_football]=$'\U1F3C8' -emoji[rugby_football]=$'\U1F3C9' -emoji[swimmer]=$'\U1F3CA' -emoji[weight_lifter]=$'\U1F3CB' -emoji[golfer]=$'\U1F3CC' -emoji[racing_motorcycle]=$'\U1F3CD' -emoji[racing_car]=$'\U1F3CE' -emoji[cricket_bat_and_ball]=$'\U1F3CF' -emoji[volleyball]=$'\U1F3D0' -emoji[field_hockey_stick_and_ball]=$'\U1F3D1' -emoji[ice_hockey_stick_and_puck]=$'\U1F3D2' -emoji[table_tennis_paddle_and_ball]=$'\U1F3D3' -emoji[snow_capped_mountain]=$'\U1F3D4' -emoji[camping]=$'\U1F3D5' -emoji[beach_with_umbrella]=$'\U1F3D6' -emoji[building_construction]=$'\U1F3D7' -emoji[house_buildings]=$'\U1F3D8' -emoji[cityscape]=$'\U1F3D9' -emoji[derelict_house_building]=$'\U1F3DA' -emoji[classical_building]=$'\U1F3DB' -emoji[desert]=$'\U1F3DC' -emoji[desert_island]=$'\U1F3DD' -emoji[national_park]=$'\U1F3DE' -emoji[stadium]=$'\U1F3DF' -emoji[house_building]=$'\U1F3E0' -emoji[house_with_garden]=$'\U1F3E1' -emoji[office_building]=$'\U1F3E2' -emoji[japanese_post_office]=$'\U1F3E3' -emoji[european_post_office]=$'\U1F3E4' -emoji[hospital]=$'\U1F3E5' -emoji[bank]=$'\U1F3E6' -emoji[automated_teller_machine]=$'\U1F3E7' -emoji[hotel]=$'\U1F3E8' -emoji[love_hotel]=$'\U1F3E9' -emoji[convenience_store]=$'\U1F3EA' -emoji[school]=$'\U1F3EB' -emoji[department_store]=$'\U1F3EC' -emoji[factory]=$'\U1F3ED' -emoji[izakaya_lantern]=$'\U1F3EE' -emoji[japanese_castle]=$'\U1F3EF' -emoji[european_castle]=$'\U1F3F0' -emoji[waving_white_flag]=$'\U1F3F3' -emoji[waving_black_flag]=$'\U1F3F4' -emoji[rosette]=$'\U1F3F5' -emoji[label]=$'\U1F3F7' -emoji[badminton_racquet_and_shuttlecock]=$'\U1F3F8' -emoji[bow_and_arrow]=$'\U1F3F9' -emoji[amphora]=$'\U1F3FA' -emoji[emoji_modifier_fitzpatrick_type_1_2]=$'\U1F3FB' -emoji_mod[emoji_modifier_fitzpatrick_type_1_2]=$'\U1F3FB' -emoji[emoji_modifier_fitzpatrick_type_3]=$'\U1F3FC' -emoji_mod[emoji_modifier_fitzpatrick_type_3]=$'\U1F3FC' -emoji[emoji_modifier_fitzpatrick_type_4]=$'\U1F3FD' -emoji_mod[emoji_modifier_fitzpatrick_type_4]=$'\U1F3FD' -emoji[emoji_modifier_fitzpatrick_type_5]=$'\U1F3FE' -emoji_mod[emoji_modifier_fitzpatrick_type_5]=$'\U1F3FE' -emoji[emoji_modifier_fitzpatrick_type_6]=$'\U1F3FF' -emoji_mod[emoji_modifier_fitzpatrick_type_6]=$'\U1F3FF' -emoji[rat]=$'\U1F400' -emoji[mouse]=$'\U1F401' -emoji[ox]=$'\U1F402' -emoji[water_buffalo]=$'\U1F403' -emoji[cow]=$'\U1F404' -emoji[tiger]=$'\U1F405' -emoji[leopard]=$'\U1F406' -emoji[rabbit]=$'\U1F407' -emoji[cat]=$'\U1F408' -emoji[dragon]=$'\U1F409' -emoji[crocodile]=$'\U1F40A' -emoji[whale]=$'\U1F40B' -emoji[snail]=$'\U1F40C' -emoji[snake]=$'\U1F40D' -emoji[horse]=$'\U1F40E' -emoji[ram]=$'\U1F40F' -emoji[goat]=$'\U1F410' -emoji[sheep]=$'\U1F411' -emoji[monkey]=$'\U1F412' -emoji[rooster]=$'\U1F413' -emoji[chicken]=$'\U1F414' -emoji[dog]=$'\U1F415' -emoji[pig]=$'\U1F416' -emoji[boar]=$'\U1F417' -emoji[elephant]=$'\U1F418' -emoji[octopus]=$'\U1F419' -emoji[spiral_shell]=$'\U1F41A' -emoji[bug]=$'\U1F41B' -emoji[ant]=$'\U1F41C' -emoji[honeybee]=$'\U1F41D' -emoji[lady_beetle]=$'\U1F41E' -emoji[fish]=$'\U1F41F' -emoji[tropical_fish]=$'\U1F420' -emoji[blowfish]=$'\U1F421' -emoji[turtle]=$'\U1F422' -emoji[hatching_chick]=$'\U1F423' -emoji[baby_chick]=$'\U1F424' -emoji[front_facing_baby_chick]=$'\U1F425' -emoji[bird]=$'\U1F426' -emoji[penguin]=$'\U1F427' -emoji[koala]=$'\U1F428' -emoji[poodle]=$'\U1F429' -emoji[dromedary_camel]=$'\U1F42A' -emoji[bactrian_camel]=$'\U1F42B' -emoji[dolphin]=$'\U1F42C' -emoji[mouse_face]=$'\U1F42D' -emoji[cow_face]=$'\U1F42E' -emoji[tiger_face]=$'\U1F42F' -emoji[rabbit_face]=$'\U1F430' -emoji[cat_face]=$'\U1F431' -emoji[dragon_face]=$'\U1F432' -emoji[spouting_whale]=$'\U1F433' -emoji[horse_face]=$'\U1F434' -emoji[monkey_face]=$'\U1F435' -emoji[dog_face]=$'\U1F436' -emoji[pig_face]=$'\U1F437' -emoji[frog_face]=$'\U1F438' -emoji[hamster_face]=$'\U1F439' -emoji[wolf_face]=$'\U1F43A' -emoji[bear_face]=$'\U1F43B' -emoji[panda_face]=$'\U1F43C' -emoji[pig_nose]=$'\U1F43D' -emoji[paw_prints]=$'\U1F43E' -emoji[chipmunk]=$'\U1F43F' -emoji[eyes]=$'\U1F440' -emoji[eye]=$'\U1F441' -emoji[ear]=$'\U1F442' -emoji[nose]=$'\U1F443' -emoji[mouth]=$'\U1F444' -emoji[tongue]=$'\U1F445' -emoji[white_up_pointing_backhand_index]=$'\U1F446' -emoji[white_down_pointing_backhand_index]=$'\U1F447' -emoji[white_left_pointing_backhand_index]=$'\U1F448' -emoji[white_right_pointing_backhand_index]=$'\U1F449' -emoji[fisted_hand_sign]=$'\U1F44A' -emoji[waving_hand_sign]=$'\U1F44B' -emoji[ok_hand_sign]=$'\U1F44C' -emoji[thumbs_up_sign]=$'\U1F44D' -emoji[thumbs_down_sign]=$'\U1F44E' -emoji[clapping_hands_sign]=$'\U1F44F' -emoji[open_hands_sign]=$'\U1F450' -emoji[crown]=$'\U1F451' -emoji[womans_hat]=$'\U1F452' -emoji[eyeglasses]=$'\U1F453' -emoji[necktie]=$'\U1F454' -emoji[t_shirt]=$'\U1F455' -emoji[jeans]=$'\U1F456' -emoji[dress]=$'\U1F457' -emoji[kimono]=$'\U1F458' -emoji[bikini]=$'\U1F459' -emoji[womans_clothes]=$'\U1F45A' -emoji[purse]=$'\U1F45B' -emoji[handbag]=$'\U1F45C' -emoji[pouch]=$'\U1F45D' -emoji[mans_shoe]=$'\U1F45E' -emoji[athletic_shoe]=$'\U1F45F' -emoji[high_heeled_shoe]=$'\U1F460' -emoji[womans_sandal]=$'\U1F461' -emoji[womans_boots]=$'\U1F462' -emoji[footprints]=$'\U1F463' -emoji[bust_in_silhouette]=$'\U1F464' -emoji[busts_in_silhouette]=$'\U1F465' -emoji[boy]=$'\U1F466' -emoji[girl]=$'\U1F467' -emoji[man]=$'\U1F468' -emoji[woman]=$'\U1F469' -emoji[family]=$'\U1F46A' -emoji[man_and_woman_holding_hands]=$'\U1F46B' -emoji[two_men_holding_hands]=$'\U1F46C' -emoji[two_women_holding_hands]=$'\U1F46D' -emoji[police_officer]=$'\U1F46E' -emoji[woman_with_bunny_ears]=$'\U1F46F' -emoji[bride_with_veil]=$'\U1F470' -emoji[person_with_blond_hair]=$'\U1F471' -emoji[man_with_gua_pi_mao]=$'\U1F472' -emoji[man_with_turban]=$'\U1F473' -emoji[older_man]=$'\U1F474' -emoji[older_woman]=$'\U1F475' -emoji[baby]=$'\U1F476' -emoji[construction_worker]=$'\U1F477' -emoji[princess]=$'\U1F478' -emoji[japanese_ogre]=$'\U1F479' -emoji[japanese_goblin]=$'\U1F47A' -emoji[ghost]=$'\U1F47B' -emoji[baby_angel]=$'\U1F47C' -emoji[extraterrestrial_alien]=$'\U1F47D' -emoji[alien_monster]=$'\U1F47E' -emoji[imp]=$'\U1F47F' -emoji[skull]=$'\U1F480' -emoji[information_desk_person]=$'\U1F481' -emoji[guardsman]=$'\U1F482' -emoji[dancer]=$'\U1F483' -emoji[lipstick]=$'\U1F484' -emoji[nail_polish]=$'\U1F485' -emoji[face_massage]=$'\U1F486' -emoji[haircut]=$'\U1F487' -emoji[barber_pole]=$'\U1F488' -emoji[syringe]=$'\U1F489' -emoji[pill]=$'\U1F48A' -emoji[kiss_mark]=$'\U1F48B' -emoji[love_letter]=$'\U1F48C' -emoji[ring]=$'\U1F48D' -emoji[gem_stone]=$'\U1F48E' -emoji[kiss]=$'\U1F48F' -emoji[bouquet]=$'\U1F490' -emoji[couple_with_heart]=$'\U1F491' -emoji[wedding]=$'\U1F492' -emoji[beating_heart]=$'\U1F493' -emoji[broken_heart]=$'\U1F494' -emoji[two_hearts]=$'\U1F495' -emoji[sparkling_heart]=$'\U1F496' -emoji[growing_heart]=$'\U1F497' -emoji[heart_with_arrow]=$'\U1F498' -emoji[blue_heart]=$'\U1F499' -emoji[green_heart]=$'\U1F49A' -emoji[yellow_heart]=$'\U1F49B' -emoji[purple_heart]=$'\U1F49C' -emoji[heart_with_ribbon]=$'\U1F49D' -emoji[revolving_hearts]=$'\U1F49E' -emoji[heart_decoration]=$'\U1F49F' -emoji[diamond_shape_with_a_dot_inside]=$'\U1F4A0' -emoji[electric_light_bulb]=$'\U1F4A1' -emoji[anger_symbol]=$'\U1F4A2' -emoji[bomb]=$'\U1F4A3' -emoji[sleeping_symbol]=$'\U1F4A4' -emoji[collision_symbol]=$'\U1F4A5' -emoji[splashing_sweat_symbol]=$'\U1F4A6' -emoji[droplet]=$'\U1F4A7' -emoji[dash_symbol]=$'\U1F4A8' -emoji[pile_of_poo]=$'\U1F4A9' -emoji[flexed_biceps]=$'\U1F4AA' -emoji[dizzy_symbol]=$'\U1F4AB' -emoji[speech_balloon]=$'\U1F4AC' -emoji[thought_balloon]=$'\U1F4AD' -emoji[white_flower]=$'\U1F4AE' -emoji[hundred_points_symbol]=$'\U1F4AF' -emoji[money_bag]=$'\U1F4B0' -emoji[currency_exchange]=$'\U1F4B1' -emoji[heavy_dollar_sign]=$'\U1F4B2' -emoji[credit_card]=$'\U1F4B3' -emoji[banknote_with_yen_sign]=$'\U1F4B4' -emoji[banknote_with_dollar_sign]=$'\U1F4B5' -emoji[banknote_with_euro_sign]=$'\U1F4B6' -emoji[banknote_with_pound_sign]=$'\U1F4B7' -emoji[money_with_wings]=$'\U1F4B8' -emoji[chart_with_upwards_trend_and_yen_sign]=$'\U1F4B9' -emoji[seat]=$'\U1F4BA' -emoji[personal_computer]=$'\U1F4BB' -emoji[briefcase]=$'\U1F4BC' -emoji[minidisc]=$'\U1F4BD' -emoji[floppy_disk]=$'\U1F4BE' -emoji[optical_disc]=$'\U1F4BF' -emoji[dvd]=$'\U1F4C0' -emoji[file_folder]=$'\U1F4C1' -emoji[open_file_folder]=$'\U1F4C2' -emoji[page_with_curl]=$'\U1F4C3' -emoji[page_facing_up]=$'\U1F4C4' -emoji[calendar]=$'\U1F4C5' -emoji[tear_off_calendar]=$'\U1F4C6' -emoji[card_index]=$'\U1F4C7' -emoji[chart_with_upwards_trend]=$'\U1F4C8' -emoji[chart_with_downwards_trend]=$'\U1F4C9' -emoji[bar_chart]=$'\U1F4CA' -emoji[clipboard]=$'\U1F4CB' -emoji[pushpin]=$'\U1F4CC' -emoji[round_pushpin]=$'\U1F4CD' -emoji[paperclip]=$'\U1F4CE' -emoji[straight_ruler]=$'\U1F4CF' -emoji[triangular_ruler]=$'\U1F4D0' -emoji[bookmark_tabs]=$'\U1F4D1' -emoji[ledger]=$'\U1F4D2' -emoji[notebook]=$'\U1F4D3' -emoji[notebook_with_decorative_cover]=$'\U1F4D4' -emoji[closed_book]=$'\U1F4D5' -emoji[open_book]=$'\U1F4D6' -emoji[green_book]=$'\U1F4D7' -emoji[blue_book]=$'\U1F4D8' -emoji[orange_book]=$'\U1F4D9' -emoji[books]=$'\U1F4DA' -emoji[name_badge]=$'\U1F4DB' -emoji[scroll]=$'\U1F4DC' -emoji[memo]=$'\U1F4DD' -emoji[telephone_receiver]=$'\U1F4DE' -emoji[pager]=$'\U1F4DF' -emoji[fax_machine]=$'\U1F4E0' -emoji[satellite_antenna]=$'\U1F4E1' -emoji[public_address_loudspeaker]=$'\U1F4E2' -emoji[cheering_megaphone]=$'\U1F4E3' -emoji[outbox_tray]=$'\U1F4E4' -emoji[inbox_tray]=$'\U1F4E5' -emoji[package]=$'\U1F4E6' -emoji[e_mail_symbol]=$'\U1F4E7' -emoji[incoming_envelope]=$'\U1F4E8' -emoji[envelope_with_downwards_arrow_above]=$'\U1F4E9' -emoji[closed_mailbox_with_lowered_flag]=$'\U1F4EA' -emoji[closed_mailbox_with_raised_flag]=$'\U1F4EB' -emoji[open_mailbox_with_raised_flag]=$'\U1F4EC' -emoji[open_mailbox_with_lowered_flag]=$'\U1F4ED' -emoji[postbox]=$'\U1F4EE' -emoji[postal_horn]=$'\U1F4EF' -emoji[newspaper]=$'\U1F4F0' -emoji[mobile_phone]=$'\U1F4F1' -emoji[mobile_phone_with_rightwards_arrow_at_left]=$'\U1F4F2' -emoji[vibration_mode]=$'\U1F4F3' -emoji[mobile_phone_off]=$'\U1F4F4' -emoji[no_mobile_phones]=$'\U1F4F5' -emoji[antenna_with_bars]=$'\U1F4F6' -emoji[camera]=$'\U1F4F7' -emoji[camera_with_flash]=$'\U1F4F8' -emoji[video_camera]=$'\U1F4F9' -emoji[television]=$'\U1F4FA' -emoji[radio]=$'\U1F4FB' -emoji[videocassette]=$'\U1F4FC' -emoji[film_projector]=$'\U1F4FD' -emoji[prayer_beads]=$'\U1F4FF' -emoji[twisted_rightwards_arrows]=$'\U1F500' -emoji[clockwise_rightwards_and_leftwards_open_circle_arrows]=$'\U1F501' -emoji[clockwise_rightwards_and_leftwards_open_circle_arrows_with_circled_one_overlay]=$'\U1F502' -emoji[clockwise_downwards_and_upwards_open_circle_arrows]=$'\U1F503' -emoji[anticlockwise_downwards_and_upwards_open_circle_arrows]=$'\U1F504' -emoji[low_brightness_symbol]=$'\U1F505' -emoji[high_brightness_symbol]=$'\U1F506' -emoji[speaker_with_cancellation_stroke]=$'\U1F507' -emoji[speaker]=$'\U1F508' -emoji[speaker_with_one_sound_wave]=$'\U1F509' -emoji[speaker_with_three_sound_waves]=$'\U1F50A' -emoji[battery]=$'\U1F50B' -emoji[electric_plug]=$'\U1F50C' -emoji[left_pointing_magnifying_glass]=$'\U1F50D' -emoji[right_pointing_magnifying_glass]=$'\U1F50E' -emoji[lock_with_ink_pen]=$'\U1F50F' -emoji[closed_lock_with_key]=$'\U1F510' -emoji[key]=$'\U1F511' -emoji[lock]=$'\U1F512' -emoji[open_lock]=$'\U1F513' -emoji[bell]=$'\U1F514' -emoji[bell_with_cancellation_stroke]=$'\U1F515' -emoji[bookmark]=$'\U1F516' -emoji[link_symbol]=$'\U1F517' -emoji[radio_button]=$'\U1F518' -emoji[back_with_leftwards_arrow_above]=$'\U1F519' -emoji[end_with_leftwards_arrow_above]=$'\U1F51A' -emoji[on_with_exclamation_mark_with_left_right_arrow_above]=$'\U1F51B' -emoji[soon_with_rightwards_arrow_above]=$'\U1F51C' -emoji[top_with_upwards_arrow_above]=$'\U1F51D' -emoji[no_one_under_eighteen_symbol]=$'\U1F51E' -emoji[keycap_ten]=$'\U1F51F' -emoji[input_symbol_for_latin_capital_letters]=$'\U1F520' -emoji[input_symbol_for_latin_small_letters]=$'\U1F521' -emoji[input_symbol_for_numbers]=$'\U1F522' -emoji[input_symbol_for_symbols]=$'\U1F523' -emoji[input_symbol_for_latin_letters]=$'\U1F524' -emoji[fire]=$'\U1F525' -emoji[electric_torch]=$'\U1F526' -emoji[wrench]=$'\U1F527' -emoji[hammer]=$'\U1F528' -emoji[nut_and_bolt]=$'\U1F529' -emoji[hocho]=$'\U1F52A' -emoji[pistol]=$'\U1F52B' -emoji[microscope]=$'\U1F52C' -emoji[telescope]=$'\U1F52D' -emoji[crystal_ball]=$'\U1F52E' -emoji[six_pointed_star_with_middle_dot]=$'\U1F52F' -emoji[japanese_symbol_for_beginner]=$'\U1F530' -emoji[trident_emblem]=$'\U1F531' -emoji[black_square_button]=$'\U1F532' -emoji[white_square_button]=$'\U1F533' -emoji[large_red_circle]=$'\U1F534' -emoji[large_blue_circle]=$'\U1F535' -emoji[large_orange_diamond]=$'\U1F536' -emoji[large_blue_diamond]=$'\U1F537' -emoji[small_orange_diamond]=$'\U1F538' -emoji[small_blue_diamond]=$'\U1F539' -emoji[up_pointing_red_triangle]=$'\U1F53A' -emoji[down_pointing_red_triangle]=$'\U1F53B' -emoji[up_pointing_small_red_triangle]=$'\U1F53C' -emoji[down_pointing_small_red_triangle]=$'\U1F53D' -emoji[om_symbol]=$'\U1F549' -emoji[dove_of_peace]=$'\U1F54A' -emoji[kaaba]=$'\U1F54B' -emoji[mosque]=$'\U1F54C' -emoji[synagogue]=$'\U1F54D' -emoji[menorah_with_nine_branches]=$'\U1F54E' -emoji[clock_face_one_oclock]=$'\U1F550' -emoji[clock_face_two_oclock]=$'\U1F551' -emoji[clock_face_three_oclock]=$'\U1F552' -emoji[clock_face_four_oclock]=$'\U1F553' -emoji[clock_face_five_oclock]=$'\U1F554' -emoji[clock_face_six_oclock]=$'\U1F555' -emoji[clock_face_seven_oclock]=$'\U1F556' -emoji[clock_face_eight_oclock]=$'\U1F557' -emoji[clock_face_nine_oclock]=$'\U1F558' -emoji[clock_face_ten_oclock]=$'\U1F559' -emoji[clock_face_eleven_oclock]=$'\U1F55A' -emoji[clock_face_twelve_oclock]=$'\U1F55B' -emoji[clock_face_one_thirty]=$'\U1F55C' -emoji[clock_face_two_thirty]=$'\U1F55D' -emoji[clock_face_three_thirty]=$'\U1F55E' -emoji[clock_face_four_thirty]=$'\U1F55F' -emoji[clock_face_five_thirty]=$'\U1F560' -emoji[clock_face_six_thirty]=$'\U1F561' -emoji[clock_face_seven_thirty]=$'\U1F562' -emoji[clock_face_eight_thirty]=$'\U1F563' -emoji[clock_face_nine_thirty]=$'\U1F564' -emoji[clock_face_ten_thirty]=$'\U1F565' -emoji[clock_face_eleven_thirty]=$'\U1F566' -emoji[clock_face_twelve_thirty]=$'\U1F567' -emoji[candle]=$'\U1F56F' -emoji[mantelpiece_clock]=$'\U1F570' -emoji[hole]=$'\U1F573' -emoji[man_in_business_suit_levitating]=$'\U1F574' -emoji[sleuth_or_spy]=$'\U1F575' -emoji[dark_sunglasses]=$'\U1F576' -emoji[spider]=$'\U1F577' -emoji[spider_web]=$'\U1F578' -emoji[joystick]=$'\U1F579' -emoji[linked_paperclips]=$'\U1F587' -emoji[lower_left_ballpoint_pen]=$'\U1F58A' -emoji[lower_left_fountain_pen]=$'\U1F58B' -emoji[lower_left_paintbrush]=$'\U1F58C' -emoji[lower_left_crayon]=$'\U1F58D' -emoji[raised_hand_with_fingers_splayed]=$'\U1F590' -emoji[reversed_hand_with_middle_finger_extended]=$'\U1F595' -emoji[raised_hand_with_part_between_middle_and_ring_fingers]=$'\U1F596' -emoji[desktop_computer]=$'\U1F5A5' -emoji[printer]=$'\U1F5A8' -emoji[three_button_mouse]=$'\U1F5B1' -emoji[trackball]=$'\U1F5B2' -emoji[frame_with_picture]=$'\U1F5BC' -emoji[card_index_dividers]=$'\U1F5C2' -emoji[card_file_box]=$'\U1F5C3' -emoji[file_cabinet]=$'\U1F5C4' -emoji[wastebasket]=$'\U1F5D1' -emoji[spiral_note_pad]=$'\U1F5D2' -emoji[spiral_calendar_pad]=$'\U1F5D3' -emoji[compression]=$'\U1F5DC' -emoji[old_key]=$'\U1F5DD' -emoji[rolled_up_newspaper]=$'\U1F5DE' -emoji[dagger_knife]=$'\U1F5E1' -emoji[speaking_head_in_silhouette]=$'\U1F5E3' -emoji[right_anger_bubble]=$'\U1F5EF' -emoji[ballot_box_with_ballot]=$'\U1F5F3' -emoji[world_map]=$'\U1F5FA' -emoji[mount_fuji]=$'\U1F5FB' -emoji[tokyo_tower]=$'\U1F5FC' -emoji[statue_of_liberty]=$'\U1F5FD' -emoji[silhouette_of_japan]=$'\U1F5FE' -emoji[moyai]=$'\U1F5FF' -emoji[grinning_face]=$'\U1F600' -emoji[grinning_face_with_smiling_eyes]=$'\U1F601' -emoji[face_with_tears_of_joy]=$'\U1F602' -emoji[smiling_face_with_open_mouth]=$'\U1F603' -emoji[smiling_face_with_open_mouth_and_smiling_eyes]=$'\U1F604' -emoji[smiling_face_with_open_mouth_and_cold_sweat]=$'\U1F605' -emoji[smiling_face_with_open_mouth_and_tightly_closed_eyes]=$'\U1F606' -emoji[smiling_face_with_halo]=$'\U1F607' -emoji[smiling_face_with_horns]=$'\U1F608' -emoji[winking_face]=$'\U1F609' -emoji[smiling_face_with_smiling_eyes]=$'\U1F60A' -emoji[face_savouring_delicious_food]=$'\U1F60B' -emoji[relieved_face]=$'\U1F60C' -emoji[smiling_face_with_heart_shaped_eyes]=$'\U1F60D' -emoji[smiling_face_with_sunglasses]=$'\U1F60E' -emoji[smirking_face]=$'\U1F60F' -emoji[neutral_face]=$'\U1F610' -emoji[expressionless_face]=$'\U1F611' -emoji[unamused_face]=$'\U1F612' -emoji[face_with_cold_sweat]=$'\U1F613' -emoji[pensive_face]=$'\U1F614' -emoji[confused_face]=$'\U1F615' -emoji[confounded_face]=$'\U1F616' -emoji[kissing_face]=$'\U1F617' -emoji[face_throwing_a_kiss]=$'\U1F618' -emoji[kissing_face_with_smiling_eyes]=$'\U1F619' -emoji[kissing_face_with_closed_eyes]=$'\U1F61A' -emoji[face_with_stuck_out_tongue]=$'\U1F61B' -emoji[face_with_stuck_out_tongue_and_winking_eye]=$'\U1F61C' -emoji[face_with_stuck_out_tongue_and_tightly_closed_eyes]=$'\U1F61D' -emoji[disappointed_face]=$'\U1F61E' -emoji[worried_face]=$'\U1F61F' -emoji[angry_face]=$'\U1F620' -emoji[pouting_face]=$'\U1F621' -emoji[crying_face]=$'\U1F622' -emoji[persevering_face]=$'\U1F623' -emoji[face_with_look_of_triumph]=$'\U1F624' -emoji[disappointed_but_relieved_face]=$'\U1F625' -emoji[frowning_face_with_open_mouth]=$'\U1F626' -emoji[anguished_face]=$'\U1F627' -emoji[fearful_face]=$'\U1F628' -emoji[weary_face]=$'\U1F629' -emoji[sleepy_face]=$'\U1F62A' -emoji[tired_face]=$'\U1F62B' -emoji[grimacing_face]=$'\U1F62C' -emoji[loudly_crying_face]=$'\U1F62D' -emoji[face_with_open_mouth]=$'\U1F62E' -emoji[hushed_face]=$'\U1F62F' -emoji[face_with_open_mouth_and_cold_sweat]=$'\U1F630' -emoji[face_screaming_in_fear]=$'\U1F631' -emoji[astonished_face]=$'\U1F632' -emoji[flushed_face]=$'\U1F633' -emoji[sleeping_face]=$'\U1F634' -emoji[dizzy_face]=$'\U1F635' -emoji[face_without_mouth]=$'\U1F636' -emoji[face_with_medical_mask]=$'\U1F637' -emoji[grinning_cat_face_with_smiling_eyes]=$'\U1F638' -emoji[cat_face_with_tears_of_joy]=$'\U1F639' -emoji[smiling_cat_face_with_open_mouth]=$'\U1F63A' -emoji[smiling_cat_face_with_heart_shaped_eyes]=$'\U1F63B' -emoji[cat_face_with_wry_smile]=$'\U1F63C' -emoji[kissing_cat_face_with_closed_eyes]=$'\U1F63D' -emoji[pouting_cat_face]=$'\U1F63E' -emoji[crying_cat_face]=$'\U1F63F' -emoji[weary_cat_face]=$'\U1F640' -emoji[slightly_frowning_face]=$'\U1F641' -emoji[slightly_smiling_face]=$'\U1F642' -emoji[upside_down_face]=$'\U1F643' -emoji[face_with_rolling_eyes]=$'\U1F644' -emoji[face_with_no_good_gesture]=$'\U1F645' -emoji[face_with_ok_gesture]=$'\U1F646' -emoji[person_bowing_deeply]=$'\U1F647' -emoji[see_no_evil_monkey]=$'\U1F648' -emoji[hear_no_evil_monkey]=$'\U1F649' -emoji[speak_no_evil_monkey]=$'\U1F64A' -emoji[happy_person_raising_one_hand]=$'\U1F64B' -emoji[person_raising_both_hands_in_celebration]=$'\U1F64C' -emoji[person_frowning]=$'\U1F64D' -emoji[person_with_pouting_face]=$'\U1F64E' -emoji[person_with_folded_hands]=$'\U1F64F' -emoji[rocket]=$'\U1F680' -emoji[helicopter]=$'\U1F681' -emoji[steam_locomotive]=$'\U1F682' -emoji[railway_car]=$'\U1F683' -emoji[high_speed_train]=$'\U1F684' -emoji[high_speed_train_with_bullet_nose]=$'\U1F685' -emoji[train]=$'\U1F686' -emoji[metro]=$'\U1F687' -emoji[light_rail]=$'\U1F688' -emoji[station]=$'\U1F689' -emoji[tram]=$'\U1F68A' -emoji[tram_car]=$'\U1F68B' -emoji[bus]=$'\U1F68C' -emoji[oncoming_bus]=$'\U1F68D' -emoji[trolleybus]=$'\U1F68E' -emoji[bus_stop]=$'\U1F68F' -emoji[minibus]=$'\U1F690' -emoji[ambulance]=$'\U1F691' -emoji[fire_engine]=$'\U1F692' -emoji[police_car]=$'\U1F693' -emoji[oncoming_police_car]=$'\U1F694' -emoji[taxi]=$'\U1F695' -emoji[oncoming_taxi]=$'\U1F696' -emoji[automobile]=$'\U1F697' -emoji[oncoming_automobile]=$'\U1F698' -emoji[recreational_vehicle]=$'\U1F699' -emoji[delivery_truck]=$'\U1F69A' -emoji[articulated_lorry]=$'\U1F69B' -emoji[tractor]=$'\U1F69C' -emoji[monorail]=$'\U1F69D' -emoji[mountain_railway]=$'\U1F69E' -emoji[suspension_railway]=$'\U1F69F' -emoji[mountain_cableway]=$'\U1F6A0' -emoji[aerial_tramway]=$'\U1F6A1' -emoji[ship]=$'\U1F6A2' -emoji[rowboat]=$'\U1F6A3' -emoji[speedboat]=$'\U1F6A4' -emoji[horizontal_traffic_light]=$'\U1F6A5' -emoji[vertical_traffic_light]=$'\U1F6A6' -emoji[construction_sign]=$'\U1F6A7' -emoji[police_cars_revolving_light]=$'\U1F6A8' -emoji[triangular_flag_on_post]=$'\U1F6A9' -emoji[door]=$'\U1F6AA' -emoji[no_entry_sign]=$'\U1F6AB' -emoji[smoking_symbol]=$'\U1F6AC' -emoji[no_smoking_symbol]=$'\U1F6AD' -emoji[put_litter_in_its_place_symbol]=$'\U1F6AE' -emoji[do_not_litter_symbol]=$'\U1F6AF' -emoji[potable_water_symbol]=$'\U1F6B0' -emoji[non_potable_water_symbol]=$'\U1F6B1' -emoji[bicycle]=$'\U1F6B2' -emoji[no_bicycles]=$'\U1F6B3' -emoji[bicyclist]=$'\U1F6B4' -emoji[mountain_bicyclist]=$'\U1F6B5' -emoji[pedestrian]=$'\U1F6B6' -emoji[no_pedestrians]=$'\U1F6B7' -emoji[children_crossing]=$'\U1F6B8' -emoji[mens_symbol]=$'\U1F6B9' -emoji[womens_symbol]=$'\U1F6BA' -emoji[restroom]=$'\U1F6BB' -emoji[baby_symbol]=$'\U1F6BC' -emoji[toilet]=$'\U1F6BD' -emoji[water_closet]=$'\U1F6BE' -emoji[shower]=$'\U1F6BF' -emoji[bath]=$'\U1F6C0' -emoji[bathtub]=$'\U1F6C1' -emoji[passport_control]=$'\U1F6C2' -emoji[customs]=$'\U1F6C3' -emoji[baggage_claim]=$'\U1F6C4' -emoji[left_luggage]=$'\U1F6C5' -emoji[couch_and_lamp]=$'\U1F6CB' -emoji[sleeping_accommodation]=$'\U1F6CC' -emoji[shopping_bags]=$'\U1F6CD' -emoji[bellhop_bell]=$'\U1F6CE' -emoji[bed]=$'\U1F6CF' -emoji[place_of_worship]=$'\U1F6D0' -emoji[hammer_and_wrench]=$'\U1F6E0' -emoji[shield]=$'\U1F6E1' -emoji[oil_drum]=$'\U1F6E2' -emoji[motorway]=$'\U1F6E3' -emoji[railway_track]=$'\U1F6E4' -emoji[motor_boat]=$'\U1F6E5' -emoji[small_airplane]=$'\U1F6E9' -emoji[airplane_departure]=$'\U1F6EB' -emoji[airplane_arriving]=$'\U1F6EC' -emoji[satellite]=$'\U1F6F0' -emoji[passenger_ship]=$'\U1F6F3' -emoji[zipper_mouth_face]=$'\U1F910' -emoji[money_mouth_face]=$'\U1F911' -emoji[face_with_thermometer]=$'\U1F912' -emoji[nerd_face]=$'\U1F913' -emoji[thinking_face]=$'\U1F914' -emoji[face_with_head_bandage]=$'\U1F915' -emoji[robot_face]=$'\U1F916' -emoji[hugging_face]=$'\U1F917' -emoji[sign_of_the_horns]=$'\U1F918' -emoji[crab]=$'\U1F980' -emoji[lion_face]=$'\U1F981' -emoji[scorpion]=$'\U1F982' -emoji[turkey]=$'\U1F983' -emoji[unicorn_face]=$'\U1F984' -emoji[cheese_wedge]=$'\U1F9C0' -emoji[keycap_number_sign]=$'\U0023\U20E3' -emoji[keycap_asterisk]=$'\U002A\U20E3' -emoji[keycap_digit_zero]=$'\U0030\U20E3' -emoji[keycap_digit_one]=$'\U0031\U20E3' -emoji[keycap_digit_two]=$'\U0032\U20E3' -emoji[keycap_digit_three]=$'\U0033\U20E3' -emoji[keycap_digit_four]=$'\U0034\U20E3' -emoji[keycap_digit_five]=$'\U0035\U20E3' -emoji[keycap_digit_six]=$'\U0036\U20E3' -emoji[keycap_digit_seven]=$'\U0037\U20E3' -emoji[keycap_digit_eight]=$'\U0038\U20E3' -emoji[keycap_digit_nine]=$'\U0039\U20E3' -emoji_flags[Ascension_Island]=$'\U1F1E6\U1F1E8' -emoji_flags[Andorra]=$'\U1F1E6\U1F1E9' -emoji_flags[United_Arab_Emirates]=$'\U1F1E6\U1F1EA' -emoji_flags[Afghanistan]=$'\U1F1E6\U1F1EB' -emoji_flags[Antigua___Barbuda]=$'\U1F1E6\U1F1EC' -emoji_flags[Anguilla]=$'\U1F1E6\U1F1EE' -emoji_flags[Albania]=$'\U1F1E6\U1F1F1' -emoji_flags[Armenia]=$'\U1F1E6\U1F1F2' -emoji_flags[Angola]=$'\U1F1E6\U1F1F4' -emoji_flags[Antarctica]=$'\U1F1E6\U1F1F6' -emoji_flags[Argentina]=$'\U1F1E6\U1F1F7' -emoji_flags[American_Samoa]=$'\U1F1E6\U1F1F8' -emoji_flags[Austria]=$'\U1F1E6\U1F1F9' -emoji_flags[Australia]=$'\U1F1E6\U1F1FA' -emoji_flags[Aruba]=$'\U1F1E6\U1F1FC' -emoji_flags[Ã_land_Islands]=$'\U1F1E6\U1F1FD' -emoji_flags[Azerbaijan]=$'\U1F1E6\U1F1FF' -emoji_flags[Bosnia___Herzegovina]=$'\U1F1E7\U1F1E6' -emoji_flags[Barbados]=$'\U1F1E7\U1F1E7' -emoji_flags[Bangladesh]=$'\U1F1E7\U1F1E9' -emoji_flags[Belgium]=$'\U1F1E7\U1F1EA' -emoji_flags[Burkina_Faso]=$'\U1F1E7\U1F1EB' -emoji_flags[Bulgaria]=$'\U1F1E7\U1F1EC' -emoji_flags[Bahrain]=$'\U1F1E7\U1F1ED' -emoji_flags[Burundi]=$'\U1F1E7\U1F1EE' -emoji_flags[Benin]=$'\U1F1E7\U1F1EF' -emoji_flags[St__BarthÃ_lemy]=$'\U1F1E7\U1F1F1' -emoji_flags[Bermuda]=$'\U1F1E7\U1F1F2' -emoji_flags[Brunei]=$'\U1F1E7\U1F1F3' -emoji_flags[Bolivia]=$'\U1F1E7\U1F1F4' -emoji_flags[Caribbean_Netherlands]=$'\U1F1E7\U1F1F6' -emoji_flags[Brazil]=$'\U1F1E7\U1F1F7' -emoji_flags[Bahamas]=$'\U1F1E7\U1F1F8' -emoji_flags[Bhutan]=$'\U1F1E7\U1F1F9' -emoji_flags[Bouvet_Island]=$'\U1F1E7\U1F1FB' -emoji_flags[Botswana]=$'\U1F1E7\U1F1FC' -emoji_flags[Belarus]=$'\U1F1E7\U1F1FE' -emoji_flags[Belize]=$'\U1F1E7\U1F1FF' -emoji_flags[Canada]=$'\U1F1E8\U1F1E6' -emoji_flags[Cocos__Islands]=$'\U1F1E8\U1F1E8' -emoji_flags[Congo___Kinshasa]=$'\U1F1E8\U1F1E9' -emoji_flags[Central_African_Republic]=$'\U1F1E8\U1F1EB' -emoji_flags[Congo___Brazzaville]=$'\U1F1E8\U1F1EC' -emoji_flags[Switzerland]=$'\U1F1E8\U1F1ED' -emoji_flags[CÃ_te_dâ__Ivoire]=$'\U1F1E8\U1F1EE' -emoji_flags[Cook_Islands]=$'\U1F1E8\U1F1F0' -emoji_flags[Chile]=$'\U1F1E8\U1F1F1' -emoji_flags[Cameroon]=$'\U1F1E8\U1F1F2' -emoji_flags[China]=$'\U1F1E8\U1F1F3' -emoji_flags[Colombia]=$'\U1F1E8\U1F1F4' -emoji_flags[Clipperton_Island]=$'\U1F1E8\U1F1F5' -emoji_flags[Costa_Rica]=$'\U1F1E8\U1F1F7' -emoji_flags[Cuba]=$'\U1F1E8\U1F1FA' -emoji_flags[Cape_Verde]=$'\U1F1E8\U1F1FB' -emoji_flags[CuraÃ_ao]=$'\U1F1E8\U1F1FC' -emoji_flags[Christmas_Island]=$'\U1F1E8\U1F1FD' -emoji_flags[Cyprus]=$'\U1F1E8\U1F1FE' -emoji_flags[Czech_Republic]=$'\U1F1E8\U1F1FF' -emoji_flags[Germany]=$'\U1F1E9\U1F1EA' -emoji_flags[Diego_Garcia]=$'\U1F1E9\U1F1EC' -emoji_flags[Djibouti]=$'\U1F1E9\U1F1EF' -emoji_flags[Denmark]=$'\U1F1E9\U1F1F0' -emoji_flags[Dominica]=$'\U1F1E9\U1F1F2' -emoji_flags[Dominican_Republic]=$'\U1F1E9\U1F1F4' -emoji_flags[Algeria]=$'\U1F1E9\U1F1FF' -emoji_flags[Ceuta___Melilla]=$'\U1F1EA\U1F1E6' -emoji_flags[Ecuador]=$'\U1F1EA\U1F1E8' -emoji_flags[Estonia]=$'\U1F1EA\U1F1EA' -emoji_flags[Egypt]=$'\U1F1EA\U1F1EC' -emoji_flags[Western_Sahara]=$'\U1F1EA\U1F1ED' -emoji_flags[Eritrea]=$'\U1F1EA\U1F1F7' -emoji_flags[Spain]=$'\U1F1EA\U1F1F8' -emoji_flags[Ethiopia]=$'\U1F1EA\U1F1F9' -emoji_flags[European_Union]=$'\U1F1EA\U1F1FA' -emoji_flags[Finland]=$'\U1F1EB\U1F1EE' -emoji_flags[Fiji]=$'\U1F1EB\U1F1EF' -emoji_flags[Falkland_Islands]=$'\U1F1EB\U1F1F0' -emoji_flags[Micronesia]=$'\U1F1EB\U1F1F2' -emoji_flags[Faroe_Islands]=$'\U1F1EB\U1F1F4' -emoji_flags[France]=$'\U1F1EB\U1F1F7' -emoji_flags[Gabon]=$'\U1F1EC\U1F1E6' -emoji_flags[United_Kingdom]=$'\U1F1EC\U1F1E7' -emoji_flags[Grenada]=$'\U1F1EC\U1F1E9' -emoji_flags[Georgia]=$'\U1F1EC\U1F1EA' -emoji_flags[French_Guiana]=$'\U1F1EC\U1F1EB' -emoji_flags[Guernsey]=$'\U1F1EC\U1F1EC' -emoji_flags[Ghana]=$'\U1F1EC\U1F1ED' -emoji_flags[Gibraltar]=$'\U1F1EC\U1F1EE' -emoji_flags[Greenland]=$'\U1F1EC\U1F1F1' -emoji_flags[Gambia]=$'\U1F1EC\U1F1F2' -emoji_flags[Guinea]=$'\U1F1EC\U1F1F3' -emoji_flags[Guadeloupe]=$'\U1F1EC\U1F1F5' -emoji_flags[Equatorial_Guinea]=$'\U1F1EC\U1F1F6' -emoji_flags[Greece]=$'\U1F1EC\U1F1F7' -emoji_flags[South_Georgia___South_Sandwich_Islands]=$'\U1F1EC\U1F1F8' -emoji_flags[Guatemala]=$'\U1F1EC\U1F1F9' -emoji_flags[Guam]=$'\U1F1EC\U1F1FA' -emoji_flags[Guinea_Bissau]=$'\U1F1EC\U1F1FC' -emoji_flags[Guyana]=$'\U1F1EC\U1F1FE' -emoji_flags[Hong_Kong]=$'\U1F1ED\U1F1F0' -emoji_flags[Heard___McDonald_Islands]=$'\U1F1ED\U1F1F2' -emoji_flags[Honduras]=$'\U1F1ED\U1F1F3' -emoji_flags[Croatia]=$'\U1F1ED\U1F1F7' -emoji_flags[Haiti]=$'\U1F1ED\U1F1F9' -emoji_flags[Hungary]=$'\U1F1ED\U1F1FA' -emoji_flags[Canary_Islands]=$'\U1F1EE\U1F1E8' -emoji_flags[Indonesia]=$'\U1F1EE\U1F1E9' -emoji_flags[Ireland]=$'\U1F1EE\U1F1EA' -emoji_flags[Israel]=$'\U1F1EE\U1F1F1' -emoji_flags[Isle_of_Man]=$'\U1F1EE\U1F1F2' -emoji_flags[India]=$'\U1F1EE\U1F1F3' -emoji_flags[British_Indian_Ocean_Territory]=$'\U1F1EE\U1F1F4' -emoji_flags[Iraq]=$'\U1F1EE\U1F1F6' -emoji_flags[Iran]=$'\U1F1EE\U1F1F7' -emoji_flags[Iceland]=$'\U1F1EE\U1F1F8' -emoji_flags[Italy]=$'\U1F1EE\U1F1F9' -emoji_flags[Jersey]=$'\U1F1EF\U1F1EA' -emoji_flags[Jamaica]=$'\U1F1EF\U1F1F2' -emoji_flags[Jordan]=$'\U1F1EF\U1F1F4' -emoji_flags[Japan]=$'\U1F1EF\U1F1F5' -emoji_flags[Kenya]=$'\U1F1F0\U1F1EA' -emoji_flags[Kyrgyzstan]=$'\U1F1F0\U1F1EC' -emoji_flags[Cambodia]=$'\U1F1F0\U1F1ED' -emoji_flags[Kiribati]=$'\U1F1F0\U1F1EE' -emoji_flags[Comoros]=$'\U1F1F0\U1F1F2' -emoji_flags[St__Kitts___Nevis]=$'\U1F1F0\U1F1F3' -emoji_flags[North_Korea]=$'\U1F1F0\U1F1F5' -emoji_flags[South_Korea]=$'\U1F1F0\U1F1F7' -emoji_flags[Kuwait]=$'\U1F1F0\U1F1FC' -emoji_flags[Cayman_Islands]=$'\U1F1F0\U1F1FE' -emoji_flags[Kazakhstan]=$'\U1F1F0\U1F1FF' -emoji_flags[Laos]=$'\U1F1F1\U1F1E6' -emoji_flags[Lebanon]=$'\U1F1F1\U1F1E7' -emoji_flags[St__Lucia]=$'\U1F1F1\U1F1E8' -emoji_flags[Liechtenstein]=$'\U1F1F1\U1F1EE' -emoji_flags[Sri_Lanka]=$'\U1F1F1\U1F1F0' -emoji_flags[Liberia]=$'\U1F1F1\U1F1F7' -emoji_flags[Lesotho]=$'\U1F1F1\U1F1F8' -emoji_flags[Lithuania]=$'\U1F1F1\U1F1F9' -emoji_flags[Luxembourg]=$'\U1F1F1\U1F1FA' -emoji_flags[Latvia]=$'\U1F1F1\U1F1FB' -emoji_flags[Libya]=$'\U1F1F1\U1F1FE' -emoji_flags[Morocco]=$'\U1F1F2\U1F1E6' -emoji_flags[Monaco]=$'\U1F1F2\U1F1E8' -emoji_flags[Moldova]=$'\U1F1F2\U1F1E9' -emoji_flags[Montenegro]=$'\U1F1F2\U1F1EA' -emoji_flags[St__Martin]=$'\U1F1F2\U1F1EB' -emoji_flags[Madagascar]=$'\U1F1F2\U1F1EC' -emoji_flags[Marshall_Islands]=$'\U1F1F2\U1F1ED' -emoji_flags[Macedonia]=$'\U1F1F2\U1F1F0' -emoji_flags[Mali]=$'\U1F1F2\U1F1F1' -emoji_flags[Myanmar]=$'\U1F1F2\U1F1F2' -emoji_flags[Mongolia]=$'\U1F1F2\U1F1F3' -emoji_flags[Macau]=$'\U1F1F2\U1F1F4' -emoji_flags[Northern_Mariana_Islands]=$'\U1F1F2\U1F1F5' -emoji_flags[Martinique]=$'\U1F1F2\U1F1F6' -emoji_flags[Mauritania]=$'\U1F1F2\U1F1F7' -emoji_flags[Montserrat]=$'\U1F1F2\U1F1F8' -emoji_flags[Malta]=$'\U1F1F2\U1F1F9' -emoji_flags[Mauritius]=$'\U1F1F2\U1F1FA' -emoji_flags[Maldives]=$'\U1F1F2\U1F1FB' -emoji_flags[Malawi]=$'\U1F1F2\U1F1FC' -emoji_flags[Mexico]=$'\U1F1F2\U1F1FD' -emoji_flags[Malaysia]=$'\U1F1F2\U1F1FE' -emoji_flags[Mozambique]=$'\U1F1F2\U1F1FF' -emoji_flags[Namibia]=$'\U1F1F3\U1F1E6' -emoji_flags[New_Caledonia]=$'\U1F1F3\U1F1E8' -emoji_flags[Niger]=$'\U1F1F3\U1F1EA' -emoji_flags[Norfolk_Island]=$'\U1F1F3\U1F1EB' -emoji_flags[Nigeria]=$'\U1F1F3\U1F1EC' -emoji_flags[Nicaragua]=$'\U1F1F3\U1F1EE' -emoji_flags[Netherlands]=$'\U1F1F3\U1F1F1' -emoji_flags[Norway]=$'\U1F1F3\U1F1F4' -emoji_flags[Nepal]=$'\U1F1F3\U1F1F5' -emoji_flags[Nauru]=$'\U1F1F3\U1F1F7' -emoji_flags[Niue]=$'\U1F1F3\U1F1FA' -emoji_flags[New_Zealand]=$'\U1F1F3\U1F1FF' -emoji_flags[Oman]=$'\U1F1F4\U1F1F2' -emoji_flags[Panama]=$'\U1F1F5\U1F1E6' -emoji_flags[Peru]=$'\U1F1F5\U1F1EA' -emoji_flags[French_Polynesia]=$'\U1F1F5\U1F1EB' -emoji_flags[Papua_New_Guinea]=$'\U1F1F5\U1F1EC' -emoji_flags[Philippines]=$'\U1F1F5\U1F1ED' -emoji_flags[Pakistan]=$'\U1F1F5\U1F1F0' -emoji_flags[Poland]=$'\U1F1F5\U1F1F1' -emoji_flags[St__Pierre___Miquelon]=$'\U1F1F5\U1F1F2' -emoji_flags[Pitcairn_Islands]=$'\U1F1F5\U1F1F3' -emoji_flags[Puerto_Rico]=$'\U1F1F5\U1F1F7' -emoji_flags[Palestinian_Territories]=$'\U1F1F5\U1F1F8' -emoji_flags[Portugal]=$'\U1F1F5\U1F1F9' -emoji_flags[Palau]=$'\U1F1F5\U1F1FC' -emoji_flags[Paraguay]=$'\U1F1F5\U1F1FE' -emoji_flags[Qatar]=$'\U1F1F6\U1F1E6' -emoji_flags[RÃ_union]=$'\U1F1F7\U1F1EA' -emoji_flags[Romania]=$'\U1F1F7\U1F1F4' -emoji_flags[Serbia]=$'\U1F1F7\U1F1F8' -emoji_flags[Russia]=$'\U1F1F7\U1F1FA' -emoji_flags[Rwanda]=$'\U1F1F7\U1F1FC' -emoji_flags[Saudi_Arabia]=$'\U1F1F8\U1F1E6' -emoji_flags[Solomon_Islands]=$'\U1F1F8\U1F1E7' -emoji_flags[Seychelles]=$'\U1F1F8\U1F1E8' -emoji_flags[Sudan]=$'\U1F1F8\U1F1E9' -emoji_flags[Sweden]=$'\U1F1F8\U1F1EA' -emoji_flags[Singapore]=$'\U1F1F8\U1F1EC' -emoji_flags[St__Helena]=$'\U1F1F8\U1F1ED' -emoji_flags[Slovenia]=$'\U1F1F8\U1F1EE' -emoji_flags[Svalbard___Jan_Mayen]=$'\U1F1F8\U1F1EF' -emoji_flags[Slovakia]=$'\U1F1F8\U1F1F0' -emoji_flags[Sierra_Leone]=$'\U1F1F8\U1F1F1' -emoji_flags[San_Marino]=$'\U1F1F8\U1F1F2' -emoji_flags[Senegal]=$'\U1F1F8\U1F1F3' -emoji_flags[Somalia]=$'\U1F1F8\U1F1F4' -emoji_flags[Suriname]=$'\U1F1F8\U1F1F7' -emoji_flags[South_Sudan]=$'\U1F1F8\U1F1F8' -emoji_flags[SÃ_o_TomÃ____PrÃ_ncipe]=$'\U1F1F8\U1F1F9' -emoji_flags[El_Salvador]=$'\U1F1F8\U1F1FB' -emoji_flags[Sint_Maarten]=$'\U1F1F8\U1F1FD' -emoji_flags[Syria]=$'\U1F1F8\U1F1FE' -emoji_flags[Swaziland]=$'\U1F1F8\U1F1FF' -emoji_flags[Tristan_da_Cunha]=$'\U1F1F9\U1F1E6' -emoji_flags[Turks___Caicos_Islands]=$'\U1F1F9\U1F1E8' -emoji_flags[Chad]=$'\U1F1F9\U1F1E9' -emoji_flags[French_Southern_Territories]=$'\U1F1F9\U1F1EB' -emoji_flags[Togo]=$'\U1F1F9\U1F1EC' -emoji_flags[Thailand]=$'\U1F1F9\U1F1ED' -emoji_flags[Tajikistan]=$'\U1F1F9\U1F1EF' -emoji_flags[Tokelau]=$'\U1F1F9\U1F1F0' -emoji_flags[Timor_Leste]=$'\U1F1F9\U1F1F1' -emoji_flags[Turkmenistan]=$'\U1F1F9\U1F1F2' -emoji_flags[Tunisia]=$'\U1F1F9\U1F1F3' -emoji_flags[Tonga]=$'\U1F1F9\U1F1F4' -emoji_flags[Turkey]=$'\U1F1F9\U1F1F7' -emoji_flags[Trinidad___Tobago]=$'\U1F1F9\U1F1F9' -emoji_flags[Tuvalu]=$'\U1F1F9\U1F1FB' -emoji_flags[Taiwan]=$'\U1F1F9\U1F1FC' -emoji_flags[Tanzania]=$'\U1F1F9\U1F1FF' -emoji_flags[Ukraine]=$'\U1F1FA\U1F1E6' -emoji_flags[Uganda]=$'\U1F1FA\U1F1EC' -emoji_flags[U_S__Outlying_Islands]=$'\U1F1FA\U1F1F2' -emoji_flags[United_States]=$'\U1F1FA\U1F1F8' -emoji_flags[Uruguay]=$'\U1F1FA\U1F1FE' -emoji_flags[Uzbekistan]=$'\U1F1FA\U1F1FF' -emoji_flags[Vatican_City]=$'\U1F1FB\U1F1E6' -emoji_flags[St__Vincent___Grenadines]=$'\U1F1FB\U1F1E8' -emoji_flags[Venezuela]=$'\U1F1FB\U1F1EA' -emoji_flags[British_Virgin_Islands]=$'\U1F1FB\U1F1EC' -emoji_flags[U_S__Virgin_Islands]=$'\U1F1FB\U1F1EE' -emoji_flags[Vietnam]=$'\U1F1FB\U1F1F3' -emoji_flags[Vanuatu]=$'\U1F1FB\U1F1FA' -emoji_flags[Wallis___Futuna]=$'\U1F1FC\U1F1EB' -emoji_flags[Samoa]=$'\U1F1FC\U1F1F8' -emoji_flags[Kosovo]=$'\U1F1FD\U1F1F0' -emoji_flags[Yemen]=$'\U1F1FE\U1F1EA' -emoji_flags[Mayotte]=$'\U1F1FE\U1F1F9' -emoji_flags[South_Africa]=$'\U1F1FF\U1F1E6' -emoji_flags[Zambia]=$'\U1F1FF\U1F1F2' -emoji_flags[Zimbabwe]=$'\U1F1FF\U1F1FC' - diff --git a/zsh/.oh-my-zsh/plugins/emoji/emoji-data.txt b/zsh/.oh-my-zsh/plugins/emoji/emoji-data.txt deleted file mode 100644 index 2d6d64e..0000000 --- a/zsh/.oh-my-zsh/plugins/emoji/emoji-data.txt +++ /dev/null @@ -1,1308 +0,0 @@ -# DRAFT emoji-data.txt -# For details about the format and other information, see /../../../reports/tr51/index.html#Data_Files. -# -# Format: Code ; Default_Emoji_Style ; Emoji_Level ; Emoji_Modifier_Status ; Emoji_Sources # Comment -# -# Field 1 — Default_Emoji_Style: -# text: default text presentation -# emoji: default emoji presentation -# Field 2 — Emoji_Level: -# L1: level 1 emoji -# L2: level 2 emoji -# NA: not applicable -# Field 3 — Emoji_Modifier_Status: -# modifier: an emoji modifier -# primary: a primary emoji modifier base -# secondary: a secondary emoji modifier base -# none: not applicable -# Field 4 — Emoji_Sources: -# one or more values from {z, a, j, w, x} -# see the key in https://www.unicode.org/draft/reports/tr51/tr51.html#Major_Sources -# NA: not applicable -# Comment — currently contains the version where the character was first encoded, -# followed by: -# - a character name in uppercase (for a single character), -# - a keycap name, -# - an associated flag, where is associated with value unicode region code -# -00A9 ; text ; L1 ; none ; j # V1.1 (©) COPYRIGHT SIGN -00AE ; text ; L1 ; none ; j # V1.1 (®) REGISTERED SIGN -203C ; text ; L1 ; none ; a j # V1.1 (‼) DOUBLE EXCLAMATION MARK -2049 ; text ; L1 ; none ; a j # V3.0 (â‰) EXCLAMATION QUESTION MARK -2122 ; text ; L1 ; none ; j # V1.1 (â„¢) TRADE MARK SIGN -2139 ; text ; L1 ; none ; j # V3.0 (ℹ) INFORMATION SOURCE -2194 ; text ; L1 ; none ; z j # V1.1 (↔) LEFT RIGHT ARROW -2195 ; text ; L1 ; none ; z j # V1.1 (↕) UP DOWN ARROW -2196 ; text ; L1 ; none ; j # V1.1 (↖) NORTH WEST ARROW -2197 ; text ; L1 ; none ; j # V1.1 (↗) NORTH EAST ARROW -2198 ; text ; L1 ; none ; j # V1.1 (↘) SOUTH EAST ARROW -2199 ; text ; L1 ; none ; j # V1.1 (↙) SOUTH WEST ARROW -21A9 ; text ; L1 ; none ; j # V1.1 (↩) LEFTWARDS ARROW WITH HOOK -21AA ; text ; L1 ; none ; j # V1.1 (↪) RIGHTWARDS ARROW WITH HOOK -231A ; emoji ; L1 ; none ; j # V1.1 (⌚) WATCH -231B ; emoji ; L1 ; none ; j # V1.1 (⌛) HOURGLASS -2328 ; text ; L2 ; none ; x # V1.1 (⌨) KEYBOARD -23CF ; text ; L2 ; none ; x # V4.0 (â) EJECT SYMBOL -23E9 ; emoji ; L1 ; none ; j w # V6.0 (â©) BLACK RIGHT-POINTING DOUBLE TRIANGLE -23EA ; emoji ; L1 ; none ; j w # V6.0 (âª) BLACK LEFT-POINTING DOUBLE TRIANGLE -23EB ; emoji ; L1 ; none ; j # V6.0 (â«) BLACK UP-POINTING DOUBLE TRIANGLE -23EC ; emoji ; L1 ; none ; j # V6.0 (â¬) BLACK DOWN-POINTING DOUBLE TRIANGLE -23ED ; text ; L2 ; none ; w # V6.0 (â­) BLACK RIGHT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR -23EE ; text ; L2 ; none ; w # V6.0 (â®) BLACK LEFT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR -23EF ; text ; L2 ; none ; x # V6.0 (â¯) BLACK RIGHT-POINTING TRIANGLE WITH DOUBLE VERTICAL BAR -23F0 ; emoji ; L1 ; none ; j # V6.0 (â°) ALARM CLOCK -23F1 ; text ; L2 ; none ; x # V6.0 (â±) STOPWATCH -23F2 ; text ; L2 ; none ; x # V6.0 (â²) TIMER CLOCK -23F3 ; emoji ; L1 ; none ; j w # V6.0 (â³) HOURGLASS WITH FLOWING SAND -23F8 ; text ; L2 ; none ; w # V7.0 (â¸) DOUBLE VERTICAL BAR -23F9 ; text ; L2 ; none ; w # V7.0 (â¹) BLACK SQUARE FOR STOP -23FA ; text ; L2 ; none ; w # V7.0 (âº) BLACK CIRCLE FOR RECORD -24C2 ; text ; L1 ; none ; j # V1.1 (â“‚) CIRCLED LATIN CAPITAL LETTER M -25AA ; text ; L1 ; none ; j w # V1.1 (â–ª) BLACK SMALL SQUARE -25AB ; text ; L1 ; none ; j # V1.1 (â–«) WHITE SMALL SQUARE -25B6 ; text ; L1 ; none ; a j w # V1.1 (â–¶) BLACK RIGHT-POINTING TRIANGLE -25C0 ; text ; L1 ; none ; a j w # V1.1 (â—€) BLACK LEFT-POINTING TRIANGLE -25FB ; text ; L1 ; none ; j # V3.2 (â—») WHITE MEDIUM SQUARE -25FC ; text ; L1 ; none ; j w # V3.2 (â—¼) BLACK MEDIUM SQUARE -25FD ; emoji ; L1 ; none ; j # V3.2 (â—½) WHITE MEDIUM SMALL SQUARE -25FE ; emoji ; L1 ; none ; j w # V3.2 (â—¾) BLACK MEDIUM SMALL SQUARE -2600 ; text ; L1 ; none ; a j # V1.1 (☀) BLACK SUN WITH RAYS -2601 ; text ; L1 ; none ; a j w # V1.1 (â˜) CLOUD -2602 ; text ; L2 ; none ; a # V1.1 (☂) UMBRELLA -2603 ; text ; L2 ; none ; a # V1.1 (☃) SNOWMAN -2604 ; text ; L2 ; none ; x # V1.1 (☄) COMET -260E ; text ; L1 ; none ; z a j # V1.1 (☎) BLACK TELEPHONE -2611 ; text ; L1 ; none ; j w # V1.1 (☑) BALLOT BOX WITH CHECK -2614 ; emoji ; L1 ; none ; a j # V4.0 (☔) UMBRELLA WITH RAIN DROPS -2615 ; emoji ; L1 ; none ; j # V4.0 (☕) HOT BEVERAGE -2618 ; text ; L2 ; none ; x # V4.1 (☘) SHAMROCK -261D ; text ; L1 ; secondary ; j w # V1.1 (â˜) WHITE UP POINTING INDEX -2620 ; text ; L2 ; none ; x # V1.1 (☠) SKULL AND CROSSBONES -2622 ; text ; L2 ; none ; x # V1.1 (☢) RADIOACTIVE SIGN -2623 ; text ; L2 ; none ; x # V1.1 (☣) BIOHAZARD SIGN -2626 ; text ; L2 ; none ; x # V1.1 (☦) ORTHODOX CROSS -262A ; text ; L2 ; none ; w # V1.1 (☪) STAR AND CRESCENT -262E ; text ; L2 ; none ; x # V1.1 (☮) PEACE SYMBOL -262F ; text ; L2 ; none ; w # V1.1 (☯) YIN YANG -2638 ; text ; L2 ; none ; w # V1.1 (☸) WHEEL OF DHARMA -2639 ; text ; L2 ; secondary ; w # V1.1 (☹) WHITE FROWNING FACE -263A ; text ; L1 ; secondary ; j w # V1.1 (☺) WHITE SMILING FACE -2648 ; emoji ; L1 ; none ; j w # V1.1 (♈) ARIES -2649 ; emoji ; L1 ; none ; j w # V1.1 (♉) TAURUS -264A ; emoji ; L1 ; none ; j w # V1.1 (♊) GEMINI -264B ; emoji ; L1 ; none ; j w # V1.1 (♋) CANCER -264C ; emoji ; L1 ; none ; j w # V1.1 (♌) LEO -264D ; emoji ; L1 ; none ; j w # V1.1 (â™) VIRGO -264E ; emoji ; L1 ; none ; j w # V1.1 (♎) LIBRA -264F ; emoji ; L1 ; none ; j w # V1.1 (â™) SCORPIUS -2650 ; emoji ; L1 ; none ; j w # V1.1 (â™) SAGITTARIUS -2651 ; emoji ; L1 ; none ; j w # V1.1 (♑) CAPRICORN -2652 ; emoji ; L1 ; none ; j w # V1.1 (â™’) AQUARIUS -2653 ; emoji ; L1 ; none ; j w # V1.1 (♓) PISCES -2660 ; text ; L1 ; none ; z a j # V1.1 (â™ ) BLACK SPADE SUIT -2663 ; text ; L1 ; none ; z a j # V1.1 (♣) BLACK CLUB SUIT -2665 ; text ; L1 ; none ; z a j # V1.1 (♥) BLACK HEART SUIT -2666 ; text ; L1 ; none ; z a j # V1.1 (♦) BLACK DIAMOND SUIT -2668 ; text ; L1 ; none ; a j # V1.1 (♨) HOT SPRINGS -267B ; text ; L1 ; none ; j # V3.2 (â™») BLACK UNIVERSAL RECYCLING SYMBOL -267F ; emoji ; L1 ; none ; j w # V4.1 (♿) WHEELCHAIR SYMBOL -2692 ; text ; L2 ; none ; x # V4.1 (âš’) HAMMER AND PICK -2693 ; emoji ; L1 ; none ; a j # V4.1 (âš“) ANCHOR -2694 ; text ; L2 ; none ; x # V4.1 (âš”) CROSSED SWORDS -2696 ; text ; L2 ; none ; x # V4.1 (âš–) SCALES -2697 ; text ; L2 ; none ; x # V4.1 (âš—) ALEMBIC -2699 ; text ; L2 ; none ; x # V4.1 (âš™) GEAR -269B ; text ; L2 ; none ; x # V4.1 (âš›) ATOM SYMBOL -269C ; text ; L2 ; none ; x # V4.1 (âšœ) FLEUR-DE-LIS -26A0 ; text ; L1 ; none ; j # V4.0 (âš ) WARNING SIGN -26A1 ; emoji ; L1 ; none ; a j # V4.0 (âš¡) HIGH VOLTAGE SIGN -26AA ; emoji ; L1 ; none ; j # V4.1 (⚪) MEDIUM WHITE CIRCLE -26AB ; emoji ; L1 ; none ; j w # V4.1 (âš«) MEDIUM BLACK CIRCLE -26B0 ; text ; L2 ; none ; x # V4.1 (âš°) COFFIN -26B1 ; text ; L2 ; none ; x # V4.1 (âš±) FUNERAL URN -26BD ; emoji ; L1 ; none ; j # V5.2 (âš½) SOCCER BALL -26BE ; emoji ; L1 ; none ; a j # V5.2 (âš¾) BASEBALL -26C4 ; emoji ; L1 ; none ; a j # V5.2 (⛄) SNOWMAN WITHOUT SNOW -26C5 ; emoji ; L1 ; none ; a j # V5.2 (â›…) SUN BEHIND CLOUD -26C8 ; text ; L2 ; none ; a # V5.2 (⛈) THUNDER CLOUD AND RAIN -26CE ; emoji ; L1 ; none ; a j # V6.0 (⛎) OPHIUCHUS -26CF ; text ; L2 ; none ; a # V5.2 (â›) PICK -26D1 ; text ; L2 ; none ; a # V5.2 (⛑) HELMET WITH WHITE CROSS -26D3 ; text ; L2 ; none ; a # V5.2 (⛓) CHAINS -26D4 ; emoji ; L1 ; none ; a j # V5.2 (â›”) NO ENTRY -26E9 ; text ; L2 ; none ; a # V5.2 (⛩) SHINTO SHRINE -26EA ; emoji ; L1 ; none ; a j # V5.2 (⛪) CHURCH -26F0 ; text ; L2 ; none ; a # V5.2 (â›°) MOUNTAIN -26F1 ; text ; L2 ; none ; a # V5.2 (â›±) UMBRELLA ON GROUND -26F2 ; emoji ; L1 ; none ; a j # V5.2 (⛲) FOUNTAIN -26F3 ; emoji ; L1 ; none ; a j w # V5.2 (⛳) FLAG IN HOLE -26F4 ; text ; L2 ; none ; a # V5.2 (â›´) FERRY -26F5 ; emoji ; L1 ; none ; a j # V5.2 (⛵) SAILBOAT -26F7 ; text ; L2 ; none ; a w # V5.2 (â›·) SKIER -26F8 ; text ; L2 ; none ; a # V5.2 (⛸) ICE SKATE -26F9 ; text ; L2 ; none ; a # V5.2 (⛹) PERSON WITH BALL -26FA ; emoji ; L1 ; none ; a j # V5.2 (⛺) TENT -26FD ; emoji ; L1 ; none ; a j # V5.2 (⛽) FUEL PUMP -2702 ; text ; L1 ; none ; z j w # V1.1 (✂) BLACK SCISSORS -2705 ; emoji ; L1 ; none ; j # V6.0 (✅) WHITE HEAVY CHECK MARK -2708 ; text ; L1 ; none ; z a j w # V1.1 (✈) AIRPLANE -2709 ; text ; L1 ; none ; z j # V1.1 (✉) ENVELOPE -270A ; emoji ; L1 ; secondary ; j # V6.0 (✊) RAISED FIST -270B ; emoji ; L1 ; secondary ; j # V6.0 (✋) RAISED HAND -270C ; text ; L1 ; secondary ; z j w # V1.1 (✌) VICTORY HAND -270D ; text ; L2 ; secondary ; z w # V1.1 (âœ) WRITING HAND -270F ; text ; L1 ; none ; z j # V1.1 (âœ) PENCIL -2712 ; text ; L1 ; none ; z j # V1.1 (✒) BLACK NIB -2714 ; text ; L1 ; none ; z j w # V1.1 (✔) HEAVY CHECK MARK -2716 ; text ; L1 ; none ; z j # V1.1 (✖) HEAVY MULTIPLICATION X -271D ; text ; L2 ; none ; w # V1.1 (âœ) LATIN CROSS -2721 ; text ; L2 ; none ; w # V1.1 (✡) STAR OF DAVID -2728 ; emoji ; L1 ; none ; j # V6.0 (✨) SPARKLES -2733 ; text ; L1 ; none ; z j # V1.1 (✳) EIGHT SPOKED ASTERISK -2734 ; text ; L1 ; none ; z j # V1.1 (✴) EIGHT POINTED BLACK STAR -2744 ; text ; L1 ; none ; z j w # V1.1 (â„) SNOWFLAKE -2747 ; text ; L1 ; none ; z j # V1.1 (â‡) SPARKLE -274C ; emoji ; L1 ; none ; j # V6.0 (âŒ) CROSS MARK -274E ; emoji ; L1 ; none ; j # V6.0 (âŽ) NEGATIVE SQUARED CROSS MARK -2753 ; emoji ; L1 ; none ; j w # V6.0 (â“) BLACK QUESTION MARK ORNAMENT -2754 ; emoji ; L1 ; none ; j # V6.0 (â”) WHITE QUESTION MARK ORNAMENT -2755 ; emoji ; L1 ; none ; j # V6.0 (â•) WHITE EXCLAMATION MARK ORNAMENT -2757 ; emoji ; L1 ; none ; j # V5.2 (â—) HEAVY EXCLAMATION MARK SYMBOL -2763 ; text ; L2 ; none ; z # V1.1 (â£) HEAVY HEART EXCLAMATION MARK ORNAMENT -2764 ; text ; L1 ; none ; z j # V1.1 (â¤) HEAVY BLACK HEART -2795 ; emoji ; L1 ; none ; j # V6.0 (âž•) HEAVY PLUS SIGN -2796 ; emoji ; L1 ; none ; j # V6.0 (âž–) HEAVY MINUS SIGN -2797 ; emoji ; L1 ; none ; j # V6.0 (âž—) HEAVY DIVISION SIGN -27A1 ; text ; L1 ; none ; z a j # V1.1 (âž¡) BLACK RIGHTWARDS ARROW -27B0 ; emoji ; L1 ; none ; j # V6.0 (âž°) CURLY LOOP -27BF ; emoji ; L1 ; none ; x # V6.0 (âž¿) DOUBLE CURLY LOOP -2934 ; text ; L1 ; none ; j # V3.2 (⤴) ARROW POINTING RIGHTWARDS THEN CURVING UPWARDS -2935 ; text ; L1 ; none ; j # V3.2 (⤵) ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS -2B05 ; text ; L1 ; none ; a j # V4.0 (⬅) LEFTWARDS BLACK ARROW -2B06 ; text ; L1 ; none ; a j # V4.0 (⬆) UPWARDS BLACK ARROW -2B07 ; text ; L1 ; none ; a j # V4.0 (⬇) DOWNWARDS BLACK ARROW -2B1B ; emoji ; L1 ; none ; a j w # V5.1 (⬛) BLACK LARGE SQUARE -2B1C ; emoji ; L1 ; none ; j w # V5.1 (⬜) WHITE LARGE SQUARE -2B50 ; emoji ; L1 ; none ; j # V5.1 (â­) WHITE MEDIUM STAR -2B55 ; emoji ; L1 ; none ; j # V5.2 (â­•) HEAVY LARGE CIRCLE -3030 ; text ; L1 ; none ; j # V1.1 (〰) WAVY DASH -303D ; text ; L1 ; none ; j # V3.2 (〽) PART ALTERNATION MARK -3297 ; text ; L1 ; none ; j # V1.1 (㊗) CIRCLED IDEOGRAPH CONGRATULATION -3299 ; text ; L1 ; none ; a j # V1.1 (㊙) CIRCLED IDEOGRAPH SECRET -1F004 ; emoji ; L1 ; none ; j # V5.1 (🀄) MAHJONG TILE RED DRAGON -1F0CF ; emoji ; L1 ; none ; j # V6.0 (ðŸƒ) PLAYING CARD BLACK JOKER -1F170 ; text ; L1 ; none ; j # V6.0 (🅰) NEGATIVE SQUARED LATIN CAPITAL LETTER A -1F171 ; text ; L1 ; none ; j # V6.0 (🅱) NEGATIVE SQUARED LATIN CAPITAL LETTER B -1F17E ; text ; L1 ; none ; j # V6.0 (🅾) NEGATIVE SQUARED LATIN CAPITAL LETTER O -1F17F ; text ; L1 ; none ; a j # V5.2 (🅿) NEGATIVE SQUARED LATIN CAPITAL LETTER P -1F18E ; emoji ; L1 ; none ; j # V6.0 (🆎) NEGATIVE SQUARED AB -1F191 ; emoji ; L1 ; none ; j # V6.0 (🆑) SQUARED CL -1F192 ; emoji ; L1 ; none ; j # V6.0 (🆒) SQUARED COOL -1F193 ; emoji ; L1 ; none ; j # V6.0 (🆓) SQUARED FREE -1F194 ; emoji ; L1 ; none ; j # V6.0 (🆔) SQUARED ID -1F195 ; emoji ; L1 ; none ; j # V6.0 (🆕) SQUARED NEW -1F196 ; emoji ; L1 ; none ; j # V6.0 (🆖) SQUARED NG -1F197 ; emoji ; L1 ; none ; j # V6.0 (🆗) SQUARED OK -1F198 ; emoji ; L1 ; none ; j # V6.0 (🆘) SQUARED SOS -1F199 ; emoji ; L1 ; none ; j # V6.0 (🆙) SQUARED UP WITH EXCLAMATION MARK -1F19A ; emoji ; L1 ; none ; j # V6.0 (🆚) SQUARED VS -1F201 ; emoji ; L1 ; none ; j # V6.0 (ðŸˆ) SQUARED KATAKANA KOKO -1F202 ; text ; L1 ; none ; j # V6.0 (🈂) SQUARED KATAKANA SA -1F21A ; emoji ; L1 ; none ; a j # V5.2 (🈚) SQUARED CJK UNIFIED IDEOGRAPH-7121 -1F22F ; emoji ; L1 ; none ; a j # V5.2 (🈯) SQUARED CJK UNIFIED IDEOGRAPH-6307 -1F232 ; emoji ; L1 ; none ; j # V6.0 (🈲) SQUARED CJK UNIFIED IDEOGRAPH-7981 -1F233 ; emoji ; L1 ; none ; j # V6.0 (🈳) SQUARED CJK UNIFIED IDEOGRAPH-7A7A -1F234 ; emoji ; L1 ; none ; j # V6.0 (🈴) SQUARED CJK UNIFIED IDEOGRAPH-5408 -1F235 ; emoji ; L1 ; none ; j # V6.0 (🈵) SQUARED CJK UNIFIED IDEOGRAPH-6E80 -1F236 ; emoji ; L1 ; none ; j # V6.0 (🈶) SQUARED CJK UNIFIED IDEOGRAPH-6709 -1F237 ; text ; L1 ; none ; j # V6.0 (🈷) SQUARED CJK UNIFIED IDEOGRAPH-6708 -1F238 ; emoji ; L1 ; none ; j # V6.0 (🈸) SQUARED CJK UNIFIED IDEOGRAPH-7533 -1F239 ; emoji ; L1 ; none ; j # V6.0 (🈹) SQUARED CJK UNIFIED IDEOGRAPH-5272 -1F23A ; emoji ; L1 ; none ; j # V6.0 (🈺) SQUARED CJK UNIFIED IDEOGRAPH-55B6 -1F250 ; emoji ; L1 ; none ; j # V6.0 (ðŸ‰) CIRCLED IDEOGRAPH ADVANTAGE -1F251 ; emoji ; L1 ; none ; j # V6.0 (🉑) CIRCLED IDEOGRAPH ACCEPT -1F300 ; emoji ; L1 ; none ; j # V6.0 (🌀) CYCLONE -1F301 ; emoji ; L1 ; none ; j # V6.0 (ðŸŒ) FOGGY -1F302 ; emoji ; L1 ; none ; j # V6.0 (🌂) CLOSED UMBRELLA -1F303 ; emoji ; L1 ; none ; j # V6.0 (🌃) NIGHT WITH STARS -1F304 ; emoji ; L1 ; none ; j # V6.0 (🌄) SUNRISE OVER MOUNTAINS -1F305 ; emoji ; L1 ; none ; j # V6.0 (🌅) SUNRISE -1F306 ; emoji ; L1 ; none ; j # V6.0 (🌆) CITYSCAPE AT DUSK -1F307 ; emoji ; L1 ; none ; j # V6.0 (🌇) SUNSET OVER BUILDINGS -1F308 ; emoji ; L1 ; none ; j # V6.0 (🌈) RAINBOW -1F309 ; emoji ; L1 ; none ; j # V6.0 (🌉) BRIDGE AT NIGHT -1F30A ; emoji ; L1 ; none ; j # V6.0 (🌊) WATER WAVE -1F30B ; emoji ; L1 ; none ; j # V6.0 (🌋) VOLCANO -1F30C ; emoji ; L1 ; none ; j # V6.0 (🌌) MILKY WAY -1F30D ; emoji ; L1 ; none ; w # V6.0 (ðŸŒ) EARTH GLOBE EUROPE-AFRICA -1F30E ; emoji ; L1 ; none ; w # V6.0 (🌎) EARTH GLOBE AMERICAS -1F30F ; emoji ; L1 ; none ; j w # V6.0 (ðŸŒ) EARTH GLOBE ASIA-AUSTRALIA -1F310 ; emoji ; L1 ; none ; x # V6.0 (ðŸŒ) GLOBE WITH MERIDIANS -1F311 ; emoji ; L1 ; none ; j # V6.0 (🌑) NEW MOON SYMBOL -1F312 ; emoji ; L1 ; none ; x # V6.0 (🌒) WAXING CRESCENT MOON SYMBOL -1F313 ; emoji ; L1 ; none ; j # V6.0 (🌓) FIRST QUARTER MOON SYMBOL -1F314 ; emoji ; L1 ; none ; j # V6.0 (🌔) WAXING GIBBOUS MOON SYMBOL -1F315 ; emoji ; L1 ; none ; j w # V6.0 (🌕) FULL MOON SYMBOL -1F316 ; emoji ; L1 ; none ; x # V6.0 (🌖) WANING GIBBOUS MOON SYMBOL -1F317 ; emoji ; L1 ; none ; x # V6.0 (🌗) LAST QUARTER MOON SYMBOL -1F318 ; emoji ; L1 ; none ; x # V6.0 (🌘) WANING CRESCENT MOON SYMBOL -1F319 ; emoji ; L1 ; none ; j # V6.0 (🌙) CRESCENT MOON -1F31A ; emoji ; L1 ; none ; x # V6.0 (🌚) NEW MOON WITH FACE -1F31B ; emoji ; L1 ; none ; j # V6.0 (🌛) FIRST QUARTER MOON WITH FACE -1F31C ; emoji ; L1 ; none ; w # V6.0 (🌜) LAST QUARTER MOON WITH FACE -1F31D ; emoji ; L1 ; none ; x # V6.0 (ðŸŒ) FULL MOON WITH FACE -1F31E ; emoji ; L1 ; none ; x # V6.0 (🌞) SUN WITH FACE -1F31F ; emoji ; L1 ; none ; j # V6.0 (🌟) GLOWING STAR -1F320 ; emoji ; L1 ; none ; j # V6.0 (🌠) SHOOTING STAR -1F321 ; text ; L2 ; none ; w # V7.0 (🌡) THERMOMETER -1F324 ; text ; L2 ; none ; w # V7.0 (🌤) WHITE SUN WITH SMALL CLOUD -1F325 ; text ; L2 ; none ; w # V7.0 (🌥) WHITE SUN BEHIND CLOUD -1F326 ; text ; L2 ; none ; w # V7.0 (🌦) WHITE SUN BEHIND CLOUD WITH RAIN -1F327 ; text ; L2 ; none ; w # V7.0 (🌧) CLOUD WITH RAIN -1F328 ; text ; L2 ; none ; w # V7.0 (🌨) CLOUD WITH SNOW -1F329 ; text ; L2 ; none ; w # V7.0 (🌩) CLOUD WITH LIGHTNING -1F32A ; text ; L2 ; none ; w # V7.0 (🌪) CLOUD WITH TORNADO -1F32B ; text ; L2 ; none ; w # V7.0 (🌫) FOG -1F32C ; text ; L2 ; none ; w # V7.0 (🌬) WIND BLOWING FACE -1F32D ; emoji ; L2 ; none ; x # V8.0 (🌭) HOT DOG -1F32E ; emoji ; L2 ; none ; x # V8.0 (🌮) TACO -1F32F ; emoji ; L2 ; none ; x # V8.0 (🌯) BURRITO -1F330 ; emoji ; L1 ; none ; j # V6.0 (🌰) CHESTNUT -1F331 ; emoji ; L1 ; none ; j # V6.0 (🌱) SEEDLING -1F332 ; emoji ; L1 ; none ; x # V6.0 (🌲) EVERGREEN TREE -1F333 ; emoji ; L1 ; none ; x # V6.0 (🌳) DECIDUOUS TREE -1F334 ; emoji ; L1 ; none ; j # V6.0 (🌴) PALM TREE -1F335 ; emoji ; L1 ; none ; j # V6.0 (🌵) CACTUS -1F336 ; text ; L2 ; none ; w # V7.0 (🌶) HOT PEPPER -1F337 ; emoji ; L1 ; none ; j # V6.0 (🌷) TULIP -1F338 ; emoji ; L1 ; none ; j # V6.0 (🌸) CHERRY BLOSSOM -1F339 ; emoji ; L1 ; none ; j # V6.0 (🌹) ROSE -1F33A ; emoji ; L1 ; none ; j # V6.0 (🌺) HIBISCUS -1F33B ; emoji ; L1 ; none ; j # V6.0 (🌻) SUNFLOWER -1F33C ; emoji ; L1 ; none ; j # V6.0 (🌼) BLOSSOM -1F33D ; emoji ; L1 ; none ; j # V6.0 (🌽) EAR OF MAIZE -1F33E ; emoji ; L1 ; none ; j # V6.0 (🌾) EAR OF RICE -1F33F ; emoji ; L1 ; none ; j # V6.0 (🌿) HERB -1F340 ; emoji ; L1 ; none ; j # V6.0 (ðŸ€) FOUR LEAF CLOVER -1F341 ; emoji ; L1 ; none ; j # V6.0 (ðŸ) MAPLE LEAF -1F342 ; emoji ; L1 ; none ; j # V6.0 (ðŸ‚) FALLEN LEAF -1F343 ; emoji ; L1 ; none ; j # V6.0 (ðŸƒ) LEAF FLUTTERING IN WIND -1F344 ; emoji ; L1 ; none ; j # V6.0 (ðŸ„) MUSHROOM -1F345 ; emoji ; L1 ; none ; j # V6.0 (ðŸ…) TOMATO -1F346 ; emoji ; L1 ; none ; j # V6.0 (ðŸ†) AUBERGINE -1F347 ; emoji ; L1 ; none ; j # V6.0 (ðŸ‡) GRAPES -1F348 ; emoji ; L1 ; none ; j # V6.0 (ðŸˆ) MELON -1F349 ; emoji ; L1 ; none ; j # V6.0 (ðŸ‰) WATERMELON -1F34A ; emoji ; L1 ; none ; j # V6.0 (ðŸŠ) TANGERINE -1F34B ; emoji ; L1 ; none ; x # V6.0 (ðŸ‹) LEMON -1F34C ; emoji ; L1 ; none ; j # V6.0 (ðŸŒ) BANANA -1F34D ; emoji ; L1 ; none ; j # V6.0 (ðŸ) PINEAPPLE -1F34E ; emoji ; L1 ; none ; j # V6.0 (ðŸŽ) RED APPLE -1F34F ; emoji ; L1 ; none ; j # V6.0 (ðŸ) GREEN APPLE -1F350 ; emoji ; L1 ; none ; x # V6.0 (ðŸ) PEAR -1F351 ; emoji ; L1 ; none ; j # V6.0 (ðŸ‘) PEACH -1F352 ; emoji ; L1 ; none ; j # V6.0 (ðŸ’) CHERRIES -1F353 ; emoji ; L1 ; none ; j # V6.0 (ðŸ“) STRAWBERRY -1F354 ; emoji ; L1 ; none ; j # V6.0 (ðŸ”) HAMBURGER -1F355 ; emoji ; L1 ; none ; j # V6.0 (ðŸ•) SLICE OF PIZZA -1F356 ; emoji ; L1 ; none ; j # V6.0 (ðŸ–) MEAT ON BONE -1F357 ; emoji ; L1 ; none ; j # V6.0 (ðŸ—) POULTRY LEG -1F358 ; emoji ; L1 ; none ; j # V6.0 (ðŸ˜) RICE CRACKER -1F359 ; emoji ; L1 ; none ; j # V6.0 (ðŸ™) RICE BALL -1F35A ; emoji ; L1 ; none ; j # V6.0 (ðŸš) COOKED RICE -1F35B ; emoji ; L1 ; none ; j # V6.0 (ðŸ›) CURRY AND RICE -1F35C ; emoji ; L1 ; none ; j # V6.0 (ðŸœ) STEAMING BOWL -1F35D ; emoji ; L1 ; none ; j # V6.0 (ðŸ) SPAGHETTI -1F35E ; emoji ; L1 ; none ; j # V6.0 (ðŸž) BREAD -1F35F ; emoji ; L1 ; none ; j # V6.0 (ðŸŸ) FRENCH FRIES -1F360 ; emoji ; L1 ; none ; j # V6.0 (ðŸ ) ROASTED SWEET POTATO -1F361 ; emoji ; L1 ; none ; j # V6.0 (ðŸ¡) DANGO -1F362 ; emoji ; L1 ; none ; j # V6.0 (ðŸ¢) ODEN -1F363 ; emoji ; L1 ; none ; j # V6.0 (ðŸ£) SUSHI -1F364 ; emoji ; L1 ; none ; j # V6.0 (ðŸ¤) FRIED SHRIMP -1F365 ; emoji ; L1 ; none ; j # V6.0 (ðŸ¥) FISH CAKE WITH SWIRL DESIGN -1F366 ; emoji ; L1 ; none ; j # V6.0 (ðŸ¦) SOFT ICE CREAM -1F367 ; emoji ; L1 ; none ; j # V6.0 (ðŸ§) SHAVED ICE -1F368 ; emoji ; L1 ; none ; j # V6.0 (ðŸ¨) ICE CREAM -1F369 ; emoji ; L1 ; none ; j # V6.0 (ðŸ©) DOUGHNUT -1F36A ; emoji ; L1 ; none ; j # V6.0 (ðŸª) COOKIE -1F36B ; emoji ; L1 ; none ; j # V6.0 (ðŸ«) CHOCOLATE BAR -1F36C ; emoji ; L1 ; none ; j # V6.0 (ðŸ¬) CANDY -1F36D ; emoji ; L1 ; none ; j # V6.0 (ðŸ­) LOLLIPOP -1F36E ; emoji ; L1 ; none ; j # V6.0 (ðŸ®) CUSTARD -1F36F ; emoji ; L1 ; none ; j # V6.0 (ðŸ¯) HONEY POT -1F370 ; emoji ; L1 ; none ; j # V6.0 (ðŸ°) SHORTCAKE -1F371 ; emoji ; L1 ; none ; j # V6.0 (ðŸ±) BENTO BOX -1F372 ; emoji ; L1 ; none ; j # V6.0 (ðŸ²) POT OF FOOD -1F373 ; emoji ; L1 ; none ; j # V6.0 (ðŸ³) COOKING -1F374 ; emoji ; L1 ; none ; j # V6.0 (ðŸ´) FORK AND KNIFE -1F375 ; emoji ; L1 ; none ; j # V6.0 (ðŸµ) TEACUP WITHOUT HANDLE -1F376 ; emoji ; L1 ; none ; j # V6.0 (ðŸ¶) SAKE BOTTLE AND CUP -1F377 ; emoji ; L1 ; none ; j # V6.0 (ðŸ·) WINE GLASS -1F378 ; emoji ; L1 ; none ; j w # V6.0 (ðŸ¸) COCKTAIL GLASS -1F379 ; emoji ; L1 ; none ; j # V6.0 (ðŸ¹) TROPICAL DRINK -1F37A ; emoji ; L1 ; none ; j # V6.0 (ðŸº) BEER MUG -1F37B ; emoji ; L1 ; none ; j # V6.0 (ðŸ») CLINKING BEER MUGS -1F37C ; emoji ; L1 ; none ; x # V6.0 (ðŸ¼) BABY BOTTLE -1F37D ; text ; L2 ; none ; w # V7.0 (ðŸ½) FORK AND KNIFE WITH PLATE -1F37E ; emoji ; L2 ; none ; x # V8.0 (ðŸ¾) BOTTLE WITH POPPING CORK -1F37F ; emoji ; L2 ; none ; x # V8.0 (ðŸ¿) POPCORN -1F380 ; emoji ; L1 ; none ; j # V6.0 (🎀) RIBBON -1F381 ; emoji ; L1 ; none ; j # V6.0 (ðŸŽ) WRAPPED PRESENT -1F382 ; emoji ; L1 ; none ; j # V6.0 (🎂) BIRTHDAY CAKE -1F383 ; emoji ; L1 ; none ; j # V6.0 (🎃) JACK-O-LANTERN -1F384 ; emoji ; L1 ; none ; j # V6.0 (🎄) CHRISTMAS TREE -1F385 ; emoji ; L1 ; primary ; j # V6.0 (🎅) FATHER CHRISTMAS -1F386 ; emoji ; L1 ; none ; j # V6.0 (🎆) FIREWORKS -1F387 ; emoji ; L1 ; none ; j # V6.0 (🎇) FIREWORK SPARKLER -1F388 ; emoji ; L1 ; none ; j # V6.0 (🎈) BALLOON -1F389 ; emoji ; L1 ; none ; j # V6.0 (🎉) PARTY POPPER -1F38A ; emoji ; L1 ; none ; j # V6.0 (🎊) CONFETTI BALL -1F38B ; emoji ; L1 ; none ; j # V6.0 (🎋) TANABATA TREE -1F38C ; emoji ; L1 ; none ; j # V6.0 (🎌) CROSSED FLAGS -1F38D ; emoji ; L1 ; none ; j # V6.0 (ðŸŽ) PINE DECORATION -1F38E ; emoji ; L1 ; none ; j # V6.0 (🎎) JAPANESE DOLLS -1F38F ; emoji ; L1 ; none ; j # V6.0 (ðŸŽ) CARP STREAMER -1F390 ; emoji ; L1 ; none ; j # V6.0 (ðŸŽ) WIND CHIME -1F391 ; emoji ; L1 ; none ; j # V6.0 (🎑) MOON VIEWING CEREMONY -1F392 ; emoji ; L1 ; none ; j # V6.0 (🎒) SCHOOL SATCHEL -1F393 ; emoji ; L1 ; none ; j w # V6.0 (🎓) GRADUATION CAP -1F396 ; text ; L2 ; none ; w # V7.0 (🎖) MILITARY MEDAL -1F397 ; text ; L2 ; none ; w # V7.0 (🎗) REMINDER RIBBON -1F399 ; text ; L2 ; none ; w # V7.0 (🎙) STUDIO MICROPHONE -1F39A ; text ; L2 ; none ; w # V7.0 (🎚) LEVEL SLIDER -1F39B ; text ; L2 ; none ; w # V7.0 (🎛) CONTROL KNOBS -1F39E ; text ; L2 ; none ; w # V7.0 (🎞) FILM FRAMES -1F39F ; text ; L2 ; none ; w # V7.0 (🎟) ADMISSION TICKETS -1F3A0 ; emoji ; L1 ; none ; j # V6.0 (🎠) CAROUSEL HORSE -1F3A1 ; emoji ; L1 ; none ; j # V6.0 (🎡) FERRIS WHEEL -1F3A2 ; emoji ; L1 ; none ; j # V6.0 (🎢) ROLLER COASTER -1F3A3 ; emoji ; L1 ; none ; j # V6.0 (🎣) FISHING POLE AND FISH -1F3A4 ; emoji ; L1 ; none ; j # V6.0 (🎤) MICROPHONE -1F3A5 ; emoji ; L1 ; none ; j # V6.0 (🎥) MOVIE CAMERA -1F3A6 ; emoji ; L1 ; none ; j # V6.0 (🎦) CINEMA -1F3A7 ; emoji ; L1 ; none ; j w # V6.0 (🎧) HEADPHONE -1F3A8 ; emoji ; L1 ; none ; j # V6.0 (🎨) ARTIST PALETTE -1F3A9 ; emoji ; L1 ; none ; j # V6.0 (🎩) TOP HAT -1F3AA ; emoji ; L1 ; none ; j # V6.0 (🎪) CIRCUS TENT -1F3AB ; emoji ; L1 ; none ; j # V6.0 (🎫) TICKET -1F3AC ; emoji ; L1 ; none ; j w # V6.0 (🎬) CLAPPER BOARD -1F3AD ; emoji ; L1 ; none ; j w # V6.0 (🎭) PERFORMING ARTS -1F3AE ; emoji ; L1 ; none ; j w # V6.0 (🎮) VIDEO GAME -1F3AF ; emoji ; L1 ; none ; j # V6.0 (🎯) DIRECT HIT -1F3B0 ; emoji ; L1 ; none ; j # V6.0 (🎰) SLOT MACHINE -1F3B1 ; emoji ; L1 ; none ; j # V6.0 (🎱) BILLIARDS -1F3B2 ; emoji ; L1 ; none ; j # V6.0 (🎲) GAME DIE -1F3B3 ; emoji ; L1 ; none ; j # V6.0 (🎳) BOWLING -1F3B4 ; emoji ; L1 ; none ; j # V6.0 (🎴) FLOWER PLAYING CARDS -1F3B5 ; emoji ; L1 ; none ; j # V6.0 (🎵) MUSICAL NOTE -1F3B6 ; emoji ; L1 ; none ; j # V6.0 (🎶) MULTIPLE MUSICAL NOTES -1F3B7 ; emoji ; L1 ; none ; j # V6.0 (🎷) SAXOPHONE -1F3B8 ; emoji ; L1 ; none ; j # V6.0 (🎸) GUITAR -1F3B9 ; emoji ; L1 ; none ; j # V6.0 (🎹) MUSICAL KEYBOARD -1F3BA ; emoji ; L1 ; none ; j # V6.0 (🎺) TRUMPET -1F3BB ; emoji ; L1 ; none ; j # V6.0 (🎻) VIOLIN -1F3BC ; emoji ; L1 ; none ; j # V6.0 (🎼) MUSICAL SCORE -1F3BD ; emoji ; L1 ; none ; j # V6.0 (🎽) RUNNING SHIRT WITH SASH -1F3BE ; emoji ; L1 ; none ; j # V6.0 (🎾) TENNIS RACQUET AND BALL -1F3BF ; emoji ; L1 ; none ; j # V6.0 (🎿) SKI AND SKI BOOT -1F3C0 ; emoji ; L1 ; none ; j # V6.0 (ðŸ€) BASKETBALL AND HOOP -1F3C1 ; emoji ; L1 ; none ; j # V6.0 (ðŸ) CHEQUERED FLAG -1F3C2 ; emoji ; L1 ; secondary ; j w # V6.0 (ðŸ‚) SNOWBOARDER -1F3C3 ; emoji ; L1 ; secondary ; j # V6.0 (ðŸƒ) RUNNER -1F3C4 ; emoji ; L1 ; secondary ; j w # V6.0 (ðŸ„) SURFER -1F3C5 ; emoji ; L2 ; none ; x # V7.0 (ðŸ…) SPORTS MEDAL -1F3C6 ; emoji ; L1 ; none ; j w # V6.0 (ðŸ†) TROPHY -1F3C7 ; emoji ; L1 ; secondary ; x # V6.0 (ðŸ‡) HORSE RACING -1F3C8 ; emoji ; L1 ; none ; j # V6.0 (ðŸˆ) AMERICAN FOOTBALL -1F3C9 ; emoji ; L1 ; none ; x # V6.0 (ðŸ‰) RUGBY FOOTBALL -1F3CA ; emoji ; L1 ; secondary ; j w # V6.0 (ðŸŠ) SWIMMER -1F3CB ; text ; L2 ; none ; w # V7.0 (ðŸ‹) WEIGHT LIFTER -1F3CC ; text ; L2 ; none ; w # V7.0 (ðŸŒ) GOLFER -1F3CD ; text ; L2 ; none ; w # V7.0 (ðŸ) RACING MOTORCYCLE -1F3CE ; text ; L2 ; none ; w # V7.0 (ðŸŽ) RACING CAR -1F3CF ; emoji ; L2 ; none ; x # V8.0 (ðŸ) CRICKET BAT AND BALL -1F3D0 ; emoji ; L2 ; none ; x # V8.0 (ðŸ) VOLLEYBALL -1F3D1 ; emoji ; L2 ; none ; x # V8.0 (ðŸ‘) FIELD HOCKEY STICK AND BALL -1F3D2 ; emoji ; L2 ; none ; x # V8.0 (ðŸ’) ICE HOCKEY STICK AND PUCK -1F3D3 ; emoji ; L2 ; none ; x # V8.0 (ðŸ“) TABLE TENNIS PADDLE AND BALL -1F3D4 ; text ; L2 ; none ; w # V7.0 (ðŸ”) SNOW CAPPED MOUNTAIN -1F3D5 ; text ; L2 ; none ; w # V7.0 (ðŸ•) CAMPING -1F3D6 ; text ; L2 ; none ; w # V7.0 (ðŸ–) BEACH WITH UMBRELLA -1F3D7 ; text ; L2 ; none ; w # V7.0 (ðŸ—) BUILDING CONSTRUCTION -1F3D8 ; text ; L2 ; none ; w # V7.0 (ðŸ˜) HOUSE BUILDINGS -1F3D9 ; text ; L2 ; none ; w # V7.0 (ðŸ™) CITYSCAPE -1F3DA ; text ; L2 ; none ; w # V7.0 (ðŸš) DERELICT HOUSE BUILDING -1F3DB ; text ; L2 ; none ; w # V7.0 (ðŸ›) CLASSICAL BUILDING -1F3DC ; text ; L2 ; none ; w # V7.0 (ðŸœ) DESERT -1F3DD ; text ; L2 ; none ; w # V7.0 (ðŸ) DESERT ISLAND -1F3DE ; text ; L2 ; none ; w # V7.0 (ðŸž) NATIONAL PARK -1F3DF ; text ; L2 ; none ; w # V7.0 (ðŸŸ) STADIUM -1F3E0 ; emoji ; L1 ; none ; j w # V6.0 (ðŸ ) HOUSE BUILDING -1F3E1 ; emoji ; L1 ; none ; j # V6.0 (ðŸ¡) HOUSE WITH GARDEN -1F3E2 ; emoji ; L1 ; none ; j # V6.0 (ðŸ¢) OFFICE BUILDING -1F3E3 ; emoji ; L1 ; none ; j # V6.0 (ðŸ£) JAPANESE POST OFFICE -1F3E4 ; emoji ; L1 ; none ; x # V6.0 (ðŸ¤) EUROPEAN POST OFFICE -1F3E5 ; emoji ; L1 ; none ; j # V6.0 (ðŸ¥) HOSPITAL -1F3E6 ; emoji ; L1 ; none ; j # V6.0 (ðŸ¦) BANK -1F3E7 ; emoji ; L1 ; none ; j # V6.0 (ðŸ§) AUTOMATED TELLER MACHINE -1F3E8 ; emoji ; L1 ; none ; j # V6.0 (ðŸ¨) HOTEL -1F3E9 ; emoji ; L1 ; none ; j # V6.0 (ðŸ©) LOVE HOTEL -1F3EA ; emoji ; L1 ; none ; j # V6.0 (ðŸª) CONVENIENCE STORE -1F3EB ; emoji ; L1 ; none ; j # V6.0 (ðŸ«) SCHOOL -1F3EC ; emoji ; L1 ; none ; j # V6.0 (ðŸ¬) DEPARTMENT STORE -1F3ED ; emoji ; L1 ; none ; j w # V6.0 (ðŸ­) FACTORY -1F3EE ; emoji ; L1 ; none ; j # V6.0 (ðŸ®) IZAKAYA LANTERN -1F3EF ; emoji ; L1 ; none ; j # V6.0 (ðŸ¯) JAPANESE CASTLE -1F3F0 ; emoji ; L1 ; none ; j # V6.0 (ðŸ°) EUROPEAN CASTLE -1F3F3 ; text ; L2 ; none ; w # V7.0 (ðŸ³) WAVING WHITE FLAG -1F3F4 ; emoji ; L2 ; none ; x # V7.0 (ðŸ´) WAVING BLACK FLAG -1F3F5 ; text ; L2 ; none ; w # V7.0 (ðŸµ) ROSETTE -1F3F7 ; text ; L2 ; none ; w # V7.0 (ðŸ·) LABEL -1F3F8 ; emoji ; L2 ; none ; x # V8.0 (ðŸ¸) BADMINTON RACQUET AND SHUTTLECOCK -1F3F9 ; emoji ; L2 ; none ; x # V8.0 (ðŸ¹) BOW AND ARROW -1F3FA ; emoji ; L2 ; none ; x # V8.0 (ðŸº) AMPHORA -1F3FB ; emoji ; L2 ; modifier ; x # V8.0 (ðŸ») EMOJI MODIFIER FITZPATRICK TYPE-1-2 -1F3FC ; emoji ; L2 ; modifier ; x # V8.0 (ðŸ¼) EMOJI MODIFIER FITZPATRICK TYPE-3 -1F3FD ; emoji ; L2 ; modifier ; x # V8.0 (ðŸ½) EMOJI MODIFIER FITZPATRICK TYPE-4 -1F3FE ; emoji ; L2 ; modifier ; x # V8.0 (ðŸ¾) EMOJI MODIFIER FITZPATRICK TYPE-5 -1F3FF ; emoji ; L2 ; modifier ; x # V8.0 (ðŸ¿) EMOJI MODIFIER FITZPATRICK TYPE-6 -1F400 ; emoji ; L1 ; none ; x # V6.0 (ðŸ€) RAT -1F401 ; emoji ; L1 ; none ; x # V6.0 (ðŸ) MOUSE -1F402 ; emoji ; L1 ; none ; x # V6.0 (ðŸ‚) OX -1F403 ; emoji ; L1 ; none ; x # V6.0 (ðŸƒ) WATER BUFFALO -1F404 ; emoji ; L1 ; none ; x # V6.0 (ðŸ„) COW -1F405 ; emoji ; L1 ; none ; x # V6.0 (ðŸ…) TIGER -1F406 ; emoji ; L1 ; none ; x # V6.0 (ðŸ†) LEOPARD -1F407 ; emoji ; L1 ; none ; x # V6.0 (ðŸ‡) RABBIT -1F408 ; emoji ; L1 ; none ; w # V6.0 (ðŸˆ) CAT -1F409 ; emoji ; L1 ; none ; x # V6.0 (ðŸ‰) DRAGON -1F40A ; emoji ; L1 ; none ; x # V6.0 (ðŸŠ) CROCODILE -1F40B ; emoji ; L1 ; none ; x # V6.0 (ðŸ‹) WHALE -1F40C ; emoji ; L1 ; none ; j # V6.0 (ðŸŒ) SNAIL -1F40D ; emoji ; L1 ; none ; j # V6.0 (ðŸ) SNAKE -1F40E ; emoji ; L1 ; none ; j # V6.0 (ðŸŽ) HORSE -1F40F ; emoji ; L1 ; none ; x # V6.0 (ðŸ) RAM -1F410 ; emoji ; L1 ; none ; x # V6.0 (ðŸ) GOAT -1F411 ; emoji ; L1 ; none ; j # V6.0 (ðŸ‘) SHEEP -1F412 ; emoji ; L1 ; none ; j # V6.0 (ðŸ’) MONKEY -1F413 ; emoji ; L1 ; none ; x # V6.0 (ðŸ“) ROOSTER -1F414 ; emoji ; L1 ; none ; j # V6.0 (ðŸ”) CHICKEN -1F415 ; emoji ; L1 ; none ; w # V6.0 (ðŸ•) DOG -1F416 ; emoji ; L1 ; none ; x # V6.0 (ðŸ–) PIG -1F417 ; emoji ; L1 ; none ; j # V6.0 (ðŸ—) BOAR -1F418 ; emoji ; L1 ; none ; j # V6.0 (ðŸ˜) ELEPHANT -1F419 ; emoji ; L1 ; none ; j # V6.0 (ðŸ™) OCTOPUS -1F41A ; emoji ; L1 ; none ; j # V6.0 (ðŸš) SPIRAL SHELL -1F41B ; emoji ; L1 ; none ; j # V6.0 (ðŸ›) BUG -1F41C ; emoji ; L1 ; none ; j # V6.0 (ðŸœ) ANT -1F41D ; emoji ; L1 ; none ; j # V6.0 (ðŸ) HONEYBEE -1F41E ; emoji ; L1 ; none ; j # V6.0 (ðŸž) LADY BEETLE -1F41F ; emoji ; L1 ; none ; j w # V6.0 (ðŸŸ) FISH -1F420 ; emoji ; L1 ; none ; j # V6.0 (ðŸ ) TROPICAL FISH -1F421 ; emoji ; L1 ; none ; j # V6.0 (ðŸ¡) BLOWFISH -1F422 ; emoji ; L1 ; none ; j # V6.0 (ðŸ¢) TURTLE -1F423 ; emoji ; L1 ; none ; j # V6.0 (ðŸ£) HATCHING CHICK -1F424 ; emoji ; L1 ; none ; j # V6.0 (ðŸ¤) BABY CHICK -1F425 ; emoji ; L1 ; none ; j # V6.0 (ðŸ¥) FRONT-FACING BABY CHICK -1F426 ; emoji ; L1 ; none ; j w # V6.0 (ðŸ¦) BIRD -1F427 ; emoji ; L1 ; none ; j # V6.0 (ðŸ§) PENGUIN -1F428 ; emoji ; L1 ; none ; j # V6.0 (ðŸ¨) KOALA -1F429 ; emoji ; L1 ; none ; j # V6.0 (ðŸ©) POODLE -1F42A ; emoji ; L1 ; none ; x # V6.0 (ðŸª) DROMEDARY CAMEL -1F42B ; emoji ; L1 ; none ; j # V6.0 (ðŸ«) BACTRIAN CAMEL -1F42C ; emoji ; L1 ; none ; j # V6.0 (ðŸ¬) DOLPHIN -1F42D ; emoji ; L1 ; none ; j # V6.0 (ðŸ­) MOUSE FACE -1F42E ; emoji ; L1 ; none ; j # V6.0 (ðŸ®) COW FACE -1F42F ; emoji ; L1 ; none ; j # V6.0 (ðŸ¯) TIGER FACE -1F430 ; emoji ; L1 ; none ; j # V6.0 (ðŸ°) RABBIT FACE -1F431 ; emoji ; L1 ; none ; j # V6.0 (ðŸ±) CAT FACE -1F432 ; emoji ; L1 ; none ; j # V6.0 (ðŸ²) DRAGON FACE -1F433 ; emoji ; L1 ; none ; j # V6.0 (ðŸ³) SPOUTING WHALE -1F434 ; emoji ; L1 ; none ; j # V6.0 (ðŸ´) HORSE FACE -1F435 ; emoji ; L1 ; none ; j # V6.0 (ðŸµ) MONKEY FACE -1F436 ; emoji ; L1 ; none ; j # V6.0 (ðŸ¶) DOG FACE -1F437 ; emoji ; L1 ; none ; j # V6.0 (ðŸ·) PIG FACE -1F438 ; emoji ; L1 ; none ; j # V6.0 (ðŸ¸) FROG FACE -1F439 ; emoji ; L1 ; none ; j # V6.0 (ðŸ¹) HAMSTER FACE -1F43A ; emoji ; L1 ; none ; j # V6.0 (ðŸº) WOLF FACE -1F43B ; emoji ; L1 ; none ; j # V6.0 (ðŸ») BEAR FACE -1F43C ; emoji ; L1 ; none ; j # V6.0 (ðŸ¼) PANDA FACE -1F43D ; emoji ; L1 ; none ; j # V6.0 (ðŸ½) PIG NOSE -1F43E ; emoji ; L1 ; none ; j # V6.0 (ðŸ¾) PAW PRINTS -1F43F ; text ; L2 ; none ; w # V7.0 (ðŸ¿) CHIPMUNK -1F440 ; emoji ; L1 ; none ; j # V6.0 (👀) EYES -1F441 ; text ; L2 ; none ; w # V7.0 (ðŸ‘) EYE -1F442 ; emoji ; L1 ; secondary ; j w # V6.0 (👂) EAR -1F443 ; emoji ; L1 ; secondary ; j # V6.0 (👃) NOSE -1F444 ; emoji ; L1 ; none ; j # V6.0 (👄) MOUTH -1F445 ; emoji ; L1 ; none ; j # V6.0 (👅) TONGUE -1F446 ; emoji ; L1 ; secondary ; j w # V6.0 (👆) WHITE UP POINTING BACKHAND INDEX -1F447 ; emoji ; L1 ; secondary ; j w # V6.0 (👇) WHITE DOWN POINTING BACKHAND INDEX -1F448 ; emoji ; L1 ; secondary ; j w # V6.0 (👈) WHITE LEFT POINTING BACKHAND INDEX -1F449 ; emoji ; L1 ; secondary ; j w # V6.0 (👉) WHITE RIGHT POINTING BACKHAND INDEX -1F44A ; emoji ; L1 ; secondary ; j # V6.0 (👊) FISTED HAND SIGN -1F44B ; emoji ; L1 ; secondary ; j # V6.0 (👋) WAVING HAND SIGN -1F44C ; emoji ; L1 ; secondary ; j # V6.0 (👌) OK HAND SIGN -1F44D ; emoji ; L1 ; secondary ; j w # V6.0 (ðŸ‘) THUMBS UP SIGN -1F44E ; emoji ; L1 ; secondary ; j w # V6.0 (👎) THUMBS DOWN SIGN -1F44F ; emoji ; L1 ; secondary ; j # V6.0 (ðŸ‘) CLAPPING HANDS SIGN -1F450 ; emoji ; L1 ; secondary ; j # V6.0 (ðŸ‘) OPEN HANDS SIGN -1F451 ; emoji ; L1 ; none ; j # V6.0 (👑) CROWN -1F452 ; emoji ; L1 ; none ; j # V6.0 (👒) WOMANS HAT -1F453 ; emoji ; L1 ; none ; j w # V6.0 (👓) EYEGLASSES -1F454 ; emoji ; L1 ; none ; j # V6.0 (👔) NECKTIE -1F455 ; emoji ; L1 ; none ; j # V6.0 (👕) T-SHIRT -1F456 ; emoji ; L1 ; none ; j # V6.0 (👖) JEANS -1F457 ; emoji ; L1 ; none ; j # V6.0 (👗) DRESS -1F458 ; emoji ; L1 ; none ; j # V6.0 (👘) KIMONO -1F459 ; emoji ; L1 ; none ; j # V6.0 (👙) BIKINI -1F45A ; emoji ; L1 ; none ; j # V6.0 (👚) WOMANS CLOTHES -1F45B ; emoji ; L1 ; none ; j # V6.0 (👛) PURSE -1F45C ; emoji ; L1 ; none ; j # V6.0 (👜) HANDBAG -1F45D ; emoji ; L1 ; none ; j # V6.0 (ðŸ‘) POUCH -1F45E ; emoji ; L1 ; none ; j # V6.0 (👞) MANS SHOE -1F45F ; emoji ; L1 ; none ; j # V6.0 (👟) ATHLETIC SHOE -1F460 ; emoji ; L1 ; none ; j # V6.0 (👠) HIGH-HEELED SHOE -1F461 ; emoji ; L1 ; none ; j # V6.0 (👡) WOMANS SANDAL -1F462 ; emoji ; L1 ; none ; j # V6.0 (👢) WOMANS BOOTS -1F463 ; emoji ; L1 ; none ; j # V6.0 (👣) FOOTPRINTS -1F464 ; emoji ; L1 ; none ; j # V6.0 (👤) BUST IN SILHOUETTE -1F465 ; emoji ; L1 ; none ; x # V6.0 (👥) BUSTS IN SILHOUETTE -1F466 ; emoji ; L1 ; primary ; j # V6.0 (👦) BOY -1F467 ; emoji ; L1 ; primary ; j # V6.0 (👧) GIRL -1F468 ; emoji ; L1 ; primary ; j # V6.0 (👨) MAN -1F469 ; emoji ; L1 ; primary ; j # V6.0 (👩) WOMAN -1F46A ; emoji ; L1 ; none ; j w # V6.0 (👪) FAMILY -1F46B ; emoji ; L1 ; none ; j # V6.0 (👫) MAN AND WOMAN HOLDING HANDS -1F46C ; emoji ; L1 ; none ; x # V6.0 (👬) TWO MEN HOLDING HANDS -1F46D ; emoji ; L1 ; none ; x # V6.0 (👭) TWO WOMEN HOLDING HANDS -1F46E ; emoji ; L1 ; primary ; j # V6.0 (👮) POLICE OFFICER -1F46F ; emoji ; L1 ; none ; j # V6.0 (👯) WOMAN WITH BUNNY EARS -1F470 ; emoji ; L1 ; primary ; j # V6.0 (👰) BRIDE WITH VEIL -1F471 ; emoji ; L1 ; primary ; j # V6.0 (👱) PERSON WITH BLOND HAIR -1F472 ; emoji ; L1 ; primary ; j # V6.0 (👲) MAN WITH GUA PI MAO -1F473 ; emoji ; L1 ; primary ; j # V6.0 (👳) MAN WITH TURBAN -1F474 ; emoji ; L1 ; primary ; j # V6.0 (👴) OLDER MAN -1F475 ; emoji ; L1 ; primary ; j # V6.0 (👵) OLDER WOMAN -1F476 ; emoji ; L1 ; primary ; j # V6.0 (👶) BABY -1F477 ; emoji ; L1 ; primary ; j # V6.0 (👷) CONSTRUCTION WORKER -1F478 ; emoji ; L1 ; primary ; j # V6.0 (👸) PRINCESS -1F479 ; emoji ; L1 ; none ; j # V6.0 (👹) JAPANESE OGRE -1F47A ; emoji ; L1 ; none ; j # V6.0 (👺) JAPANESE GOBLIN -1F47B ; emoji ; L1 ; none ; j # V6.0 (👻) GHOST -1F47C ; emoji ; L1 ; primary ; j # V6.0 (👼) BABY ANGEL -1F47D ; emoji ; L1 ; none ; j w # V6.0 (👽) EXTRATERRESTRIAL ALIEN -1F47E ; emoji ; L1 ; none ; j # V6.0 (👾) ALIEN MONSTER -1F47F ; emoji ; L1 ; secondary ; j # V6.0 (👿) IMP -1F480 ; emoji ; L1 ; none ; j # V6.0 (💀) SKULL -1F481 ; emoji ; L1 ; primary ; j # V6.0 (ðŸ’) INFORMATION DESK PERSON -1F482 ; emoji ; L1 ; primary ; j # V6.0 (💂) GUARDSMAN -1F483 ; emoji ; L1 ; secondary ; j # V6.0 (💃) DANCER -1F484 ; emoji ; L1 ; none ; j # V6.0 (💄) LIPSTICK -1F485 ; emoji ; L1 ; secondary ; j # V6.0 (💅) NAIL POLISH -1F486 ; emoji ; L1 ; primary ; j # V6.0 (💆) FACE MASSAGE -1F487 ; emoji ; L1 ; primary ; j # V6.0 (💇) HAIRCUT -1F488 ; emoji ; L1 ; none ; j # V6.0 (💈) BARBER POLE -1F489 ; emoji ; L1 ; none ; j # V6.0 (💉) SYRINGE -1F48A ; emoji ; L1 ; none ; j # V6.0 (💊) PILL -1F48B ; emoji ; L1 ; none ; j # V6.0 (💋) KISS MARK -1F48C ; emoji ; L1 ; none ; j # V6.0 (💌) LOVE LETTER -1F48D ; emoji ; L1 ; none ; j # V6.0 (ðŸ’) RING -1F48E ; emoji ; L1 ; none ; j # V6.0 (💎) GEM STONE -1F48F ; emoji ; L1 ; none ; j # V6.0 (ðŸ’) KISS -1F490 ; emoji ; L1 ; none ; j # V6.0 (ðŸ’) BOUQUET -1F491 ; emoji ; L1 ; none ; j # V6.0 (💑) COUPLE WITH HEART -1F492 ; emoji ; L1 ; none ; j # V6.0 (💒) WEDDING -1F493 ; emoji ; L1 ; none ; j # V6.0 (💓) BEATING HEART -1F494 ; emoji ; L1 ; none ; j # V6.0 (💔) BROKEN HEART -1F495 ; emoji ; L1 ; none ; j # V6.0 (💕) TWO HEARTS -1F496 ; emoji ; L1 ; none ; j # V6.0 (💖) SPARKLING HEART -1F497 ; emoji ; L1 ; none ; j # V6.0 (💗) GROWING HEART -1F498 ; emoji ; L1 ; none ; j # V6.0 (💘) HEART WITH ARROW -1F499 ; emoji ; L1 ; none ; j # V6.0 (💙) BLUE HEART -1F49A ; emoji ; L1 ; none ; j # V6.0 (💚) GREEN HEART -1F49B ; emoji ; L1 ; none ; j # V6.0 (💛) YELLOW HEART -1F49C ; emoji ; L1 ; none ; j # V6.0 (💜) PURPLE HEART -1F49D ; emoji ; L1 ; none ; j # V6.0 (ðŸ’) HEART WITH RIBBON -1F49E ; emoji ; L1 ; none ; j # V6.0 (💞) REVOLVING HEARTS -1F49F ; emoji ; L1 ; none ; j # V6.0 (💟) HEART DECORATION -1F4A0 ; emoji ; L1 ; none ; j # V6.0 (💠) DIAMOND SHAPE WITH A DOT INSIDE -1F4A1 ; emoji ; L1 ; none ; j # V6.0 (💡) ELECTRIC LIGHT BULB -1F4A2 ; emoji ; L1 ; none ; j # V6.0 (💢) ANGER SYMBOL -1F4A3 ; emoji ; L1 ; none ; j w # V6.0 (💣) BOMB -1F4A4 ; emoji ; L1 ; none ; j # V6.0 (💤) SLEEPING SYMBOL -1F4A5 ; emoji ; L1 ; none ; j # V6.0 (💥) COLLISION SYMBOL -1F4A6 ; emoji ; L1 ; none ; j # V6.0 (💦) SPLASHING SWEAT SYMBOL -1F4A7 ; emoji ; L1 ; none ; j # V6.0 (💧) DROPLET -1F4A8 ; emoji ; L1 ; none ; j # V6.0 (💨) DASH SYMBOL -1F4A9 ; emoji ; L1 ; none ; j # V6.0 (💩) PILE OF POO -1F4AA ; emoji ; L1 ; secondary ; j # V6.0 (💪) FLEXED BICEPS -1F4AB ; emoji ; L1 ; none ; j # V6.0 (💫) DIZZY SYMBOL -1F4AC ; emoji ; L1 ; none ; j # V6.0 (💬) SPEECH BALLOON -1F4AD ; emoji ; L1 ; none ; x # V6.0 (💭) THOUGHT BALLOON -1F4AE ; emoji ; L1 ; none ; j # V6.0 (💮) WHITE FLOWER -1F4AF ; emoji ; L1 ; none ; j # V6.0 (💯) HUNDRED POINTS SYMBOL -1F4B0 ; emoji ; L1 ; none ; j w # V6.0 (💰) MONEY BAG -1F4B1 ; emoji ; L1 ; none ; j # V6.0 (💱) CURRENCY EXCHANGE -1F4B2 ; emoji ; L1 ; none ; j # V6.0 (💲) HEAVY DOLLAR SIGN -1F4B3 ; emoji ; L1 ; none ; j w # V6.0 (💳) CREDIT CARD -1F4B4 ; emoji ; L1 ; none ; j # V6.0 (💴) BANKNOTE WITH YEN SIGN -1F4B5 ; emoji ; L1 ; none ; j # V6.0 (💵) BANKNOTE WITH DOLLAR SIGN -1F4B6 ; emoji ; L1 ; none ; x # V6.0 (💶) BANKNOTE WITH EURO SIGN -1F4B7 ; emoji ; L1 ; none ; x # V6.0 (💷) BANKNOTE WITH POUND SIGN -1F4B8 ; emoji ; L1 ; none ; j # V6.0 (💸) MONEY WITH WINGS -1F4B9 ; emoji ; L1 ; none ; j # V6.0 (💹) CHART WITH UPWARDS TREND AND YEN SIGN -1F4BA ; emoji ; L1 ; none ; j # V6.0 (💺) SEAT -1F4BB ; emoji ; L1 ; none ; j w # V6.0 (💻) PERSONAL COMPUTER -1F4BC ; emoji ; L1 ; none ; j # V6.0 (💼) BRIEFCASE -1F4BD ; emoji ; L1 ; none ; j # V6.0 (💽) MINIDISC -1F4BE ; emoji ; L1 ; none ; j # V6.0 (💾) FLOPPY DISK -1F4BF ; emoji ; L1 ; none ; j w # V6.0 (💿) OPTICAL DISC -1F4C0 ; emoji ; L1 ; none ; j # V6.0 (📀) DVD -1F4C1 ; emoji ; L1 ; none ; j # V6.0 (ðŸ“) FILE FOLDER -1F4C2 ; emoji ; L1 ; none ; j # V6.0 (📂) OPEN FILE FOLDER -1F4C3 ; emoji ; L1 ; none ; j # V6.0 (📃) PAGE WITH CURL -1F4C4 ; emoji ; L1 ; none ; j # V6.0 (📄) PAGE FACING UP -1F4C5 ; emoji ; L1 ; none ; j # V6.0 (📅) CALENDAR -1F4C6 ; emoji ; L1 ; none ; j # V6.0 (📆) TEAR-OFF CALENDAR -1F4C7 ; emoji ; L1 ; none ; j # V6.0 (📇) CARD INDEX -1F4C8 ; emoji ; L1 ; none ; j # V6.0 (📈) CHART WITH UPWARDS TREND -1F4C9 ; emoji ; L1 ; none ; j # V6.0 (📉) CHART WITH DOWNWARDS TREND -1F4CA ; emoji ; L1 ; none ; j # V6.0 (📊) BAR CHART -1F4CB ; emoji ; L1 ; none ; j w # V6.0 (📋) CLIPBOARD -1F4CC ; emoji ; L1 ; none ; j # V6.0 (📌) PUSHPIN -1F4CD ; emoji ; L1 ; none ; j # V6.0 (ðŸ“) ROUND PUSHPIN -1F4CE ; emoji ; L1 ; none ; j # V6.0 (📎) PAPERCLIP -1F4CF ; emoji ; L1 ; none ; j # V6.0 (ðŸ“) STRAIGHT RULER -1F4D0 ; emoji ; L1 ; none ; j # V6.0 (ðŸ“) TRIANGULAR RULER -1F4D1 ; emoji ; L1 ; none ; j # V6.0 (📑) BOOKMARK TABS -1F4D2 ; emoji ; L1 ; none ; j # V6.0 (📒) LEDGER -1F4D3 ; emoji ; L1 ; none ; j # V6.0 (📓) NOTEBOOK -1F4D4 ; emoji ; L1 ; none ; j # V6.0 (📔) NOTEBOOK WITH DECORATIVE COVER -1F4D5 ; emoji ; L1 ; none ; j # V6.0 (📕) CLOSED BOOK -1F4D6 ; emoji ; L1 ; none ; j # V6.0 (📖) OPEN BOOK -1F4D7 ; emoji ; L1 ; none ; j # V6.0 (📗) GREEN BOOK -1F4D8 ; emoji ; L1 ; none ; j # V6.0 (📘) BLUE BOOK -1F4D9 ; emoji ; L1 ; none ; j # V6.0 (📙) ORANGE BOOK -1F4DA ; emoji ; L1 ; none ; j w # V6.0 (📚) BOOKS -1F4DB ; emoji ; L1 ; none ; j # V6.0 (📛) NAME BADGE -1F4DC ; emoji ; L1 ; none ; j # V6.0 (📜) SCROLL -1F4DD ; emoji ; L1 ; none ; j # V6.0 (ðŸ“) MEMO -1F4DE ; emoji ; L1 ; none ; j # V6.0 (📞) TELEPHONE RECEIVER -1F4DF ; emoji ; L1 ; none ; j w # V6.0 (📟) PAGER -1F4E0 ; emoji ; L1 ; none ; j # V6.0 (📠) FAX MACHINE -1F4E1 ; emoji ; L1 ; none ; j # V6.0 (📡) SATELLITE ANTENNA -1F4E2 ; emoji ; L1 ; none ; j # V6.0 (📢) PUBLIC ADDRESS LOUDSPEAKER -1F4E3 ; emoji ; L1 ; none ; j # V6.0 (📣) CHEERING MEGAPHONE -1F4E4 ; emoji ; L1 ; none ; j w # V6.0 (📤) OUTBOX TRAY -1F4E5 ; emoji ; L1 ; none ; j w # V6.0 (📥) INBOX TRAY -1F4E6 ; emoji ; L1 ; none ; j w # V6.0 (📦) PACKAGE -1F4E7 ; emoji ; L1 ; none ; j # V6.0 (📧) E-MAIL SYMBOL -1F4E8 ; emoji ; L1 ; none ; j # V6.0 (📨) INCOMING ENVELOPE -1F4E9 ; emoji ; L1 ; none ; j # V6.0 (📩) ENVELOPE WITH DOWNWARDS ARROW ABOVE -1F4EA ; emoji ; L1 ; none ; j w # V6.0 (📪) CLOSED MAILBOX WITH LOWERED FLAG -1F4EB ; emoji ; L1 ; none ; j w # V6.0 (📫) CLOSED MAILBOX WITH RAISED FLAG -1F4EC ; emoji ; L1 ; none ; w # V6.0 (📬) OPEN MAILBOX WITH RAISED FLAG -1F4ED ; emoji ; L1 ; none ; w # V6.0 (📭) OPEN MAILBOX WITH LOWERED FLAG -1F4EE ; emoji ; L1 ; none ; j # V6.0 (📮) POSTBOX -1F4EF ; emoji ; L1 ; none ; x # V6.0 (📯) POSTAL HORN -1F4F0 ; emoji ; L1 ; none ; j # V6.0 (📰) NEWSPAPER -1F4F1 ; emoji ; L1 ; none ; j # V6.0 (📱) MOBILE PHONE -1F4F2 ; emoji ; L1 ; none ; j # V6.0 (📲) MOBILE PHONE WITH RIGHTWARDS ARROW AT LEFT -1F4F3 ; emoji ; L1 ; none ; j # V6.0 (📳) VIBRATION MODE -1F4F4 ; emoji ; L1 ; none ; j # V6.0 (📴) MOBILE PHONE OFF -1F4F5 ; emoji ; L1 ; none ; x # V6.0 (📵) NO MOBILE PHONES -1F4F6 ; emoji ; L1 ; none ; j # V6.0 (📶) ANTENNA WITH BARS -1F4F7 ; emoji ; L1 ; none ; j w # V6.0 (📷) CAMERA -1F4F8 ; emoji ; L2 ; none ; x # V7.0 (📸) CAMERA WITH FLASH -1F4F9 ; emoji ; L1 ; none ; j w # V6.0 (📹) VIDEO CAMERA -1F4FA ; emoji ; L1 ; none ; j w # V6.0 (📺) TELEVISION -1F4FB ; emoji ; L1 ; none ; j w # V6.0 (📻) RADIO -1F4FC ; emoji ; L1 ; none ; j # V6.0 (📼) VIDEOCASSETTE -1F4FD ; text ; L2 ; none ; w # V7.0 (📽) FILM PROJECTOR -1F4FF ; emoji ; L2 ; none ; x # V8.0 (📿) PRAYER BEADS -1F500 ; emoji ; L1 ; none ; x # V6.0 (🔀) TWISTED RIGHTWARDS ARROWS -1F501 ; emoji ; L1 ; none ; x # V6.0 (ðŸ”) CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS -1F502 ; emoji ; L1 ; none ; x # V6.0 (🔂) CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS WITH CIRCLED ONE OVERLAY -1F503 ; emoji ; L1 ; none ; j # V6.0 (🔃) CLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS -1F504 ; emoji ; L1 ; none ; x # V6.0 (🔄) ANTICLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS -1F505 ; emoji ; L1 ; none ; x # V6.0 (🔅) LOW BRIGHTNESS SYMBOL -1F506 ; emoji ; L1 ; none ; x # V6.0 (🔆) HIGH BRIGHTNESS SYMBOL -1F507 ; emoji ; L1 ; none ; x # V6.0 (🔇) SPEAKER WITH CANCELLATION STROKE -1F508 ; emoji ; L1 ; none ; w # V6.0 (🔈) SPEAKER -1F509 ; emoji ; L1 ; none ; x # V6.0 (🔉) SPEAKER WITH ONE SOUND WAVE -1F50A ; emoji ; L1 ; none ; j # V6.0 (🔊) SPEAKER WITH THREE SOUND WAVES -1F50B ; emoji ; L1 ; none ; j # V6.0 (🔋) BATTERY -1F50C ; emoji ; L1 ; none ; j # V6.0 (🔌) ELECTRIC PLUG -1F50D ; emoji ; L1 ; none ; j w # V6.0 (ðŸ”) LEFT-POINTING MAGNIFYING GLASS -1F50E ; emoji ; L1 ; none ; j # V6.0 (🔎) RIGHT-POINTING MAGNIFYING GLASS -1F50F ; emoji ; L1 ; none ; j # V6.0 (ðŸ”) LOCK WITH INK PEN -1F510 ; emoji ; L1 ; none ; j # V6.0 (ðŸ”) CLOSED LOCK WITH KEY -1F511 ; emoji ; L1 ; none ; j # V6.0 (🔑) KEY -1F512 ; emoji ; L1 ; none ; j w # V6.0 (🔒) LOCK -1F513 ; emoji ; L1 ; none ; j w # V6.0 (🔓) OPEN LOCK -1F514 ; emoji ; L1 ; none ; j # V6.0 (🔔) BELL -1F515 ; emoji ; L1 ; none ; x # V6.0 (🔕) BELL WITH CANCELLATION STROKE -1F516 ; emoji ; L1 ; none ; j # V6.0 (🔖) BOOKMARK -1F517 ; emoji ; L1 ; none ; j # V6.0 (🔗) LINK SYMBOL -1F518 ; emoji ; L1 ; none ; j # V6.0 (🔘) RADIO BUTTON -1F519 ; emoji ; L1 ; none ; j # V6.0 (🔙) BACK WITH LEFTWARDS ARROW ABOVE -1F51A ; emoji ; L1 ; none ; j # V6.0 (🔚) END WITH LEFTWARDS ARROW ABOVE -1F51B ; emoji ; L1 ; none ; j # V6.0 (🔛) ON WITH EXCLAMATION MARK WITH LEFT RIGHT ARROW ABOVE -1F51C ; emoji ; L1 ; none ; j # V6.0 (🔜) SOON WITH RIGHTWARDS ARROW ABOVE -1F51D ; emoji ; L1 ; none ; j # V6.0 (ðŸ”) TOP WITH UPWARDS ARROW ABOVE -1F51E ; emoji ; L1 ; none ; j # V6.0 (🔞) NO ONE UNDER EIGHTEEN SYMBOL -1F51F ; emoji ; L1 ; none ; j # V6.0 (🔟) KEYCAP TEN -1F520 ; emoji ; L1 ; none ; j # V6.0 (🔠) INPUT SYMBOL FOR LATIN CAPITAL LETTERS -1F521 ; emoji ; L1 ; none ; j # V6.0 (🔡) INPUT SYMBOL FOR LATIN SMALL LETTERS -1F522 ; emoji ; L1 ; none ; j # V6.0 (🔢) INPUT SYMBOL FOR NUMBERS -1F523 ; emoji ; L1 ; none ; j # V6.0 (🔣) INPUT SYMBOL FOR SYMBOLS -1F524 ; emoji ; L1 ; none ; j # V6.0 (🔤) INPUT SYMBOL FOR LATIN LETTERS -1F525 ; emoji ; L1 ; none ; j # V6.0 (🔥) FIRE -1F526 ; emoji ; L1 ; none ; j # V6.0 (🔦) ELECTRIC TORCH -1F527 ; emoji ; L1 ; none ; j # V6.0 (🔧) WRENCH -1F528 ; emoji ; L1 ; none ; j # V6.0 (🔨) HAMMER -1F529 ; emoji ; L1 ; none ; j # V6.0 (🔩) NUT AND BOLT -1F52A ; emoji ; L1 ; none ; j # V6.0 (🔪) HOCHO -1F52B ; emoji ; L1 ; none ; j # V6.0 (🔫) PISTOL -1F52C ; emoji ; L1 ; none ; x # V6.0 (🔬) MICROSCOPE -1F52D ; emoji ; L1 ; none ; x # V6.0 (🔭) TELESCOPE -1F52E ; emoji ; L1 ; none ; j # V6.0 (🔮) CRYSTAL BALL -1F52F ; emoji ; L1 ; none ; j # V6.0 (🔯) SIX POINTED STAR WITH MIDDLE DOT -1F530 ; emoji ; L1 ; none ; j # V6.0 (🔰) JAPANESE SYMBOL FOR BEGINNER -1F531 ; emoji ; L1 ; none ; j # V6.0 (🔱) TRIDENT EMBLEM -1F532 ; emoji ; L1 ; none ; j # V6.0 (🔲) BLACK SQUARE BUTTON -1F533 ; emoji ; L1 ; none ; j # V6.0 (🔳) WHITE SQUARE BUTTON -1F534 ; emoji ; L1 ; none ; j # V6.0 (🔴) LARGE RED CIRCLE -1F535 ; emoji ; L1 ; none ; j # V6.0 (🔵) LARGE BLUE CIRCLE -1F536 ; emoji ; L1 ; none ; j # V6.0 (🔶) LARGE ORANGE DIAMOND -1F537 ; emoji ; L1 ; none ; j # V6.0 (🔷) LARGE BLUE DIAMOND -1F538 ; emoji ; L1 ; none ; j # V6.0 (🔸) SMALL ORANGE DIAMOND -1F539 ; emoji ; L1 ; none ; j # V6.0 (🔹) SMALL BLUE DIAMOND -1F53A ; emoji ; L1 ; none ; j # V6.0 (🔺) UP-POINTING RED TRIANGLE -1F53B ; emoji ; L1 ; none ; j # V6.0 (🔻) DOWN-POINTING RED TRIANGLE -1F53C ; emoji ; L1 ; none ; j # V6.0 (🔼) UP-POINTING SMALL RED TRIANGLE -1F53D ; emoji ; L1 ; none ; j # V6.0 (🔽) DOWN-POINTING SMALL RED TRIANGLE -1F549 ; text ; L2 ; none ; w # V7.0 (🕉) OM SYMBOL -1F54A ; text ; L2 ; none ; w # V7.0 (🕊) DOVE OF PEACE -1F54B ; emoji ; L2 ; none ; x # V8.0 (🕋) KAABA -1F54C ; emoji ; L2 ; none ; x # V8.0 (🕌) MOSQUE -1F54D ; emoji ; L2 ; none ; x # V8.0 (ðŸ•) SYNAGOGUE -1F54E ; emoji ; L2 ; none ; x # V8.0 (🕎) MENORAH WITH NINE BRANCHES -1F550 ; emoji ; L1 ; none ; j w # V6.0 (ðŸ•) CLOCK FACE ONE OCLOCK -1F551 ; emoji ; L1 ; none ; j w # V6.0 (🕑) CLOCK FACE TWO OCLOCK -1F552 ; emoji ; L1 ; none ; j w # V6.0 (🕒) CLOCK FACE THREE OCLOCK -1F553 ; emoji ; L1 ; none ; j w # V6.0 (🕓) CLOCK FACE FOUR OCLOCK -1F554 ; emoji ; L1 ; none ; j w # V6.0 (🕔) CLOCK FACE FIVE OCLOCK -1F555 ; emoji ; L1 ; none ; j w # V6.0 (🕕) CLOCK FACE SIX OCLOCK -1F556 ; emoji ; L1 ; none ; j w # V6.0 (🕖) CLOCK FACE SEVEN OCLOCK -1F557 ; emoji ; L1 ; none ; j w # V6.0 (🕗) CLOCK FACE EIGHT OCLOCK -1F558 ; emoji ; L1 ; none ; j w # V6.0 (🕘) CLOCK FACE NINE OCLOCK -1F559 ; emoji ; L1 ; none ; j w # V6.0 (🕙) CLOCK FACE TEN OCLOCK -1F55A ; emoji ; L1 ; none ; j w # V6.0 (🕚) CLOCK FACE ELEVEN OCLOCK -1F55B ; emoji ; L1 ; none ; j w # V6.0 (🕛) CLOCK FACE TWELVE OCLOCK -1F55C ; emoji ; L1 ; none ; w # V6.0 (🕜) CLOCK FACE ONE-THIRTY -1F55D ; emoji ; L1 ; none ; w # V6.0 (ðŸ•) CLOCK FACE TWO-THIRTY -1F55E ; emoji ; L1 ; none ; w # V6.0 (🕞) CLOCK FACE THREE-THIRTY -1F55F ; emoji ; L1 ; none ; w # V6.0 (🕟) CLOCK FACE FOUR-THIRTY -1F560 ; emoji ; L1 ; none ; w # V6.0 (🕠) CLOCK FACE FIVE-THIRTY -1F561 ; emoji ; L1 ; none ; w # V6.0 (🕡) CLOCK FACE SIX-THIRTY -1F562 ; emoji ; L1 ; none ; w # V6.0 (🕢) CLOCK FACE SEVEN-THIRTY -1F563 ; emoji ; L1 ; none ; w # V6.0 (🕣) CLOCK FACE EIGHT-THIRTY -1F564 ; emoji ; L1 ; none ; w # V6.0 (🕤) CLOCK FACE NINE-THIRTY -1F565 ; emoji ; L1 ; none ; w # V6.0 (🕥) CLOCK FACE TEN-THIRTY -1F566 ; emoji ; L1 ; none ; w # V6.0 (🕦) CLOCK FACE ELEVEN-THIRTY -1F567 ; emoji ; L1 ; none ; w # V6.0 (🕧) CLOCK FACE TWELVE-THIRTY -1F56F ; text ; L2 ; none ; w # V7.0 (🕯) CANDLE -1F570 ; text ; L2 ; none ; w # V7.0 (🕰) MANTELPIECE CLOCK -1F573 ; text ; L2 ; none ; w # V7.0 (🕳) HOLE -1F574 ; text ; L2 ; none ; w # V7.0 (🕴) MAN IN BUSINESS SUIT LEVITATING -1F575 ; text ; L2 ; none ; w # V7.0 (🕵) SLEUTH OR SPY -1F576 ; text ; L2 ; none ; w # V7.0 (🕶) DARK SUNGLASSES -1F577 ; text ; L2 ; none ; w # V7.0 (🕷) SPIDER -1F578 ; text ; L2 ; none ; w # V7.0 (🕸) SPIDER WEB -1F579 ; text ; L2 ; none ; w # V7.0 (🕹) JOYSTICK -1F587 ; text ; L2 ; none ; w # V7.0 (🖇) LINKED PAPERCLIPS -1F58A ; text ; L2 ; none ; w # V7.0 (🖊) LOWER LEFT BALLPOINT PEN -1F58B ; text ; L2 ; none ; w # V7.0 (🖋) LOWER LEFT FOUNTAIN PEN -1F58C ; text ; L2 ; none ; w # V7.0 (🖌) LOWER LEFT PAINTBRUSH -1F58D ; text ; L2 ; none ; w # V7.0 (ðŸ–) LOWER LEFT CRAYON -1F590 ; text ; L2 ; secondary ; w # V7.0 (ðŸ–) RAISED HAND WITH FINGERS SPLAYED -1F595 ; emoji ; L2 ; secondary ; x # V7.0 (🖕) REVERSED HAND WITH MIDDLE FINGER EXTENDED -1F596 ; emoji ; L2 ; secondary ; x # V7.0 (🖖) RAISED HAND WITH PART BETWEEN MIDDLE AND RING FINGERS -1F5A5 ; text ; L2 ; none ; w # V7.0 (🖥) DESKTOP COMPUTER -1F5A8 ; text ; L2 ; none ; w # V7.0 (🖨) PRINTER -1F5B1 ; text ; L2 ; none ; w # V7.0 (🖱) THREE BUTTON MOUSE -1F5B2 ; text ; L2 ; none ; w # V7.0 (🖲) TRACKBALL -1F5BC ; text ; L2 ; none ; w # V7.0 (🖼) FRAME WITH PICTURE -1F5C2 ; text ; L2 ; none ; w # V7.0 (🗂) CARD INDEX DIVIDERS -1F5C3 ; text ; L2 ; none ; w # V7.0 (🗃) CARD FILE BOX -1F5C4 ; text ; L2 ; none ; w # V7.0 (🗄) FILE CABINET -1F5D1 ; text ; L2 ; none ; w # V7.0 (🗑) WASTEBASKET -1F5D2 ; text ; L2 ; none ; w # V7.0 (🗒) SPIRAL NOTE PAD -1F5D3 ; text ; L2 ; none ; w # V7.0 (🗓) SPIRAL CALENDAR PAD -1F5DC ; text ; L2 ; none ; w # V7.0 (🗜) COMPRESSION -1F5DD ; text ; L2 ; none ; w # V7.0 (ðŸ—) OLD KEY -1F5DE ; text ; L2 ; none ; w # V7.0 (🗞) ROLLED-UP NEWSPAPER -1F5E1 ; text ; L2 ; none ; w # V7.0 (🗡) DAGGER KNIFE -1F5E3 ; text ; L2 ; none ; w # V7.0 (🗣) SPEAKING HEAD IN SILHOUETTE -1F5EF ; text ; L2 ; none ; w # V7.0 (🗯) RIGHT ANGER BUBBLE -1F5F3 ; text ; L2 ; none ; w # V7.0 (🗳) BALLOT BOX WITH BALLOT -1F5FA ; text ; L2 ; none ; w # V7.0 (🗺) WORLD MAP -1F5FB ; emoji ; L1 ; none ; j # V6.0 (🗻) MOUNT FUJI -1F5FC ; emoji ; L1 ; none ; j # V6.0 (🗼) TOKYO TOWER -1F5FD ; emoji ; L1 ; none ; j # V6.0 (🗽) STATUE OF LIBERTY -1F5FE ; emoji ; L1 ; none ; j # V6.0 (🗾) SILHOUETTE OF JAPAN -1F5FF ; emoji ; L1 ; none ; j # V6.0 (🗿) MOYAI -1F600 ; emoji ; L1 ; secondary ; x # V6.1 (😀) GRINNING FACE -1F601 ; emoji ; L1 ; secondary ; j # V6.0 (ðŸ˜) GRINNING FACE WITH SMILING EYES -1F602 ; emoji ; L1 ; secondary ; j # V6.0 (😂) FACE WITH TEARS OF JOY -1F603 ; emoji ; L1 ; secondary ; j # V6.0 (😃) SMILING FACE WITH OPEN MOUTH -1F604 ; emoji ; L1 ; secondary ; j # V6.0 (😄) SMILING FACE WITH OPEN MOUTH AND SMILING EYES -1F605 ; emoji ; L1 ; secondary ; j # V6.0 (😅) SMILING FACE WITH OPEN MOUTH AND COLD SWEAT -1F606 ; emoji ; L1 ; secondary ; j # V6.0 (😆) SMILING FACE WITH OPEN MOUTH AND TIGHTLY-CLOSED EYES -1F607 ; emoji ; L1 ; secondary ; x # V6.0 (😇) SMILING FACE WITH HALO -1F608 ; emoji ; L1 ; secondary ; x # V6.0 (😈) SMILING FACE WITH HORNS -1F609 ; emoji ; L1 ; secondary ; j # V6.0 (😉) WINKING FACE -1F60A ; emoji ; L1 ; secondary ; j # V6.0 (😊) SMILING FACE WITH SMILING EYES -1F60B ; emoji ; L1 ; secondary ; j # V6.0 (😋) FACE SAVOURING DELICIOUS FOOD -1F60C ; emoji ; L1 ; secondary ; j # V6.0 (😌) RELIEVED FACE -1F60D ; emoji ; L1 ; secondary ; j # V6.0 (ðŸ˜) SMILING FACE WITH HEART-SHAPED EYES -1F60E ; emoji ; L1 ; secondary ; x # V6.0 (😎) SMILING FACE WITH SUNGLASSES -1F60F ; emoji ; L1 ; secondary ; j # V6.0 (ðŸ˜) SMIRKING FACE -1F610 ; emoji ; L1 ; secondary ; w # V6.0 (ðŸ˜) NEUTRAL FACE -1F611 ; emoji ; L1 ; secondary ; x # V6.1 (😑) EXPRESSIONLESS FACE -1F612 ; emoji ; L1 ; secondary ; j # V6.0 (😒) UNAMUSED FACE -1F613 ; emoji ; L1 ; secondary ; j # V6.0 (😓) FACE WITH COLD SWEAT -1F614 ; emoji ; L1 ; secondary ; j # V6.0 (😔) PENSIVE FACE -1F615 ; emoji ; L1 ; secondary ; x # V6.1 (😕) CONFUSED FACE -1F616 ; emoji ; L1 ; secondary ; j # V6.0 (😖) CONFOUNDED FACE -1F617 ; emoji ; L1 ; secondary ; x # V6.1 (😗) KISSING FACE -1F618 ; emoji ; L1 ; secondary ; j # V6.0 (😘) FACE THROWING A KISS -1F619 ; emoji ; L1 ; secondary ; x # V6.1 (😙) KISSING FACE WITH SMILING EYES -1F61A ; emoji ; L1 ; secondary ; j # V6.0 (😚) KISSING FACE WITH CLOSED EYES -1F61B ; emoji ; L1 ; secondary ; x # V6.1 (😛) FACE WITH STUCK-OUT TONGUE -1F61C ; emoji ; L1 ; secondary ; j # V6.0 (😜) FACE WITH STUCK-OUT TONGUE AND WINKING EYE -1F61D ; emoji ; L1 ; secondary ; j # V6.0 (ðŸ˜) FACE WITH STUCK-OUT TONGUE AND TIGHTLY-CLOSED EYES -1F61E ; emoji ; L1 ; secondary ; j # V6.0 (😞) DISAPPOINTED FACE -1F61F ; emoji ; L1 ; secondary ; x # V6.1 (😟) WORRIED FACE -1F620 ; emoji ; L1 ; secondary ; j # V6.0 (😠) ANGRY FACE -1F621 ; emoji ; L1 ; secondary ; j # V6.0 (😡) POUTING FACE -1F622 ; emoji ; L1 ; secondary ; j # V6.0 (😢) CRYING FACE -1F623 ; emoji ; L1 ; secondary ; j # V6.0 (😣) PERSEVERING FACE -1F624 ; emoji ; L1 ; secondary ; j # V6.0 (😤) FACE WITH LOOK OF TRIUMPH -1F625 ; emoji ; L1 ; secondary ; j # V6.0 (😥) DISAPPOINTED BUT RELIEVED FACE -1F626 ; emoji ; L1 ; secondary ; x # V6.1 (😦) FROWNING FACE WITH OPEN MOUTH -1F627 ; emoji ; L1 ; secondary ; x # V6.1 (😧) ANGUISHED FACE -1F628 ; emoji ; L1 ; secondary ; j # V6.0 (😨) FEARFUL FACE -1F629 ; emoji ; L1 ; secondary ; j # V6.0 (😩) WEARY FACE -1F62A ; emoji ; L1 ; secondary ; j # V6.0 (😪) SLEEPY FACE -1F62B ; emoji ; L1 ; secondary ; j # V6.0 (😫) TIRED FACE -1F62C ; emoji ; L1 ; secondary ; x # V6.1 (😬) GRIMACING FACE -1F62D ; emoji ; L1 ; secondary ; j # V6.0 (😭) LOUDLY CRYING FACE -1F62E ; emoji ; L1 ; secondary ; x # V6.1 (😮) FACE WITH OPEN MOUTH -1F62F ; emoji ; L1 ; secondary ; x # V6.1 (😯) HUSHED FACE -1F630 ; emoji ; L1 ; secondary ; j # V6.0 (😰) FACE WITH OPEN MOUTH AND COLD SWEAT -1F631 ; emoji ; L1 ; secondary ; j # V6.0 (😱) FACE SCREAMING IN FEAR -1F632 ; emoji ; L1 ; secondary ; j # V6.0 (😲) ASTONISHED FACE -1F633 ; emoji ; L1 ; secondary ; j # V6.0 (😳) FLUSHED FACE -1F634 ; emoji ; L1 ; secondary ; x # V6.1 (😴) SLEEPING FACE -1F635 ; emoji ; L1 ; secondary ; j # V6.0 (😵) DIZZY FACE -1F636 ; emoji ; L1 ; secondary ; x # V6.0 (😶) FACE WITHOUT MOUTH -1F637 ; emoji ; L1 ; secondary ; j # V6.0 (😷) FACE WITH MEDICAL MASK -1F638 ; emoji ; L1 ; none ; j # V6.0 (😸) GRINNING CAT FACE WITH SMILING EYES -1F639 ; emoji ; L1 ; none ; j # V6.0 (😹) CAT FACE WITH TEARS OF JOY -1F63A ; emoji ; L1 ; none ; j # V6.0 (😺) SMILING CAT FACE WITH OPEN MOUTH -1F63B ; emoji ; L1 ; none ; j # V6.0 (😻) SMILING CAT FACE WITH HEART-SHAPED EYES -1F63C ; emoji ; L1 ; none ; j # V6.0 (😼) CAT FACE WITH WRY SMILE -1F63D ; emoji ; L1 ; none ; j # V6.0 (😽) KISSING CAT FACE WITH CLOSED EYES -1F63E ; emoji ; L1 ; none ; j # V6.0 (😾) POUTING CAT FACE -1F63F ; emoji ; L1 ; none ; j # V6.0 (😿) CRYING CAT FACE -1F640 ; emoji ; L1 ; none ; j # V6.0 (🙀) WEARY CAT FACE -1F641 ; emoji ; L2 ; secondary ; x # V7.0 (ðŸ™) SLIGHTLY FROWNING FACE -1F642 ; emoji ; L2 ; secondary ; x # V7.0 (🙂) SLIGHTLY SMILING FACE -1F643 ; emoji ; L2 ; secondary ; x # V8.0 (🙃) UPSIDE-DOWN FACE -1F644 ; emoji ; L2 ; secondary ; x # V8.0 (🙄) FACE WITH ROLLING EYES -1F645 ; emoji ; L1 ; primary ; j # V6.0 (🙅) FACE WITH NO GOOD GESTURE -1F646 ; emoji ; L1 ; primary ; j # V6.0 (🙆) FACE WITH OK GESTURE -1F647 ; emoji ; L1 ; primary ; j # V6.0 (🙇) PERSON BOWING DEEPLY -1F648 ; emoji ; L1 ; none ; j # V6.0 (🙈) SEE-NO-EVIL MONKEY -1F649 ; emoji ; L1 ; none ; j # V6.0 (🙉) HEAR-NO-EVIL MONKEY -1F64A ; emoji ; L1 ; none ; j # V6.0 (🙊) SPEAK-NO-EVIL MONKEY -1F64B ; emoji ; L1 ; primary ; j # V6.0 (🙋) HAPPY PERSON RAISING ONE HAND -1F64C ; emoji ; L1 ; secondary ; j # V6.0 (🙌) PERSON RAISING BOTH HANDS IN CELEBRATION -1F64D ; emoji ; L1 ; primary ; j # V6.0 (ðŸ™) PERSON FROWNING -1F64E ; emoji ; L1 ; primary ; j # V6.0 (🙎) PERSON WITH POUTING FACE -1F64F ; emoji ; L1 ; secondary ; j # V6.0 (ðŸ™) PERSON WITH FOLDED HANDS -1F680 ; emoji ; L1 ; none ; j # V6.0 (🚀) ROCKET -1F681 ; emoji ; L1 ; none ; x # V6.0 (ðŸš) HELICOPTER -1F682 ; emoji ; L1 ; none ; x # V6.0 (🚂) STEAM LOCOMOTIVE -1F683 ; emoji ; L1 ; none ; j # V6.0 (🚃) RAILWAY CAR -1F684 ; emoji ; L1 ; none ; j # V6.0 (🚄) HIGH-SPEED TRAIN -1F685 ; emoji ; L1 ; none ; j # V6.0 (🚅) HIGH-SPEED TRAIN WITH BULLET NOSE -1F686 ; emoji ; L1 ; none ; x # V6.0 (🚆) TRAIN -1F687 ; emoji ; L1 ; none ; j w # V6.0 (🚇) METRO -1F688 ; emoji ; L1 ; none ; x # V6.0 (🚈) LIGHT RAIL -1F689 ; emoji ; L1 ; none ; j # V6.0 (🚉) STATION -1F68A ; emoji ; L1 ; none ; x # V6.0 (🚊) TRAM -1F68B ; emoji ; L1 ; none ; x # V6.0 (🚋) TRAM CAR -1F68C ; emoji ; L1 ; none ; j # V6.0 (🚌) BUS -1F68D ; emoji ; L1 ; none ; w # V6.0 (ðŸš) ONCOMING BUS -1F68E ; emoji ; L1 ; none ; x # V6.0 (🚎) TROLLEYBUS -1F68F ; emoji ; L1 ; none ; j # V6.0 (ðŸš) BUS STOP -1F690 ; emoji ; L1 ; none ; x # V6.0 (ðŸš) MINIBUS -1F691 ; emoji ; L1 ; none ; j w # V6.0 (🚑) AMBULANCE -1F692 ; emoji ; L1 ; none ; j # V6.0 (🚒) FIRE ENGINE -1F693 ; emoji ; L1 ; none ; j # V6.0 (🚓) POLICE CAR -1F694 ; emoji ; L1 ; none ; w # V6.0 (🚔) ONCOMING POLICE CAR -1F695 ; emoji ; L1 ; none ; j # V6.0 (🚕) TAXI -1F696 ; emoji ; L1 ; none ; x # V6.0 (🚖) ONCOMING TAXI -1F697 ; emoji ; L1 ; none ; j # V6.0 (🚗) AUTOMOBILE -1F698 ; emoji ; L1 ; none ; w # V6.0 (🚘) ONCOMING AUTOMOBILE -1F699 ; emoji ; L1 ; none ; j # V6.0 (🚙) RECREATIONAL VEHICLE -1F69A ; emoji ; L1 ; none ; j # V6.0 (🚚) DELIVERY TRUCK -1F69B ; emoji ; L1 ; none ; x # V6.0 (🚛) ARTICULATED LORRY -1F69C ; emoji ; L1 ; none ; x # V6.0 (🚜) TRACTOR -1F69D ; emoji ; L1 ; none ; x # V6.0 (ðŸš) MONORAIL -1F69E ; emoji ; L1 ; none ; x # V6.0 (🚞) MOUNTAIN RAILWAY -1F69F ; emoji ; L1 ; none ; x # V6.0 (🚟) SUSPENSION RAILWAY -1F6A0 ; emoji ; L1 ; none ; x # V6.0 (🚠) MOUNTAIN CABLEWAY -1F6A1 ; emoji ; L1 ; none ; x # V6.0 (🚡) AERIAL TRAMWAY -1F6A2 ; emoji ; L1 ; none ; j # V6.0 (🚢) SHIP -1F6A3 ; emoji ; L1 ; secondary ; x # V6.0 (🚣) ROWBOAT -1F6A4 ; emoji ; L1 ; none ; j # V6.0 (🚤) SPEEDBOAT -1F6A5 ; emoji ; L1 ; none ; j # V6.0 (🚥) HORIZONTAL TRAFFIC LIGHT -1F6A6 ; emoji ; L1 ; none ; x # V6.0 (🚦) VERTICAL TRAFFIC LIGHT -1F6A7 ; emoji ; L1 ; none ; j # V6.0 (🚧) CONSTRUCTION SIGN -1F6A8 ; emoji ; L1 ; none ; j # V6.0 (🚨) POLICE CARS REVOLVING LIGHT -1F6A9 ; emoji ; L1 ; none ; j # V6.0 (🚩) TRIANGULAR FLAG ON POST -1F6AA ; emoji ; L1 ; none ; j # V6.0 (🚪) DOOR -1F6AB ; emoji ; L1 ; none ; j # V6.0 (🚫) NO ENTRY SIGN -1F6AC ; emoji ; L1 ; none ; j # V6.0 (🚬) SMOKING SYMBOL -1F6AD ; emoji ; L1 ; none ; j w # V6.0 (🚭) NO SMOKING SYMBOL -1F6AE ; emoji ; L1 ; none ; x # V6.0 (🚮) PUT LITTER IN ITS PLACE SYMBOL -1F6AF ; emoji ; L1 ; none ; x # V6.0 (🚯) DO NOT LITTER SYMBOL -1F6B0 ; emoji ; L1 ; none ; x # V6.0 (🚰) POTABLE WATER SYMBOL -1F6B1 ; emoji ; L1 ; none ; x # V6.0 (🚱) NON-POTABLE WATER SYMBOL -1F6B2 ; emoji ; L1 ; none ; j w # V6.0 (🚲) BICYCLE -1F6B3 ; emoji ; L1 ; none ; x # V6.0 (🚳) NO BICYCLES -1F6B4 ; emoji ; L1 ; secondary ; x # V6.0 (🚴) BICYCLIST -1F6B5 ; emoji ; L1 ; secondary ; x # V6.0 (🚵) MOUNTAIN BICYCLIST -1F6B6 ; emoji ; L1 ; secondary ; j # V6.0 (🚶) PEDESTRIAN -1F6B7 ; emoji ; L1 ; none ; x # V6.0 (🚷) NO PEDESTRIANS -1F6B8 ; emoji ; L1 ; none ; x # V6.0 (🚸) CHILDREN CROSSING -1F6B9 ; emoji ; L1 ; none ; j w # V6.0 (🚹) MENS SYMBOL -1F6BA ; emoji ; L1 ; none ; j w # V6.0 (🚺) WOMENS SYMBOL -1F6BB ; emoji ; L1 ; none ; j # V6.0 (🚻) RESTROOM -1F6BC ; emoji ; L1 ; none ; j w # V6.0 (🚼) BABY SYMBOL -1F6BD ; emoji ; L1 ; none ; j # V6.0 (🚽) TOILET -1F6BE ; emoji ; L1 ; none ; j # V6.0 (🚾) WATER CLOSET -1F6BF ; emoji ; L1 ; none ; x # V6.0 (🚿) SHOWER -1F6C0 ; emoji ; L1 ; secondary ; j # V6.0 (🛀) BATH -1F6C1 ; emoji ; L1 ; none ; x # V6.0 (ðŸ›) BATHTUB -1F6C2 ; emoji ; L1 ; none ; x # V6.0 (🛂) PASSPORT CONTROL -1F6C3 ; emoji ; L1 ; none ; x # V6.0 (🛃) CUSTOMS -1F6C4 ; emoji ; L1 ; none ; x # V6.0 (🛄) BAGGAGE CLAIM -1F6C5 ; emoji ; L1 ; none ; x # V6.0 (🛅) LEFT LUGGAGE -1F6CB ; text ; L2 ; none ; w # V7.0 (🛋) COUCH AND LAMP -1F6CC ; emoji ; L2 ; none ; x # V7.0 (🛌) SLEEPING ACCOMMODATION -1F6CD ; text ; L2 ; none ; w # V7.0 (ðŸ›) SHOPPING BAGS -1F6CE ; text ; L2 ; none ; w # V7.0 (🛎) BELLHOP BELL -1F6CF ; text ; L2 ; none ; w # V7.0 (ðŸ›) BED -1F6D0 ; emoji ; L2 ; none ; x # V8.0 (ðŸ›) PLACE OF WORSHIP -1F6E0 ; text ; L2 ; none ; w # V7.0 (🛠) HAMMER AND WRENCH -1F6E1 ; text ; L2 ; none ; w # V7.0 (🛡) SHIELD -1F6E2 ; text ; L2 ; none ; w # V7.0 (🛢) OIL DRUM -1F6E3 ; text ; L2 ; none ; w # V7.0 (🛣) MOTORWAY -1F6E4 ; text ; L2 ; none ; w # V7.0 (🛤) RAILWAY TRACK -1F6E5 ; text ; L2 ; none ; w # V7.0 (🛥) MOTOR BOAT -1F6E9 ; text ; L2 ; none ; w # V7.0 (🛩) SMALL AIRPLANE -1F6EB ; emoji ; L2 ; none ; x # V7.0 (🛫) AIRPLANE DEPARTURE -1F6EC ; emoji ; L2 ; none ; x # V7.0 (🛬) AIRPLANE ARRIVING -1F6F0 ; text ; L2 ; none ; w # V7.0 (🛰) SATELLITE -1F6F3 ; text ; L2 ; none ; w # V7.0 (🛳) PASSENGER SHIP -1F910 ; emoji ; L2 ; secondary ; x # V8.0 (ðŸ¤) ZIPPER-MOUTH FACE -1F911 ; emoji ; L2 ; secondary ; x # V8.0 (🤑) MONEY-MOUTH FACE -1F912 ; emoji ; L2 ; secondary ; x # V8.0 (🤒) FACE WITH THERMOMETER -1F913 ; emoji ; L2 ; secondary ; x # V8.0 (🤓) NERD FACE -1F914 ; emoji ; L2 ; secondary ; x # V8.0 (🤔) THINKING FACE -1F915 ; emoji ; L2 ; secondary ; x # V8.0 (🤕) FACE WITH HEAD-BANDAGE -1F916 ; emoji ; L2 ; none ; x # V8.0 (🤖) ROBOT FACE -1F917 ; emoji ; L2 ; secondary ; x # V8.0 (🤗) HUGGING FACE -1F918 ; emoji ; L2 ; secondary ; x # V8.0 (🤘) SIGN OF THE HORNS -1F980 ; emoji ; L2 ; none ; x # V8.0 (🦀) CRAB -1F981 ; emoji ; L2 ; none ; x # V8.0 (ðŸ¦) LION FACE -1F982 ; emoji ; L2 ; none ; x # V8.0 (🦂) SCORPION -1F983 ; emoji ; L2 ; none ; x # V8.0 (🦃) TURKEY -1F984 ; emoji ; L2 ; none ; x # V8.0 (🦄) UNICORN FACE -1F9C0 ; emoji ; L2 ; none ; x # V8.0 (🧀) CHEESE WEDGE -0023 20E3 ; text ; L1 ; none ; j # V3.0 (#⃣) keycap NUMBER SIGN -002A 20E3 ; text ; L2 ; none ; x # V3.0 (*⃣) keycap ASTERISK -0030 20E3 ; text ; L1 ; none ; j # V3.0 (0⃣) keycap DIGIT ZERO -0031 20E3 ; text ; L1 ; none ; j # V3.0 (1⃣) keycap DIGIT ONE -0032 20E3 ; text ; L1 ; none ; j # V3.0 (2⃣) keycap DIGIT TWO -0033 20E3 ; text ; L1 ; none ; j # V3.0 (3⃣) keycap DIGIT THREE -0034 20E3 ; text ; L1 ; none ; j # V3.0 (4⃣) keycap DIGIT FOUR -0035 20E3 ; text ; L1 ; none ; j # V3.0 (5⃣) keycap DIGIT FIVE -0036 20E3 ; text ; L1 ; none ; j # V3.0 (6⃣) keycap DIGIT SIX -0037 20E3 ; text ; L1 ; none ; j # V3.0 (7⃣) keycap DIGIT SEVEN -0038 20E3 ; text ; L1 ; none ; j # V3.0 (8⃣) keycap DIGIT EIGHT -0039 20E3 ; text ; L1 ; none ; j # V3.0 (9⃣) keycap DIGIT NINE -1F1E6 1F1E8 ; emoji ; L2 ; none ; x # V6.0 (🇦🇨) flag for Ascension Island -1F1E6 1F1E9 ; emoji ; L2 ; none ; x # V6.0 (🇦🇩) flag for Andorra -1F1E6 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇦🇪) flag for United Arab Emirates -1F1E6 1F1EB ; emoji ; L2 ; none ; x # V6.0 (🇦🇫) flag for Afghanistan -1F1E6 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇦🇬) flag for Antigua & Barbuda -1F1E6 1F1EE ; emoji ; L2 ; none ; x # V6.0 (🇦🇮) flag for Anguilla -1F1E6 1F1F1 ; emoji ; L2 ; none ; x # V6.0 (🇦🇱) flag for Albania -1F1E6 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇦🇲) flag for Armenia -1F1E6 1F1F4 ; emoji ; L2 ; none ; x # V6.0 (🇦🇴) flag for Angola -1F1E6 1F1F6 ; emoji ; L2 ; none ; x # V6.0 (🇦🇶) flag for Antarctica -1F1E6 1F1F7 ; emoji ; L2 ; none ; x # V6.0 (🇦🇷) flag for Argentina -1F1E6 1F1F8 ; emoji ; L2 ; none ; x # V6.0 (🇦🇸) flag for American Samoa -1F1E6 1F1F9 ; emoji ; L2 ; none ; x # V6.0 (🇦🇹) flag for Austria -1F1E6 1F1FA ; emoji ; L2 ; none ; x # V6.0 (🇦🇺) flag for Australia -1F1E6 1F1FC ; emoji ; L2 ; none ; x # V6.0 (🇦🇼) flag for Aruba -1F1E6 1F1FD ; emoji ; L2 ; none ; x # V6.0 (🇦🇽) flag for Ã…land Islands -1F1E6 1F1FF ; emoji ; L2 ; none ; x # V6.0 (🇦🇿) flag for Azerbaijan -1F1E7 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇧🇦) flag for Bosnia & Herzegovina -1F1E7 1F1E7 ; emoji ; L2 ; none ; x # V6.0 (🇧🇧) flag for Barbados -1F1E7 1F1E9 ; emoji ; L2 ; none ; x # V6.0 (🇧🇩) flag for Bangladesh -1F1E7 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇧🇪) flag for Belgium -1F1E7 1F1EB ; emoji ; L2 ; none ; x # V6.0 (🇧🇫) flag for Burkina Faso -1F1E7 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇧🇬) flag for Bulgaria -1F1E7 1F1ED ; emoji ; L2 ; none ; x # V6.0 (🇧🇭) flag for Bahrain -1F1E7 1F1EE ; emoji ; L2 ; none ; x # V6.0 (🇧🇮) flag for Burundi -1F1E7 1F1EF ; emoji ; L2 ; none ; x # V6.0 (🇧🇯) flag for Benin -1F1E7 1F1F1 ; emoji ; L2 ; none ; x # V6.0 (🇧🇱) flag for St. Barthélemy -1F1E7 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇧🇲) flag for Bermuda -1F1E7 1F1F3 ; emoji ; L2 ; none ; x # V6.0 (🇧🇳) flag for Brunei -1F1E7 1F1F4 ; emoji ; L2 ; none ; x # V6.0 (🇧🇴) flag for Bolivia -1F1E7 1F1F6 ; emoji ; L2 ; none ; x # V6.0 (🇧🇶) flag for Caribbean Netherlands -1F1E7 1F1F7 ; emoji ; L2 ; none ; x # V6.0 (🇧🇷) flag for Brazil -1F1E7 1F1F8 ; emoji ; L2 ; none ; x # V6.0 (🇧🇸) flag for Bahamas -1F1E7 1F1F9 ; emoji ; L2 ; none ; x # V6.0 (🇧🇹) flag for Bhutan -1F1E7 1F1FB ; emoji ; L2 ; none ; x # V6.0 (🇧🇻) flag for Bouvet Island -1F1E7 1F1FC ; emoji ; L2 ; none ; x # V6.0 (🇧🇼) flag for Botswana -1F1E7 1F1FE ; emoji ; L2 ; none ; x # V6.0 (🇧🇾) flag for Belarus -1F1E7 1F1FF ; emoji ; L2 ; none ; x # V6.0 (🇧🇿) flag for Belize -1F1E8 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇨🇦) flag for Canada -1F1E8 1F1E8 ; emoji ; L2 ; none ; x # V6.0 (🇨🇨) flag for Cocos Islands -1F1E8 1F1E9 ; emoji ; L2 ; none ; x # V6.0 (🇨🇩) flag for Congo - Kinshasa -1F1E8 1F1EB ; emoji ; L2 ; none ; x # V6.0 (🇨🇫) flag for Central African Republic -1F1E8 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇨🇬) flag for Congo - Brazzaville -1F1E8 1F1ED ; emoji ; L2 ; none ; x # V6.0 (🇨🇭) flag for Switzerland -1F1E8 1F1EE ; emoji ; L2 ; none ; x # V6.0 (🇨🇮) flag for Côte d’Ivoire -1F1E8 1F1F0 ; emoji ; L2 ; none ; x # V6.0 (🇨🇰) flag for Cook Islands -1F1E8 1F1F1 ; emoji ; L2 ; none ; x # V6.0 (🇨🇱) flag for Chile -1F1E8 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇨🇲) flag for Cameroon -1F1E8 1F1F3 ; emoji ; L1 ; none ; j # V6.0 (🇨🇳) flag for China -1F1E8 1F1F4 ; emoji ; L2 ; none ; x # V6.0 (🇨🇴) flag for Colombia -1F1E8 1F1F5 ; emoji ; L2 ; none ; x # V6.0 (🇨🇵) flag for Clipperton Island -1F1E8 1F1F7 ; emoji ; L2 ; none ; x # V6.0 (🇨🇷) flag for Costa Rica -1F1E8 1F1FA ; emoji ; L2 ; none ; x # V6.0 (🇨🇺) flag for Cuba -1F1E8 1F1FB ; emoji ; L2 ; none ; x # V6.0 (🇨🇻) flag for Cape Verde -1F1E8 1F1FC ; emoji ; L2 ; none ; x # V6.0 (🇨🇼) flag for Curaçao -1F1E8 1F1FD ; emoji ; L2 ; none ; x # V6.0 (🇨🇽) flag for Christmas Island -1F1E8 1F1FE ; emoji ; L2 ; none ; x # V6.0 (🇨🇾) flag for Cyprus -1F1E8 1F1FF ; emoji ; L2 ; none ; x # V6.0 (🇨🇿) flag for Czech Republic -1F1E9 1F1EA ; emoji ; L1 ; none ; j # V6.0 (🇩🇪) flag for Germany -1F1E9 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇩🇬) flag for Diego Garcia -1F1E9 1F1EF ; emoji ; L2 ; none ; x # V6.0 (🇩🇯) flag for Djibouti -1F1E9 1F1F0 ; emoji ; L2 ; none ; x # V6.0 (🇩🇰) flag for Denmark -1F1E9 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇩🇲) flag for Dominica -1F1E9 1F1F4 ; emoji ; L2 ; none ; x # V6.0 (🇩🇴) flag for Dominican Republic -1F1E9 1F1FF ; emoji ; L2 ; none ; x # V6.0 (🇩🇿) flag for Algeria -1F1EA 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇪🇦) flag for Ceuta & Melilla -1F1EA 1F1E8 ; emoji ; L2 ; none ; x # V6.0 (🇪🇨) flag for Ecuador -1F1EA 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇪🇪) flag for Estonia -1F1EA 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇪🇬) flag for Egypt -1F1EA 1F1ED ; emoji ; L2 ; none ; x # V6.0 (🇪🇭) flag for Western Sahara -1F1EA 1F1F7 ; emoji ; L2 ; none ; x # V6.0 (🇪🇷) flag for Eritrea -1F1EA 1F1F8 ; emoji ; L1 ; none ; j # V6.0 (🇪🇸) flag for Spain -1F1EA 1F1F9 ; emoji ; L2 ; none ; x # V6.0 (🇪🇹) flag for Ethiopia -1F1EA 1F1FA ; emoji ; L2 ; none ; x # V6.0 (🇪🇺) flag for European Union -1F1EB 1F1EE ; emoji ; L2 ; none ; x # V6.0 (🇫🇮) flag for Finland -1F1EB 1F1EF ; emoji ; L2 ; none ; x # V6.0 (🇫🇯) flag for Fiji -1F1EB 1F1F0 ; emoji ; L2 ; none ; x # V6.0 (🇫🇰) flag for Falkland Islands -1F1EB 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇫🇲) flag for Micronesia -1F1EB 1F1F4 ; emoji ; L2 ; none ; x # V6.0 (🇫🇴) flag for Faroe Islands -1F1EB 1F1F7 ; emoji ; L1 ; none ; j # V6.0 (🇫🇷) flag for France -1F1EC 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇬🇦) flag for Gabon -1F1EC 1F1E7 ; emoji ; L1 ; none ; j # V6.0 (🇬🇧) flag for United Kingdom -1F1EC 1F1E9 ; emoji ; L2 ; none ; x # V6.0 (🇬🇩) flag for Grenada -1F1EC 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇬🇪) flag for Georgia -1F1EC 1F1EB ; emoji ; L2 ; none ; x # V6.0 (🇬🇫) flag for French Guiana -1F1EC 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇬🇬) flag for Guernsey -1F1EC 1F1ED ; emoji ; L2 ; none ; x # V6.0 (🇬🇭) flag for Ghana -1F1EC 1F1EE ; emoji ; L2 ; none ; x # V6.0 (🇬🇮) flag for Gibraltar -1F1EC 1F1F1 ; emoji ; L2 ; none ; x # V6.0 (🇬🇱) flag for Greenland -1F1EC 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇬🇲) flag for Gambia -1F1EC 1F1F3 ; emoji ; L2 ; none ; x # V6.0 (🇬🇳) flag for Guinea -1F1EC 1F1F5 ; emoji ; L2 ; none ; x # V6.0 (🇬🇵) flag for Guadeloupe -1F1EC 1F1F6 ; emoji ; L2 ; none ; x # V6.0 (🇬🇶) flag for Equatorial Guinea -1F1EC 1F1F7 ; emoji ; L2 ; none ; x # V6.0 (🇬🇷) flag for Greece -1F1EC 1F1F8 ; emoji ; L2 ; none ; x # V6.0 (🇬🇸) flag for South Georgia & South Sandwich Islands -1F1EC 1F1F9 ; emoji ; L2 ; none ; x # V6.0 (🇬🇹) flag for Guatemala -1F1EC 1F1FA ; emoji ; L2 ; none ; x # V6.0 (🇬🇺) flag for Guam -1F1EC 1F1FC ; emoji ; L2 ; none ; x # V6.0 (🇬🇼) flag for Guinea-Bissau -1F1EC 1F1FE ; emoji ; L2 ; none ; x # V6.0 (🇬🇾) flag for Guyana -1F1ED 1F1F0 ; emoji ; L2 ; none ; x # V6.0 (🇭🇰) flag for Hong Kong -1F1ED 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇭🇲) flag for Heard & McDonald Islands -1F1ED 1F1F3 ; emoji ; L2 ; none ; x # V6.0 (🇭🇳) flag for Honduras -1F1ED 1F1F7 ; emoji ; L2 ; none ; x # V6.0 (🇭🇷) flag for Croatia -1F1ED 1F1F9 ; emoji ; L2 ; none ; x # V6.0 (🇭🇹) flag for Haiti -1F1ED 1F1FA ; emoji ; L2 ; none ; x # V6.0 (🇭🇺) flag for Hungary -1F1EE 1F1E8 ; emoji ; L2 ; none ; x # V6.0 (🇮🇨) flag for Canary Islands -1F1EE 1F1E9 ; emoji ; L2 ; none ; x # V6.0 (🇮🇩) flag for Indonesia -1F1EE 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇮🇪) flag for Ireland -1F1EE 1F1F1 ; emoji ; L2 ; none ; x # V6.0 (🇮🇱) flag for Israel -1F1EE 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇮🇲) flag for Isle of Man -1F1EE 1F1F3 ; emoji ; L2 ; none ; x # V6.0 (🇮🇳) flag for India -1F1EE 1F1F4 ; emoji ; L2 ; none ; x # V6.0 (🇮🇴) flag for British Indian Ocean Territory -1F1EE 1F1F6 ; emoji ; L2 ; none ; x # V6.0 (🇮🇶) flag for Iraq -1F1EE 1F1F7 ; emoji ; L2 ; none ; x # V6.0 (🇮🇷) flag for Iran -1F1EE 1F1F8 ; emoji ; L2 ; none ; x # V6.0 (🇮🇸) flag for Iceland -1F1EE 1F1F9 ; emoji ; L1 ; none ; j # V6.0 (🇮🇹) flag for Italy -1F1EF 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇯🇪) flag for Jersey -1F1EF 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇯🇲) flag for Jamaica -1F1EF 1F1F4 ; emoji ; L2 ; none ; x # V6.0 (🇯🇴) flag for Jordan -1F1EF 1F1F5 ; emoji ; L1 ; none ; j # V6.0 (🇯🇵) flag for Japan -1F1F0 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇰🇪) flag for Kenya -1F1F0 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇰🇬) flag for Kyrgyzstan -1F1F0 1F1ED ; emoji ; L2 ; none ; x # V6.0 (🇰🇭) flag for Cambodia -1F1F0 1F1EE ; emoji ; L2 ; none ; x # V6.0 (🇰🇮) flag for Kiribati -1F1F0 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇰🇲) flag for Comoros -1F1F0 1F1F3 ; emoji ; L2 ; none ; x # V6.0 (🇰🇳) flag for St. Kitts & Nevis -1F1F0 1F1F5 ; emoji ; L2 ; none ; x # V6.0 (🇰🇵) flag for North Korea -1F1F0 1F1F7 ; emoji ; L1 ; none ; j # V6.0 (🇰🇷) flag for South Korea -1F1F0 1F1FC ; emoji ; L2 ; none ; x # V6.0 (🇰🇼) flag for Kuwait -1F1F0 1F1FE ; emoji ; L2 ; none ; x # V6.0 (🇰🇾) flag for Cayman Islands -1F1F0 1F1FF ; emoji ; L2 ; none ; x # V6.0 (🇰🇿) flag for Kazakhstan -1F1F1 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇱🇦) flag for Laos -1F1F1 1F1E7 ; emoji ; L2 ; none ; x # V6.0 (🇱🇧) flag for Lebanon -1F1F1 1F1E8 ; emoji ; L2 ; none ; x # V6.0 (🇱🇨) flag for St. Lucia -1F1F1 1F1EE ; emoji ; L2 ; none ; x # V6.0 (🇱🇮) flag for Liechtenstein -1F1F1 1F1F0 ; emoji ; L2 ; none ; x # V6.0 (🇱🇰) flag for Sri Lanka -1F1F1 1F1F7 ; emoji ; L2 ; none ; x # V6.0 (🇱🇷) flag for Liberia -1F1F1 1F1F8 ; emoji ; L2 ; none ; x # V6.0 (🇱🇸) flag for Lesotho -1F1F1 1F1F9 ; emoji ; L2 ; none ; x # V6.0 (🇱🇹) flag for Lithuania -1F1F1 1F1FA ; emoji ; L2 ; none ; x # V6.0 (🇱🇺) flag for Luxembourg -1F1F1 1F1FB ; emoji ; L2 ; none ; x # V6.0 (🇱🇻) flag for Latvia -1F1F1 1F1FE ; emoji ; L2 ; none ; x # V6.0 (🇱🇾) flag for Libya -1F1F2 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇲🇦) flag for Morocco -1F1F2 1F1E8 ; emoji ; L2 ; none ; x # V6.0 (🇲🇨) flag for Monaco -1F1F2 1F1E9 ; emoji ; L2 ; none ; x # V6.0 (🇲🇩) flag for Moldova -1F1F2 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇲🇪) flag for Montenegro -1F1F2 1F1EB ; emoji ; L2 ; none ; x # V6.0 (🇲🇫) flag for St. Martin -1F1F2 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇲🇬) flag for Madagascar -1F1F2 1F1ED ; emoji ; L2 ; none ; x # V6.0 (🇲🇭) flag for Marshall Islands -1F1F2 1F1F0 ; emoji ; L2 ; none ; x # V6.0 (🇲🇰) flag for Macedonia -1F1F2 1F1F1 ; emoji ; L2 ; none ; x # V6.0 (🇲🇱) flag for Mali -1F1F2 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇲🇲) flag for Myanmar -1F1F2 1F1F3 ; emoji ; L2 ; none ; x # V6.0 (🇲🇳) flag for Mongolia -1F1F2 1F1F4 ; emoji ; L2 ; none ; x # V6.0 (🇲🇴) flag for Macau -1F1F2 1F1F5 ; emoji ; L2 ; none ; x # V6.0 (🇲🇵) flag for Northern Mariana Islands -1F1F2 1F1F6 ; emoji ; L2 ; none ; x # V6.0 (🇲🇶) flag for Martinique -1F1F2 1F1F7 ; emoji ; L2 ; none ; x # V6.0 (🇲🇷) flag for Mauritania -1F1F2 1F1F8 ; emoji ; L2 ; none ; x # V6.0 (🇲🇸) flag for Montserrat -1F1F2 1F1F9 ; emoji ; L2 ; none ; x # V6.0 (🇲🇹) flag for Malta -1F1F2 1F1FA ; emoji ; L2 ; none ; x # V6.0 (🇲🇺) flag for Mauritius -1F1F2 1F1FB ; emoji ; L2 ; none ; x # V6.0 (🇲🇻) flag for Maldives -1F1F2 1F1FC ; emoji ; L2 ; none ; x # V6.0 (🇲🇼) flag for Malawi -1F1F2 1F1FD ; emoji ; L2 ; none ; x # V6.0 (🇲🇽) flag for Mexico -1F1F2 1F1FE ; emoji ; L2 ; none ; x # V6.0 (🇲🇾) flag for Malaysia -1F1F2 1F1FF ; emoji ; L2 ; none ; x # V6.0 (🇲🇿) flag for Mozambique -1F1F3 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇳🇦) flag for Namibia -1F1F3 1F1E8 ; emoji ; L2 ; none ; x # V6.0 (🇳🇨) flag for New Caledonia -1F1F3 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇳🇪) flag for Niger -1F1F3 1F1EB ; emoji ; L2 ; none ; x # V6.0 (🇳🇫) flag for Norfolk Island -1F1F3 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇳🇬) flag for Nigeria -1F1F3 1F1EE ; emoji ; L2 ; none ; x # V6.0 (🇳🇮) flag for Nicaragua -1F1F3 1F1F1 ; emoji ; L2 ; none ; x # V6.0 (🇳🇱) flag for Netherlands -1F1F3 1F1F4 ; emoji ; L2 ; none ; x # V6.0 (🇳🇴) flag for Norway -1F1F3 1F1F5 ; emoji ; L2 ; none ; x # V6.0 (🇳🇵) flag for Nepal -1F1F3 1F1F7 ; emoji ; L2 ; none ; x # V6.0 (🇳🇷) flag for Nauru -1F1F3 1F1FA ; emoji ; L2 ; none ; x # V6.0 (🇳🇺) flag for Niue -1F1F3 1F1FF ; emoji ; L2 ; none ; x # V6.0 (🇳🇿) flag for New Zealand -1F1F4 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇴🇲) flag for Oman -1F1F5 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇵🇦) flag for Panama -1F1F5 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇵🇪) flag for Peru -1F1F5 1F1EB ; emoji ; L2 ; none ; x # V6.0 (🇵🇫) flag for French Polynesia -1F1F5 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇵🇬) flag for Papua New Guinea -1F1F5 1F1ED ; emoji ; L2 ; none ; x # V6.0 (🇵🇭) flag for Philippines -1F1F5 1F1F0 ; emoji ; L2 ; none ; x # V6.0 (🇵🇰) flag for Pakistan -1F1F5 1F1F1 ; emoji ; L2 ; none ; x # V6.0 (🇵🇱) flag for Poland -1F1F5 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇵🇲) flag for St. Pierre & Miquelon -1F1F5 1F1F3 ; emoji ; L2 ; none ; x # V6.0 (🇵🇳) flag for Pitcairn Islands -1F1F5 1F1F7 ; emoji ; L2 ; none ; x # V6.0 (🇵🇷) flag for Puerto Rico -1F1F5 1F1F8 ; emoji ; L2 ; none ; x # V6.0 (🇵🇸) flag for Palestinian Territories -1F1F5 1F1F9 ; emoji ; L2 ; none ; x # V6.0 (🇵🇹) flag for Portugal -1F1F5 1F1FC ; emoji ; L2 ; none ; x # V6.0 (🇵🇼) flag for Palau -1F1F5 1F1FE ; emoji ; L2 ; none ; x # V6.0 (🇵🇾) flag for Paraguay -1F1F6 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇶🇦) flag for Qatar -1F1F7 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇷🇪) flag for Réunion -1F1F7 1F1F4 ; emoji ; L2 ; none ; x # V6.0 (🇷🇴) flag for Romania -1F1F7 1F1F8 ; emoji ; L2 ; none ; x # V6.0 (🇷🇸) flag for Serbia -1F1F7 1F1FA ; emoji ; L1 ; none ; j # V6.0 (🇷🇺) flag for Russia -1F1F7 1F1FC ; emoji ; L2 ; none ; x # V6.0 (🇷🇼) flag for Rwanda -1F1F8 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇸🇦) flag for Saudi Arabia -1F1F8 1F1E7 ; emoji ; L2 ; none ; x # V6.0 (🇸🇧) flag for Solomon Islands -1F1F8 1F1E8 ; emoji ; L2 ; none ; x # V6.0 (🇸🇨) flag for Seychelles -1F1F8 1F1E9 ; emoji ; L2 ; none ; x # V6.0 (🇸🇩) flag for Sudan -1F1F8 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇸🇪) flag for Sweden -1F1F8 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇸🇬) flag for Singapore -1F1F8 1F1ED ; emoji ; L2 ; none ; x # V6.0 (🇸🇭) flag for St. Helena -1F1F8 1F1EE ; emoji ; L2 ; none ; x # V6.0 (🇸🇮) flag for Slovenia -1F1F8 1F1EF ; emoji ; L2 ; none ; x # V6.0 (🇸🇯) flag for Svalbard & Jan Mayen -1F1F8 1F1F0 ; emoji ; L2 ; none ; x # V6.0 (🇸🇰) flag for Slovakia -1F1F8 1F1F1 ; emoji ; L2 ; none ; x # V6.0 (🇸🇱) flag for Sierra Leone -1F1F8 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇸🇲) flag for San Marino -1F1F8 1F1F3 ; emoji ; L2 ; none ; x # V6.0 (🇸🇳) flag for Senegal -1F1F8 1F1F4 ; emoji ; L2 ; none ; x # V6.0 (🇸🇴) flag for Somalia -1F1F8 1F1F7 ; emoji ; L2 ; none ; x # V6.0 (🇸🇷) flag for Suriname -1F1F8 1F1F8 ; emoji ; L2 ; none ; x # V6.0 (🇸🇸) flag for South Sudan -1F1F8 1F1F9 ; emoji ; L2 ; none ; x # V6.0 (🇸🇹) flag for São Tomé & Príncipe -1F1F8 1F1FB ; emoji ; L2 ; none ; x # V6.0 (🇸🇻) flag for El Salvador -1F1F8 1F1FD ; emoji ; L2 ; none ; x # V6.0 (🇸🇽) flag for Sint Maarten -1F1F8 1F1FE ; emoji ; L2 ; none ; x # V6.0 (🇸🇾) flag for Syria -1F1F8 1F1FF ; emoji ; L2 ; none ; x # V6.0 (🇸🇿) flag for Swaziland -1F1F9 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇹🇦) flag for Tristan da Cunha -1F1F9 1F1E8 ; emoji ; L2 ; none ; x # V6.0 (🇹🇨) flag for Turks & Caicos Islands -1F1F9 1F1E9 ; emoji ; L2 ; none ; x # V6.0 (🇹🇩) flag for Chad -1F1F9 1F1EB ; emoji ; L2 ; none ; x # V6.0 (🇹🇫) flag for French Southern Territories -1F1F9 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇹🇬) flag for Togo -1F1F9 1F1ED ; emoji ; L2 ; none ; x # V6.0 (🇹🇭) flag for Thailand -1F1F9 1F1EF ; emoji ; L2 ; none ; x # V6.0 (🇹🇯) flag for Tajikistan -1F1F9 1F1F0 ; emoji ; L2 ; none ; x # V6.0 (🇹🇰) flag for Tokelau -1F1F9 1F1F1 ; emoji ; L2 ; none ; x # V6.0 (🇹🇱) flag for Timor-Leste -1F1F9 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇹🇲) flag for Turkmenistan -1F1F9 1F1F3 ; emoji ; L2 ; none ; x # V6.0 (🇹🇳) flag for Tunisia -1F1F9 1F1F4 ; emoji ; L2 ; none ; x # V6.0 (🇹🇴) flag for Tonga -1F1F9 1F1F7 ; emoji ; L2 ; none ; x # V6.0 (🇹🇷) flag for Turkey -1F1F9 1F1F9 ; emoji ; L2 ; none ; x # V6.0 (🇹🇹) flag for Trinidad & Tobago -1F1F9 1F1FB ; emoji ; L2 ; none ; x # V6.0 (🇹🇻) flag for Tuvalu -1F1F9 1F1FC ; emoji ; L2 ; none ; x # V6.0 (🇹🇼) flag for Taiwan -1F1F9 1F1FF ; emoji ; L2 ; none ; x # V6.0 (🇹🇿) flag for Tanzania -1F1FA 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇺🇦) flag for Ukraine -1F1FA 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇺🇬) flag for Uganda -1F1FA 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇺🇲) flag for U.S. Outlying Islands -1F1FA 1F1F8 ; emoji ; L1 ; none ; j # V6.0 (🇺🇸) flag for United States -1F1FA 1F1FE ; emoji ; L2 ; none ; x # V6.0 (🇺🇾) flag for Uruguay -1F1FA 1F1FF ; emoji ; L2 ; none ; x # V6.0 (🇺🇿) flag for Uzbekistan -1F1FB 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇻🇦) flag for Vatican City -1F1FB 1F1E8 ; emoji ; L2 ; none ; x # V6.0 (🇻🇨) flag for St. Vincent & Grenadines -1F1FB 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇻🇪) flag for Venezuela -1F1FB 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇻🇬) flag for British Virgin Islands -1F1FB 1F1EE ; emoji ; L2 ; none ; x # V6.0 (🇻🇮) flag for U.S. Virgin Islands -1F1FB 1F1F3 ; emoji ; L2 ; none ; x # V6.0 (🇻🇳) flag for Vietnam -1F1FB 1F1FA ; emoji ; L2 ; none ; x # V6.0 (🇻🇺) flag for Vanuatu -1F1FC 1F1EB ; emoji ; L2 ; none ; x # V6.0 (🇼🇫) flag for Wallis & Futuna -1F1FC 1F1F8 ; emoji ; L2 ; none ; x # V6.0 (🇼🇸) flag for Samoa -1F1FD 1F1F0 ; emoji ; L2 ; none ; x # V6.0 (🇽🇰) flag for Kosovo -1F1FE 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇾🇪) flag for Yemen -1F1FE 1F1F9 ; emoji ; L2 ; none ; x # V6.0 (🇾🇹) flag for Mayotte -1F1FF 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇿🇦) flag for South Africa -1F1FF 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇿🇲) flag for Zambia -1F1FF 1F1FC ; emoji ; L2 ; none ; x # V6.0 (🇿🇼) flag for Zimbabwe diff --git a/zsh/.oh-my-zsh/plugins/emoji/emoji.plugin.zsh b/zsh/.oh-my-zsh/plugins/emoji/emoji.plugin.zsh deleted file mode 100644 index 7876f1c..0000000 --- a/zsh/.oh-my-zsh/plugins/emoji/emoji.plugin.zsh +++ /dev/null @@ -1,288 +0,0 @@ -# emoji plugin -# -# Makes emoji support available within ZSH -# -# See the README for documentation. - -_omz_emoji_plugin_dir="${0:h}" - -() { - -local LC_ALL=en_US.UTF-8 - -typeset -gAH emoji_groups -typeset -gAH emoji_con -typeset -gAH emoji2 -typeset -gAH emoji_skintone - -source "$_omz_emoji_plugin_dir/emoji-char-definitions.zsh" -unset _omz_emoji_plugin_dir - -# These additional emoji are not in the definition file, but are useful in conjunction with it - -# This is a combinin character that can be placed after any other character to surround -# it in a "keycap" symbol. -# The digits 0-9 are already in the emoji table as keycap_digit_, keycap_ten, etc. -# It's unclear whether this should be in the $emoji array, because those characters are all ones -# which can be displayed on their own. -#emoji[combining_enclosing_keycap]="\U20E3" - -emoji[regional_indicator_symbol_letter_d_regional_indicator_symbol_letter_e]=$'\xF0\x9F\x87\xA9\xF0\x9F\x87\xAA' -emoji[regional_indicator_symbol_letter_g_regional_indicator_symbol_letter_b]=$'\xF0\x9F\x87\xAC\xF0\x9F\x87\xA7' -emoji[regional_indicator_symbol_letter_c_regional_indicator_symbol_letter_n]=$'\xF0\x9F\x87\xA8\xF0\x9F\x87\xB3' -emoji[regional_indicator_symbol_letter_j_regional_indicator_symbol_letter_p]=$'\xF0\x9F\x87\xAF\xF0\x9F\x87\xB5' -emoji[regional_indicator_symbol_letter_k_regional_indicator_symbol_letter_r]=$'\xF0\x9F\x87\xB0\xF0\x9F\x87\xB7' -emoji[regional_indicator_symbol_letter_f_regional_indicator_symbol_letter_r]=$'\xF0\x9F\x87\xAB\xF0\x9F\x87\xB7' -emoji[regional_indicator_symbol_letter_e_regional_indicator_symbol_letter_s]=$'\xF0\x9F\x87\xAA\xF0\x9F\x87\xB8' -emoji[regional_indicator_symbol_letter_i_regional_indicator_symbol_letter_t]=$'\xF0\x9F\x87\xAE\xF0\x9F\x87\xB9' -emoji[regional_indicator_symbol_letter_u_regional_indicator_symbol_letter_s]=$'\xF0\x9F\x87\xBA\xF0\x9F\x87\xB8' -emoji[regional_indicator_symbol_letter_r_regional_indicator_symbol_letter_u]=$'\xF0\x9F\x87\xB7\xF0\x9F\x87\xBA' - -# Nonstandard alias names -emoji[vulcan_salute]=$'\U1F596' - - -# Emoji combining and auxiliary characters - -# "Variation Selectors" for controlling text vs emoji style presentation -# These apply to the immediately preceding character -emoji2[text_style]=$'\UFE0E' -emoji2[emoji_style]=$'\UFE0F' -# Joiner that indicates a single combined-form glyph (ligature) should be used -emoji2[zero_width_joiner]=$'\U200D' -# Skin tone modifiers -emoji2[emoji_modifier_fitzpatrick_type_1_2]=$'\U1F3FB' -emoji2[emoji_modifier_fitzpatrick_type_3]=$'\U1F3FC' -emoji2[emoji_modifier_fitzpatrick_type_4]=$'\U1F3FD' -emoji2[emoji_modifier_fitzpatrick_type_5]=$'\U1F3FE' -emoji2[emoji_modifier_fitzpatrick_type_6]=$'\U1F3FF' -# Various other combining characters. (Incomplete list; I selected ones that sound useful) -emoji2[combining_enclosing_circle]=$'\U20DD' -emoji2[combining_enclosing_square]=$'\U20DE' -emoji2[combining_enclosing_diamond]=$'\U20DF' -emoji2[combining_enclosing_circle_backslash]=$'\U20E0' -emoji2[combining_enclosing_screen]=$'\U20E2' -emoji2[combining_enclosing_keycap]=$'\U20E3' -emoji2[combining_enclosing_upward_pointing_triangle]=$'\U20E4' - -# Easier access to skin tone modifiers -emoji_skintone[1_2]=$'\U1F3FB' -emoji_skintone[3]=$'\U1F3FC' -emoji_skintone[4]=$'\U1F3FD' -emoji_skintone[5]=$'\U1F3FE' -emoji_skintone[6]=$'\U1F3FF' - -# Emoji groups -# These are stored in a single associative array, $emoji_groups, to avoid cluttering up the global -# namespace, and to allow adding additional group definitions at run time. -# The keys are the group names, and the values are whitespace-separated lists of emoji character names. - -emoji_groups[fruits]=" - tomato - aubergine - grapes - melon - watermelon - tangerine - banana - pineapple - red_apple - green_apple - peach - cherries - strawberry - lemon - pear -" - -emoji_groups[vehicles]=" - airplane - rocket - railway_car - high_speed_train - high_speed_train_with_bullet_nose - bus - ambulance - fire_engine - police_car - taxi - automobile - recreational_vehicle - delivery_truck - ship - speedboat - bicycle - helicopter - steam_locomotive - train - light_rail - tram - oncoming_bus - trolleybus - minibus - oncoming_police_car - oncoming_taxi - oncoming_automobile - articulated_lorry - tractor - monorail - mountain_railway - suspension_railway - mountain_cableway - aerial_tramway - rowboat - bicyclist - mountain_bicyclist - sailboat -" - -emoji_groups[animals]=" - snail - snake - horse - sheep - monkey - chicken - boar - elephant - octopus - spiral_shell - bug - ant - honeybee - lady_beetle - fish - tropical_fish - blowfish - turtle - hatching_chick - baby_chick - front_facing_baby_chick - bird - penguin - koala - poodle - bactrian_camel - dolphin - mouse_face - cow_face - tiger_face - rabbit_face - cat_face - dragon_face - spouting_whale - horse_face - monkey_face - dog_face - pig_face - frog_face - hamster_face - wolf_face - bear_face - panda_face - rat - mouse - ox - water_buffalo - cow - tiger - leopard - rabbit - cat - dragon - crocodile - whale - ram - goat - rooster - dog - pig - dromedary_camel -" - -emoji_groups[faces]=" - grinning_face_with_smiling_eyes - face_with_tears_of_joy - smiling_face_with_open_mouth - smiling_face_with_open_mouth_and_smiling_eyes - smiling_face_with_open_mouth_and_cold_sweat - smiling_face_with_open_mouth_and_tightly_closed_eyes - winking_face - smiling_face_with_smiling_eyes - face_savouring_delicious_food - relieved_face - smiling_face_with_heart_shaped_eyes - smirking_face - unamused_face - face_with_cold_sweat - pensive_face - confounded_face - face_throwing_a_kiss - kissing_face_with_closed_eyes - face_with_stuck_out_tongue_and_winking_eye - face_with_stuck_out_tongue_and_tightly_closed_eyes - disappointed_face - angry_face - pouting_face - crying_face - persevering_face - face_with_look_of_triumph - disappointed_but_relieved_face - fearful_face - weary_face - sleepy_face - tired_face - loudly_crying_face - face_with_open_mouth_and_cold_sweat - face_screaming_in_fear - astonished_face - flushed_face - dizzy_face - face_with_medical_mask -" - -} - -# Prints a random emoji character -# -# random_emoji [group] -# -function random_emoji() { - local group=$1 - local names - if [[ -z "$group" || "$group" == "all" ]]; then - names=(${(k)emoji}) - else - names=(${=emoji_groups[$group]}) - fi - local list_size=${#names} - [[ $list_size -eq 0 ]] && return 1 - local random_index=$(( ( RANDOM % $list_size ) + 1 )) - local name=${names[$random_index]} - echo ${emoji[$name]} -} - -# Displays a listing of emoji with their names -# -# display_emoji [group] -# -function display_emoji() { - local group=$1 - local names - if [[ -z "$group" || "$group" == "all" ]]; then - names=(${(k)emoji}) - else - names=(${=emoji_groups[$group]}) - fi - # The extra spaces in output here are a hack for readability, since some - # terminals treat these emoji chars as single-width. - for i in $names; do - printf '%s ' "$emoji[$i]" - done - print - for i in $names; do - echo "${emoji[$i]} = $i" - done -} - - diff --git a/zsh/.oh-my-zsh/plugins/emoji/update_emoji.pl b/zsh/.oh-my-zsh/plugins/emoji/update_emoji.pl deleted file mode 100644 index 8034052..0000000 --- a/zsh/.oh-my-zsh/plugins/emoji/update_emoji.pl +++ /dev/null @@ -1,113 +0,0 @@ -#!/usr/bin/perl -w -# -# update_emoji.pl -# -# This script generates the emoji.plugin.zsh emoji definitions from the Unicode -# character data for the emoji characters. -# -# The data file can be found at https://unicode.org/Public/emoji/latest/emoji-data.txt -# as referenced in Unicode TR51 (https://www.unicode.org/reports/tr51/index.html). -# -# This is known to work with the data file from version 1.0. It may not work with later -# versions if the format changes. In particular, this reads line comments to get the -# emoji character name and unicode version. -# -# Country names have punctuation and other non-letter characters removed from their name, -# to avoid possible complications with having to escape the strings when using them as -# array subscripts. The definition file seems to use some combining characters like accents -# that get stripped during this process. - -use strict; -use warnings; -use 5.010; -use autodie; - -use Path::Class; -use File::Copy; - -# Parse definitions out of the data file and convert -sub process_emoji_data_file { - my ( $infile, $outfilename ) = @_; - my $file = file($infile); - my $outfile = file($outfilename); - my $outfilebase = $outfile->basename(); - my $tempfilename = "$outfilename.tmp"; - my $tempfile = file($tempfilename); - my $outfh = $tempfile->openw(); - $outfh->print(" -# $outfilebase - Emoji character definitions for oh-my-zsh emoji plugin -# -# This file is auto-generated by update_emoji.pl. Do not edit it manually. -# -# This contains the definition for: -# \$emoji - which maps character names to Unicode characters -# \$emoji_flags - maps country names to Unicode flag characters using region indicators - -# Main emoji -typeset -gAH emoji -# National flags -typeset -gAH emoji_flags -# Combining modifiers -typeset -gAH emoji_mod - -"); - - my $fh = $file->openr(); - my $line_num = 0; - while ( my $line = $fh->getline() ) { - $line_num++; - $_ = $line; - # Skip all-comment lines (from the header) and blank lines - # (But don't strip comments on normal lines; we need to parse those for - # the emoji names.) - next if /^\s*#/ or /^\s*$/; - - if (/^(\S.*?\S)\s*;\s*(\w+)\s*;\s*(\w+)\s*;\s*(\w+)\s*;\s*(\w.*?)\s*#\s*V(\S+)\s\(.*?\)\s*(\w.*\S)\s*$/) { - my ($code, $style, $level, $modifier_status, $sources, $version, $keycap_name) - = ($1, $2, $3, $4, $5, $6, $7); - #print "code=$code style=$style level=$level modifier_status=$modifier_status sources=$sources version=$version name=$keycap_name\n"; - my @code_points = split /\s+/, $code; - my @sources = split /\s+/, $sources; - - my $flag_country = ""; - if ( $keycap_name =~ /^flag for (\S.*?)\s*$/) { - $flag_country = $1; - } - - my $zsh_code = join '', map { "\\U$_" } @code_points; - # Convert keycap names to valid associative array names that do not require any - # quoting. Works fine for most stuff, but is clumsy for flags. - my $omz_name = lc($keycap_name); - $omz_name =~ s/[^A-Za-z0-9]/_/g; - my $zsh_flag_country = $flag_country; - $zsh_flag_country =~ s/[^\p{Letter}]/_/g; - if ($flag_country) { - $outfh->print("emoji_flags[$zsh_flag_country]=\$'$zsh_code'\n"); - } else { - $outfh->print("emoji[$omz_name]=\$'$zsh_code'\n"); - } - # Modifiers are included in both the main set and their separate map, - # because they have a standalone representation as a color swatch. - if ( $modifier_status eq "modifier" ) { - $outfh->print("emoji_mod[$omz_name]=\$'$zsh_code'\n"); - } - } else { - die "Failed parsing line $line_num: '$_'"; - } - } - $fh->close(); - $outfh->print("\n"); - $outfh->close(); - - move($tempfilename, $outfilename) - or die "Failed moving temp file to $outfilename: $!"; -} - -my $datafile = "emoji-data.txt"; -my $zsh_def_file = "emoji-char-definitions.zsh"; -process_emoji_data_file($datafile, $zsh_def_file); - -print "Updated definition file $zsh_def_file\n"; - - - diff --git a/zsh/.oh-my-zsh/plugins/emotty/README.md b/zsh/.oh-my-zsh/plugins/emotty/README.md deleted file mode 100644 index ee57170..0000000 --- a/zsh/.oh-my-zsh/plugins/emotty/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# emotty plugin - -This plugin returns an emoji for the current $TTY number so it can be used -in a prompt. - -To use it, add emotty to the plugins array in your zshrc file: -``` -plugins=(... emotty) -``` - -**NOTE:** it requires the [emoji plugin](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/emoji). - -## Usage - -The function `emotty` displays an emoji from the current character set (default: `emoji`), based -on the number associated to the `$TTY`. - -There are different sets of emoji characters available, to choose a different -set, set `$emotty_set` to the name of the set you would like to use, e.g.: -``` -emotty_set=nature -``` - -### Character Sets - -- emoji -- loral -- love -- nature -- stellar -- zodiac - -Use the `display_emotty` function to list the emojis in the current character set, or -the character set passed as the first argument. For example: - -``` -$ display_emotty zodiac - -``` diff --git a/zsh/.oh-my-zsh/plugins/emotty/emotty.plugin.zsh b/zsh/.oh-my-zsh/plugins/emotty/emotty.plugin.zsh deleted file mode 100644 index 4511275..0000000 --- a/zsh/.oh-my-zsh/plugins/emotty/emotty.plugin.zsh +++ /dev/null @@ -1,50 +0,0 @@ -# ------------------------------------------------------------------------------ -# FILE: emotty.plugin.zsh -# DESCRIPTION: Return an emoji for the current $TTY number. -# AUTHOR: Alexis Hildebrandt (afh[at]surryhill.net) -# VERSION: 1.0.0 -# DEPENDS: emoji plugin -# -# There are different sets of emoji characters available, to choose a different -# set export emotty_set to the name of the set you would like to use, e.g.: -# % export emotty_set=nature -# ------------------------------------------------------------------------------ - -typeset -gAH _emotty_sets -local _emotty_plugin_dir="${0:h}" -source "$_emotty_plugin_dir/emotty_stellar_set.zsh" -source "$_emotty_plugin_dir/emotty_floral_set.zsh" -source "$_emotty_plugin_dir/emotty_zodiac_set.zsh" -source "$_emotty_plugin_dir/emotty_nature_set.zsh" -source "$_emotty_plugin_dir/emotty_emoji_set.zsh" -source "$_emotty_plugin_dir/emotty_love_set.zsh" -unset _emotty_plugin_dir - -emotty_default_set=emoji - -function emotty() { - # Use emotty set defined by user, fallback to default - local emotty=${_emotty_sets[${emotty_set:-$emotty_default_set}]} - - # Parse tty number via prompt expansion. %l equals: - # - N if tty = /dev/ttyN - # - pts/N if tty = /dev/pts/N - local tty=${${(%):-%l}##pts/} - # Normalize it to an emotty set index - (( tty = (tty % ${#${=emotty}}) + 1 )) - - local character_name=${${=emotty}[tty]} - echo "${emoji[${character_name}]}${emoji2[emoji_style]}" -} - -function display_emotty() { - local name=${1:-$emotty_set} - echo $name - for i in ${=_emotty_sets[$name]}; do - printf "${emoji[$i]}${emoji2[emoji_style]} " - done - print - for i in ${=_emotty_sets[$name]}; do - print "${emoji[$i]}${emoji2[emoji_style]} = $i" - done -} diff --git a/zsh/.oh-my-zsh/plugins/emotty/emotty_emoji_set.zsh b/zsh/.oh-my-zsh/plugins/emotty/emotty_emoji_set.zsh deleted file mode 100644 index 00e3171..0000000 --- a/zsh/.oh-my-zsh/plugins/emotty/emotty_emoji_set.zsh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env zsh -# vim:ft=zsh ts=2 sw=2 sts=2 - -_emotty_sets[emoji]=" - crystal_ball - ghost - jack_o_lantern - see_no_evil_monkey - hear_no_evil_monkey - speak_no_evil_monkey - smiling_cat_face_with_open_mouth - extraterrestrial_alien - rocket - billiards - bomb - pill - japanese_symbol_for_beginner - direct_hit - cyclone - diamond_shape_with_a_dot_inside - sparkle - eight_spoked_asterisk - eight_pointed_black_star - " diff --git a/zsh/.oh-my-zsh/plugins/emotty/emotty_floral_set.zsh b/zsh/.oh-my-zsh/plugins/emotty/emotty_floral_set.zsh deleted file mode 100644 index f761fea..0000000 --- a/zsh/.oh-my-zsh/plugins/emotty/emotty_floral_set.zsh +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/env zsh -# vim:ft=zsh ts=2 sw=2 sts=2 - -_emotty_sets[floral]=" - hibiscus - cherry_blossom - blossom - sunflower - bouquet - tulip - rose - four_leaf_clover - seedling - herb - palm_tree - evergreen_tree - deciduous_tree - " diff --git a/zsh/.oh-my-zsh/plugins/emotty/emotty_love_set.zsh b/zsh/.oh-my-zsh/plugins/emotty/emotty_love_set.zsh deleted file mode 100644 index 8f19e69..0000000 --- a/zsh/.oh-my-zsh/plugins/emotty/emotty_love_set.zsh +++ /dev/null @@ -1,34 +0,0 @@ -#!/usr/bin/env zsh -# vim:ft=zsh ts=2 sw=2 sts=2 - -# Note: The heavy_black_heart emoji requires $emoji2[emoji_style] -# to be rendered as the emoji red heart. -_emotty_sets[love]=" - green_heart - blue_heart - purple_heart - yellow_heart - heavy_black_heart - broken_heart - heart_with_arrow - heart_with_ribbon - sparkling_heart - two_hearts - revolving_hearts - growing_heart - beating_heart - heart_decoration - couple_with_heart - kiss - man_and_woman_holding_hands - two_women_holding_hands - two_men_holding_hands - kiss_mark - smiling_face_with_heart_shaped_eyes - kissing_face - face_throwing_a_kiss - kissing_face_with_smiling_eyes - kissing_face_with_closed_eyes - smiling_cat_face_with_heart_shaped_eyes - kissing_cat_face_with_closed_eyes - " diff --git a/zsh/.oh-my-zsh/plugins/emotty/emotty_nature_set.zsh b/zsh/.oh-my-zsh/plugins/emotty/emotty_nature_set.zsh deleted file mode 100644 index 8dab4c1..0000000 --- a/zsh/.oh-my-zsh/plugins/emotty/emotty_nature_set.zsh +++ /dev/null @@ -1,58 +0,0 @@ -#!/usr/bin/env zsh -# vim:ft=zsh ts=2 sw=2 sts=2 - -_emotty_sets[nature]=" - mouse_face - hamster_face - rabbit_face - dog_face - cat_face - tiger_face - bear_face - monkey_face - koala - panda_face - chicken - baby_chick - bird - penguin - cow_face - pig_face - frog_face - boar - wolf_face - horse_face - snail - bug - ant - honeybee - lady_beetle - spouting_whale - dolphin - octopus - fish - tropical_fish - snake - turtle - lemon - tangerine - peach - mushroom - tomato - strawberry - red_apple - cherries - grapes - aubergine - watermelon - banana - pineapple - melon - pear - green_apple - ear_of_maize - sunflower - seedling - herb - four_leaf_clover - " diff --git a/zsh/.oh-my-zsh/plugins/emotty/emotty_stellar_set.zsh b/zsh/.oh-my-zsh/plugins/emotty/emotty_stellar_set.zsh deleted file mode 100644 index 8e7e610..0000000 --- a/zsh/.oh-my-zsh/plugins/emotty/emotty_stellar_set.zsh +++ /dev/null @@ -1,25 +0,0 @@ -#!/usr/bin/env zsh -# vim:ft=zsh ts=2 sw=2 sts=2 - -# NOTE: The following emoji show as $'character' in the title -# white_medium_star -# sparkles -# dizzy_symbol - -_emotty_sets[stellar]=" - full_moon_symbol - waning_gibbous_moon_symbol - waning_crescent_moon_symbol - last_quarter_moon_symbol - new_moon_symbol - new_moon_with_face - waxing_crescent_moon_symbol - first_quarter_moon_symbol - waxing_gibbous_moon_symbol - full_moon_with_face - sun_with_face - glowing_star - crescent_moon - first_quarter_moon_with_face - last_quarter_moon_with_face - " diff --git a/zsh/.oh-my-zsh/plugins/emotty/emotty_zodiac_set.zsh b/zsh/.oh-my-zsh/plugins/emotty/emotty_zodiac_set.zsh deleted file mode 100644 index bde6e3d..0000000 --- a/zsh/.oh-my-zsh/plugins/emotty/emotty_zodiac_set.zsh +++ /dev/null @@ -1,29 +0,0 @@ -#!/usr/bin/env zsh -# vim:ft=zsh ts=2 sw=2 sts=2 - -_emotty_sets[zodiac]=" - aries - taurus - gemini - cancer - leo - virgo - libra - scorpius - sagittarius - capricorn - aquarius - pisces - rat - ox - tiger - rabbit - dragon - snake - horse - goat - monkey - rooster - dog - pig - " diff --git a/zsh/.oh-my-zsh/plugins/encode64/README.md b/zsh/.oh-my-zsh/plugins/encode64/README.md deleted file mode 100644 index 86320cf..0000000 --- a/zsh/.oh-my-zsh/plugins/encode64/README.md +++ /dev/null @@ -1,58 +0,0 @@ -# encode64 - -Alias plugin for encoding or decoding using `base64` command. - -To use it, add `encode64` to the plugins array in your zshrc file: - -```zsh -plugins=(... encode64) -``` - -## Functions and Aliases - -| Function | Alias | Description | -| ---------- | ----- | ------------------------------ | -| `encode64` | `e64` | Encodes given data to base64 | -| `decode64` | `d64` | Decodes given data from base64 | - -## Usage and examples - -### Encoding - -- From parameter - - ```console - $ encode64 "oh-my-zsh" - b2gtbXktenNo - $ e64 "oh-my-zsh" - b2gtbXktenNo - ``` - -- From piping - - ```console - $ echo "oh-my-zsh" | encode64 - b2gtbXktenNo== - $ echo "oh-my-zsh" | e64 - b2gtbXktenNo== - ``` - -### Decoding - -- From parameter - - ```console - $ decode64 b2gtbXktenNo - oh-my-zsh% - $ d64 b2gtbXktenNo - oh-my-zsh% - ``` - -- From piping - - ```console - $ echo "b2gtbXktenNoCg==" | decode64 - oh-my-zsh - $ echo "b2gtbXktenNoCg==" | d64 - oh-my-zsh - ``` diff --git a/zsh/.oh-my-zsh/plugins/encode64/encode64.plugin.zsh b/zsh/.oh-my-zsh/plugins/encode64/encode64.plugin.zsh deleted file mode 100644 index 979e067..0000000 --- a/zsh/.oh-my-zsh/plugins/encode64/encode64.plugin.zsh +++ /dev/null @@ -1,17 +0,0 @@ -encode64() { - if [[ $# -eq 0 ]]; then - cat | base64 - else - printf '%s' $1 | base64 - fi -} - -decode64() { - if [[ $# -eq 0 ]]; then - cat | base64 --decode - else - printf '%s' $1 | base64 --decode - fi -} -alias e64=encode64 -alias d64=decode64 diff --git a/zsh/.oh-my-zsh/plugins/extract/README.md b/zsh/.oh-my-zsh/plugins/extract/README.md deleted file mode 100644 index 44f0b05..0000000 --- a/zsh/.oh-my-zsh/plugins/extract/README.md +++ /dev/null @@ -1,60 +0,0 @@ -# extract plugin - -This plugin defines a function called `extract` that extracts the archive file -you pass it, and it supports a wide variety of archive filetypes. - -This way you don't have to know what specific command extracts a file, you just -do `extract ` and the function takes care of the rest. - -To use it, add `extract` to the plugins array in your zshrc file: - -```zsh -plugins=(... extract) -``` - -## Supported file extensions - -| Extension | Description | -|:------------------|:-------------------------------------| -| `7z` | 7zip file | -| `Z` | Z archive (LZW) | -| `apk` | Android app file | -| `aar` | Android library file | -| `bz2` | Bzip2 file | -| `cab` | Microsoft cabinet archive | -| `cpio` | Cpio archive | -| `deb` | Debian package | -| `ear` | Enterprise Application aRchive | -| `gz` | Gzip file | -| `ipa` | iOS app package | -| `ipsw` | iOS firmware file | -| `jar` | Java Archive | -| `lrz` | LRZ archive | -| `lz4` | LZ4 archive | -| `lzma` | LZMA archive | -| `rar` | WinRAR archive | -| `rpm` | RPM package | -| `sublime-package` | Sublime Text package | -| `tar` | Tarball | -| `tar.bz2` | Tarball with bzip2 compression | -| `tar.gz` | Tarball with gzip compression | -| `tar.lrz` | Tarball with lrzip compression | -| `tar.lz` | Tarball with lzip compression | -| `tar.lz4` | Tarball with lz4 compression | -| `tar.xz` | Tarball with lzma2 compression | -| `tar.zma` | Tarball with lzma compression | -| `tar.zst` | Tarball with zstd compression | -| `tbz` | Tarball with bzip compression | -| `tbz2` | Tarball with bzip2 compression | -| `tgz` | Tarball with gzip compression | -| `tlz` | Tarball with lzma compression | -| `txz` | Tarball with lzma2 compression | -| `tzst` | Tarball with zstd compression | -| `war` | Web Application archive (Java-based) | -| `xpi` | Mozilla XPI module file | -| `xz` | LZMA2 archive | -| `zip` | Zip archive | -| `zst` | Zstandard file (zstd) | - -See [list of archive formats](https://en.wikipedia.org/wiki/List_of_archive_formats) for -more information regarding archive formats. diff --git a/zsh/.oh-my-zsh/plugins/extract/_extract b/zsh/.oh-my-zsh/plugins/extract/_extract deleted file mode 100644 index 27b099c..0000000 --- a/zsh/.oh-my-zsh/plugins/extract/_extract +++ /dev/null @@ -1,7 +0,0 @@ -#compdef extract -#autoload - -_arguments \ - '(-r --remove)'{-r,--remove}'[Remove archive.]' \ - "*::archive file:_files -g '(#i)*.(7z|Z|apk|aar|bz2|cab|cpio|deb|ear|gz|ipa|ipsw|jar|lrz|lz4|lzma|rar|rpm|sublime-package|tar|tar.bz2|tar.gz|tar.lrz|tar.lz|tar.lz4|tar.xz|tar.zma|tar.zst|tbz|tbz2|tgz|tlz|txz|tzst|war|whl|xpi|xz|zip|zst)(-.)'" \ - && return 0 diff --git a/zsh/.oh-my-zsh/plugins/extract/extract.plugin.zsh b/zsh/.oh-my-zsh/plugins/extract/extract.plugin.zsh deleted file mode 100644 index 1112dd5..0000000 --- a/zsh/.oh-my-zsh/plugins/extract/extract.plugin.zsh +++ /dev/null @@ -1,85 +0,0 @@ -alias x=extract - -extract() { - setopt localoptions noautopushd - - if (( $# == 0 )); then - cat >&2 <<'EOF' -Usage: extract [-option] [file ...] - -Options: - -r, --remove Remove archive after unpacking. -EOF - fi - - local remove_archive=1 - if [[ "$1" == "-r" ]] || [[ "$1" == "--remove" ]]; then - remove_archive=0 - shift - fi - - local pwd="$PWD" - while (( $# > 0 )); do - if [[ ! -f "$1" ]]; then - echo "extract: '$1' is not a valid file" >&2 - shift - continue - fi - - local success=0 - local extract_dir="${1:t:r}" - local file="$1" full_path="${1:A}" - case "${file:l}" in - (*.tar.gz|*.tgz) (( $+commands[pigz] )) && { pigz -dc "$file" | tar xv } || tar zxvf "$file" ;; - (*.tar.bz2|*.tbz|*.tbz2) tar xvjf "$file" ;; - (*.tar.xz|*.txz) - tar --xz --help &> /dev/null \ - && tar --xz -xvf "$file" \ - || xzcat "$file" | tar xvf - ;; - (*.tar.zma|*.tlz) - tar --lzma --help &> /dev/null \ - && tar --lzma -xvf "$file" \ - || lzcat "$file" | tar xvf - ;; - (*.tar.zst|*.tzst) - tar --zstd --help &> /dev/null \ - && tar --zstd -xvf "$file" \ - || zstdcat "$file" | tar xvf - ;; - (*.tar) tar xvf "$file" ;; - (*.tar.lz) (( $+commands[lzip] )) && tar xvf "$file" ;; - (*.tar.lz4) lz4 -c -d "$file" | tar xvf - ;; - (*.tar.lrz) (( $+commands[lrzuntar] )) && lrzuntar "$file" ;; - (*.gz) (( $+commands[pigz] )) && pigz -dk "$file" || gunzip -k "$file" ;; - (*.bz2) bunzip2 "$file" ;; - (*.xz) unxz "$file" ;; - (*.lrz) (( $+commands[lrunzip] )) && lrunzip "$file" ;; - (*.lz4) lz4 -d "$file" ;; - (*.lzma) unlzma "$file" ;; - (*.z) uncompress "$file" ;; - (*.zip|*.war|*.jar|*.ear|*.sublime-package|*.ipa|*.ipsw|*.xpi|*.apk|*.aar|*.whl) unzip "$file" -d "$extract_dir" ;; - (*.rar) unrar x -ad "$file" ;; - (*.rpm) - command mkdir -p "$extract_dir" && builtin cd -q "$extract_dir" \ - && rpm2cpio "$full_path" | cpio --quiet -id ;; - (*.7z) 7za x "$file" ;; - (*.deb) - command mkdir -p "$extract_dir/control" "$extract_dir/data" - builtin cd -q "$extract_dir"; ar vx "$full_path" > /dev/null - builtin cd -q control; extract ../control.tar.* - builtin cd -q ../data; extract ../data.tar.* - builtin cd -q ..; command rm *.tar.* debian-binary ;; - (*.zst) unzstd "$file" ;; - (*.cab) cabextract -d "$extract_dir" "$file" ;; - (*.cpio) cpio -idmvF "$file" ;; - (*) - echo "extract: '$file' cannot be extracted" >&2 - success=1 ;; - esac - - (( success = success > 0 ? success : $? )) - (( success == 0 && remove_archive == 0 )) && rm "$full_path" - shift - - # Go back to original working directory in case we ran cd previously - builtin cd -q "$pwd" - done -} diff --git a/zsh/.oh-my-zsh/plugins/fabric/README.md b/zsh/.oh-my-zsh/plugins/fabric/README.md deleted file mode 100644 index f121d2e..0000000 --- a/zsh/.oh-my-zsh/plugins/fabric/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# Fabric - -This plugin provides completion for [Fabric](https://www.fabfile.org/). - -To use it add fabric to the plugins array in your zshrc file. - -```zsh -plugins=(... fabric) -``` diff --git a/zsh/.oh-my-zsh/plugins/fabric/_fab b/zsh/.oh-my-zsh/plugins/fabric/_fab deleted file mode 100644 index 9102dad..0000000 --- a/zsh/.oh-my-zsh/plugins/fabric/_fab +++ /dev/null @@ -1,69 +0,0 @@ -#compdef fab -#autoload - -local curcontext=$curcontext state line -declare -A opt_args - -declare -a target_list -target_list=("${(@f)$(fab -l 2>/dev/null | awk '{ - if (NF == 0 || NR == 1) next - if (NF < 2) print $1 - else { - docstring=substr($0, index($0,$2)) - gsub(":", "\\:", docstring) - print $1":"docstring - } -}')}") - -_fab_targets() { - [[ -n "$target_list" ]] || return - _describe -t commands "fabric targets" target_list -} - -output_levels=( - 'status: Status messages, i.e. noting when Fabric is done running, if the user used a keyboard interrupt, or when servers are disconnected from. These messages are almost always relevant and rarely verbose.' - 'aborts: Abort messages. Like status messages, these should really only be turned off when using Fabric as a library, and possibly not even then. Note that even if this output group is turned off, aborts will still occur – there just won’t be any output about why Fabric aborted!' - 'warnings: Warning messages. These are often turned off when one expects a given operation to fail, such as when using grep to test existence of text in a file. If paired with setting env.warn_only to True, this can result in fully silent warnings when remote programs fail. As with aborts, this setting does not control actual warning behavior, only whether warning messages are printed or hidden.' - 'running: Printouts of commands being executed or files transferred, e.g. [myserver] run: ls /var/www. Also controls printing of tasks being run, e.g. [myserver] Executing task ''foo''.' - 'stdout: Local, or remote, stdout, i.e. non-error output from commands.' - 'stderr: Local, or remote, stderr, i.e. error-related output from commands.' - 'user: User-generated output, i.e. local output printed by fabfile code via use of the fastprint or puts functions.' -) - -_arguments -w -S -C \ - '(-)'{-h,--help}'[show this help message and exit]: :->noargs' \ - '(-)'{-V,--version}'[show program''s version number and exit]: :->noargs' \ - '(-)--list[print list of possible commands and exit]: :->noargs' \ - '(-)--shortlist[print non-verbose list of possible commands and exit]: :->noargs' \ - '(--reject-unknown-hosts)--reject-unknown-hosts[reject unknown hosts]' \ - '(--no-pty)--no-pty[do not use pseudo-terminal in run/sudo]' \ - "(-d+ --display=-)"{-d+,--display=-}"[print detailed info about a given command]: :_fab_targets" \ - '(-D --disable-known-hosts)'{-D,--disable-known-hosts}'[do not load user known_hosts file]' \ - '(-r --reject-unknown-hosts)'{-r,--reject-unknown-hosts}'[reject unknown hosts]' \ - '(-u+ --user=-)'{-u+,--user=-}'[username to use when connecting to remote hosts]: :' \ - '(-p+ --password=-)'{-p+,--password=-}'[password for use with authentication and/or sudo]: :' \ - '(-H+ --hosts=-)'{-H+,--hosts=-}'[comma separated list of hosts to operate on]: :' \ - '(-R+ --roles=-)'{-R+,--roles=-}'[comma separated list of roles to operate on]: :' \ - '(-a --no-agent)'{-a,--no-agent}'[don''t use the running SSH agent]' \ - '(-k --no-keys)'{-k,--no-keys}'[don''t load private key files from ~/.ssh/]' \ - '(-w --warn-only)'{-w,--warn-only}'[warn instead of abort, when commands fail]' \ - '-i+[path to SSH private key file. May be repeated]: :_files' \ - "(-f+ --fabfile=)"{-f+,--fabfile=}"[Python module file to import]: :_files -g *.py" \ - '(-c+ --config=-)'{-c+,--config=-}'[specify location of config file to use]: :_files' \ - '(-s+ --shell=-)'{-s+,--shell=-}'[specify a new shell, defaults to ''/bin/bash -l -c'']: :' \ - '(--hide=-)--hide=-[comma-separated list of output levels to hide]: :->levels' \ - '(--show=-)--show=-[comma-separated list of output levels to show]: :->levels' \ - '*::: :->subcmds' && return 0 - -if [[ CURRENT -ge 1 ]]; then - case $state in - noargs) - _message "nothing to complete";; - levels) - _describe -t commands "output levels" output_levels;; - *) - _fab_targets;; - esac - - return -fi diff --git a/zsh/.oh-my-zsh/plugins/fabric/fabric.plugin.zsh b/zsh/.oh-my-zsh/plugins/fabric/fabric.plugin.zsh deleted file mode 100644 index e69de29..0000000 diff --git a/zsh/.oh-my-zsh/plugins/fancy-ctrl-z/README.md b/zsh/.oh-my-zsh/plugins/fancy-ctrl-z/README.md deleted file mode 100644 index f1b1dfa..0000000 --- a/zsh/.oh-my-zsh/plugins/fancy-ctrl-z/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# Use Ctrl-Z to switch back to Vim - -I frequently need to execute random commands in my shell. To achieve it I pause -Vim by pressing Ctrl-z, type command and press fg to switch back to Vim. -The fg part really hurts me. I just wanted to hit Ctrl-z once again to get back -to Vim. I could not find a solution, so I developed one on my own that -works wonderfully with ZSH. - -Source: http://sheerun.net/2014/03/21/how-to-boost-your-vim-productivity/ - -Credits: -- original idea by @sheerun -- added to OMZ by @mbologna - diff --git a/zsh/.oh-my-zsh/plugins/fancy-ctrl-z/fancy-ctrl-z.plugin.zsh b/zsh/.oh-my-zsh/plugins/fancy-ctrl-z/fancy-ctrl-z.plugin.zsh deleted file mode 100644 index 82b9688..0000000 --- a/zsh/.oh-my-zsh/plugins/fancy-ctrl-z/fancy-ctrl-z.plugin.zsh +++ /dev/null @@ -1,12 +0,0 @@ -fancy-ctrl-z () { - if [[ $#BUFFER -eq 0 ]]; then - BUFFER="fg" - zle accept-line -w - else - zle push-input -w - zle clear-screen -w - fi -} -zle -N fancy-ctrl-z -bindkey '^Z' fancy-ctrl-z - diff --git a/zsh/.oh-my-zsh/plugins/fasd/README.md b/zsh/.oh-my-zsh/plugins/fasd/README.md deleted file mode 100644 index a5c74e5..0000000 --- a/zsh/.oh-my-zsh/plugins/fasd/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# fasd - -[`Fasd`](https://github.com/clvv/fasd) (pronounced similar to "fast") is a command-line productivity booster. Fasd offers quick access to files and directories for POSIX shells. - -To use it, add `fasd` to the plugins array in your zshrc file: - -```zsh -plugins=(... fasd) -``` - -## Installation - -Please find detailed installation guide [`here`](https://github.com/clvv/fasd#install) - -## Aliases - -| Alias | Command | Description | -|-------|-------------------------------------------|-------------------------------------------------------------| -| v | `fasd -f -e "$EDITOR"` | List frequent/recent files matching the given filename. | -| o | `fasd -a -e xdg-open` | List frequent/recent files and directories matching. | -| j | `fasd_cd -d -i` | cd with interactive selection | diff --git a/zsh/.oh-my-zsh/plugins/fasd/fasd.plugin.zsh b/zsh/.oh-my-zsh/plugins/fasd/fasd.plugin.zsh deleted file mode 100644 index 6538d09..0000000 --- a/zsh/.oh-my-zsh/plugins/fasd/fasd.plugin.zsh +++ /dev/null @@ -1,16 +0,0 @@ -# check if fasd is installed -if (( ! ${+commands[fasd]} )); then - return -fi - -fasd_cache="${ZSH_CACHE_DIR}/fasd-init-cache" -if [[ "$commands[fasd]" -nt "$fasd_cache" || ! -s "$fasd_cache" ]]; then - fasd --init posix-alias zsh-hook zsh-ccomp zsh-ccomp-install \ - zsh-wcomp zsh-wcomp-install >| "$fasd_cache" -fi -source "$fasd_cache" -unset fasd_cache - -alias v='f -e "$EDITOR"' -alias o='a -e xdg-open' -alias j='zz' diff --git a/zsh/.oh-my-zsh/plugins/fastfile/README.md b/zsh/.oh-my-zsh/plugins/fastfile/README.md deleted file mode 100644 index 37f5b2f..0000000 --- a/zsh/.oh-my-zsh/plugins/fastfile/README.md +++ /dev/null @@ -1,84 +0,0 @@ -# Fastfile plugin - -This plugin adds a way to reference certain files or folders used frequently using -a global alias or shortcut. - -To use it, add `fastfile` to the plugins array in your zshrc file: -```zsh -plugins=(... fastfile) -``` - -## Usage - -Example: you access folder `/code/project/backend/database` very frequently. - -First, generate a shortcut with the name `pjdb`: -```zsh -$ fastfile pjdb /code/project/backend/database -``` - -Next time you want to access it, use `§pjdb`. For example: -```zsh -$ cd §pjdb -$ subl §pjdb -``` -where § is the fastfile prefix (see [below](#options) for how to change). - -**Note:** shortcuts with spaces in the name are assigned a global alias -where the spaces have been substituted with underscores (`_`). For example: -a shortcut named `"hello world"` corresponds with `§hello_world`. - - -## Functions - -- `fastfile `: generate a shortcut. - -- `fastfile_print `: prints a shortcut, with the format - ` -> `. - -- `fastfile_ls`: lists all shortcuts. - -- `fastfile_rm `: remove a shortcut. - -- `fastfile_sync`: generates the global aliases for the shortcuts. - - -### Internal functions - -- `fastfile_resolv `: resolves the location of the shortcut - file, i.e., the file in the fastfile directory where the shortcut path - is stored. - -- `fastfile_get `: get the real path of the shortcut. - - -## Aliases - -| Alias | Function | -|--------|------------------| -| ff | `fastfile` | -| ffp | `fastfile_print` | -| ffrm | `fastfile_rm` | -| ffls | `fastfile_ls` | -| ffsync | `fastfile_sync` | - - -## Options - -These are options you can set to change certain parts of the plugin. To change -them, add `=` to your zshrc file, before Oh My Zsh is sourced. -For example: `fastfile_var_prefix='@'`. - -- `fastfile_var_prefix`: prefix for the global aliases created. Controls the prefix of the - created global aliases. - **Default:** `§` (section sign), easy to type in a german keyboard via the combination - [`⇧ Shift`+`3`](https://en.wikipedia.org/wiki/German_keyboard_layout#/media/File:KB_Germany.svg), - or using `⌥ Option`+`6` in macOS. - -- `fastfile_dir`: directory where the fastfile shortcuts are stored. Needs to end - with a trailing slash. - **Default:** `$HOME/.fastfile/`. - -## Author - -- [Karolin Varner](https://github.com/koraa) diff --git a/zsh/.oh-my-zsh/plugins/fastfile/fastfile.plugin.zsh b/zsh/.oh-my-zsh/plugins/fastfile/fastfile.plugin.zsh deleted file mode 100644 index ccbbce3..0000000 --- a/zsh/.oh-my-zsh/plugins/fastfile/fastfile.plugin.zsh +++ /dev/null @@ -1,127 +0,0 @@ -########################### -# Settings - -# These can be overwritten any time. -# If they are not set yet, they will be -# overwritten with their default values - -default fastfile_dir "${HOME}/.fastfile" -default fastfile_var_prefix "§" - -########################### -# Impl - -# -# Generate a shortcut -# -# Arguments: -# 1. name - The name of the shortcut (default: name of the file) -# 2. file - The file or directory to make the shortcut for -# STDOUT: -# => fastfle_print -# -function fastfile() { - test "$2" || 2="." - file=$(readlink -f "$2") - - test "$1" || 1="$(basename "$file")" - name=$(echo "$1" | tr " " "_") - - - mkdir -p "${fastfile_dir}" - echo "$file" > "$(fastfile_resolv "$name")" - - fastfile_sync - fastfile_print "$name" -} - -# -# Resolve the location of a shortcut file (the database file, where the value is written!) -# -# Arguments: -# 1. name - The name of the shortcut -# STDOUT: -# The path to the shortcut file -# -function fastfile_resolv() { - echo "${fastfile_dir}${1}" -} - -# -# Get the real path of a shortcut -# -# Arguments: -# 1. name - The name of the shortcut -# STDOUT: -# The path -# -function fastfile_get() { - cat "$(fastfile_resolv "$1")" -} - -# -# Print a shortcut -# -# Arguments: -# 1. name - The name of the shortcut -# STDOUT: -# Name and value of the shortcut -# -function fastfile_print() { - echo "${fastfile_var_prefix}${1} -> $(fastfile_get "$1")" -} - -# -# List all shortcuts -# -# STDOUT: -# (=> fastfle_print) for each shortcut -# -function fastfile_ls() { - for f in "${fastfile_dir}"/*(NF); do - file=`basename "$f"` # To enable simpler handeling of spaces in file names - varkey=`echo "$file" | tr " " "_"` - - # Special format for colums - echo "${fastfile_var_prefix}${varkey}|->|$(fastfile_get "$file")" - done | column -t -s "|" -} - -# -# Remove a shortcut -# -# Arguments: -# 1. name - The name of the shortcut (default: name of the file) -# STDOUT: -# => fastfle_print -# -function fastfile_rm() { - fastfile_print "$1" - rm "$(fastfile_resolv "$1")" -} - -# -# Generate the aliases for the shortcuts -# -function fastfile_sync() { - for f in "${fastfile_dir}"/*(NF); do - file=`basename "$f"` # To enable simpler handeling of spaces in file names - varkey=`echo "$file" | tr " " "_"` - - alias -g "${fastfile_var_prefix}${varkey}"="'$(fastfile_get "$file")'" - done -} - -################################## -# Shortcuts - -alias ff=fastfile -alias ffp=fastfile_print -alias ffrm=fastfile_rm -alias ffls=fastfile_ls -alias ffsync=fastfile_sync - -################################## -# Init - -fastfile_sync diff --git a/zsh/.oh-my-zsh/plugins/fbterm/README.md b/zsh/.oh-my-zsh/plugins/fbterm/README.md deleted file mode 100644 index 70ce56d..0000000 --- a/zsh/.oh-my-zsh/plugins/fbterm/README.md +++ /dev/null @@ -1,10 +0,0 @@ -# fbterm - -This plugin automatically starts [fbterm](https://github.com/zhangyuanwei/fbterm) -if on a real TTY (`/dev/tty*`). - -To use it, add `fbterm` to the plugins array of your zshrc file: - -```zsh -plugins=(... fbterm) -``` diff --git a/zsh/.oh-my-zsh/plugins/fbterm/fbterm.plugin.zsh b/zsh/.oh-my-zsh/plugins/fbterm/fbterm.plugin.zsh deleted file mode 100644 index bc25320..0000000 --- a/zsh/.oh-my-zsh/plugins/fbterm/fbterm.plugin.zsh +++ /dev/null @@ -1,7 +0,0 @@ -# start fbterm automatically in /dev/tty* - -if (( ${+commands[fbterm]} )); then - if [[ "$TTY" = /dev/tty* ]] ; then - fbterm && exit - fi -fi diff --git a/zsh/.oh-my-zsh/plugins/fd/README.md b/zsh/.oh-my-zsh/plugins/fd/README.md deleted file mode 100644 index aabd624..0000000 --- a/zsh/.oh-my-zsh/plugins/fd/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# fd - -This plugin adds completion for the file search tool [`fd`](https://github.com/sharkdp/fd), also known as `fd-find`. - -To use it, add `fd` to the plugins array in your zshrc file: - -```zsh -plugins=(... fd) -``` - -Completion is taken from the fd release [`7.3.0`](https://github.com/sharkdp/fd/releases/tag/v7.3.0). - -Updated on Febrary 13th, 2019. diff --git a/zsh/.oh-my-zsh/plugins/fd/_fd b/zsh/.oh-my-zsh/plugins/fd/_fd deleted file mode 100644 index 7a4c387..0000000 --- a/zsh/.oh-my-zsh/plugins/fd/_fd +++ /dev/null @@ -1,83 +0,0 @@ -#compdef fd fdfind - -autoload -U is-at-least - -_fd() { - typeset -A opt_args - typeset -a _arguments_options - local ret=1 - - if is-at-least 5.2; then - _arguments_options=(-s -S -C) - else - _arguments_options=(-s -C) - fi - - local context curcontext="$curcontext" state line - _arguments "${_arguments_options[@]}" \ -'-d+[Set maximum search depth (default: none)]' \ -'--max-depth=[Set maximum search depth (default: none)]' \ -'--maxdepth=[See --max-depth]' \ -'*-t+[Filter by type: file (f), directory (d), symlink (l), -executable (x), empty (e)]: :(f file d directory l symlink x executable e empty)' \ -'*--type=[Filter by type: file (f), directory (d), symlink (l), -executable (x), empty (e)]: :(f file d directory l symlink x executable e empty)' \ -'*-e+[Filter by file extension]' \ -'*--extension=[Filter by file extension]' \ -'-x+[Execute a command for each search result]' \ -'--exec=[Execute a command for each search result]' \ -'(-x --exec)-X+[Execute a command with all search results at once]' \ -'(-x --exec)--exec-batch=[Execute a command with all search results at once]' \ -'*-E+[Exclude entries that match the given glob pattern]' \ -'*--exclude=[Exclude entries that match the given glob pattern]' \ -'*--ignore-file=[Add a custom ignore-file in .gitignore format]' \ -'-c+[When to use colors: never, *auto*, always]: :(never auto always)' \ -'--color=[When to use colors: never, *auto*, always]: :(never auto always)' \ -'-j+[Set number of threads to use for searching & executing]' \ -'--threads=[Set number of threads to use for searching & executing]' \ -'*-S+[Limit results based on the size of files.]' \ -'*--size=[Limit results based on the size of files.]' \ -'--max-buffer-time=[the time (in ms) to buffer, before streaming to the console]' \ -'--changed-within=[Filter by file modification time (newer than)]' \ -'--changed-before=[Filter by file modification time (older than)]' \ -'*--search-path=[(hidden)]' \ -'-H[Search hidden files and directories]' \ -'--hidden[Search hidden files and directories]' \ -'-I[Do not respect .(git|fd)ignore files]' \ -'--no-ignore[Do not respect .(git|fd)ignore files]' \ -'--no-ignore-vcs[Do not respect .gitignore files]' \ -'*-u[Alias for no-ignore and/or hidden]' \ -'-s[Case-sensitive search (default: smart case)]' \ -'--case-sensitive[Case-sensitive search (default: smart case)]' \ -'-i[Case-insensitive search (default: smart case)]' \ -'--ignore-case[Case-insensitive search (default: smart case)]' \ -'-F[Treat the pattern as a literal string]' \ -'--fixed-strings[Treat the pattern as a literal string]' \ -'-a[Show absolute instead of relative paths]' \ -'--absolute-path[Show absolute instead of relative paths]' \ -'-L[Follow symbolic links]' \ -'--follow[Follow symbolic links]' \ -'-p[Search full path (default: file-/dirname only)]' \ -'--full-path[Search full path (default: file-/dirname only)]' \ -'-0[Separate results by the null character]' \ -'--print0[Separate results by the null character]' \ -'--show-errors[Enable display of filesystem errors]' \ -'-h[Prints help information]' \ -'--help[Prints help information]' \ -'-V[Prints version information]' \ -'--version[Prints version information]' \ -'::pattern -- the search pattern, a regular expression (optional):_files' \ -'::path -- the root directory for the filesystem search (optional):_files' \ -&& ret=0 - -} - -(( $+functions[_fd_commands] )) || -_fd_commands() { - local commands; commands=( - - ) - _describe -t commands 'fd commands' commands "$@" -} - -_fd "$@" diff --git a/zsh/.oh-my-zsh/plugins/firewalld/README.md b/zsh/.oh-my-zsh/plugins/firewalld/README.md deleted file mode 100644 index 8b5bc74..0000000 --- a/zsh/.oh-my-zsh/plugins/firewalld/README.md +++ /dev/null @@ -1,22 +0,0 @@ -# FirewallD Plugin - -This plugin adds some aliases and functions for FirewallD using the `firewalld-cmd` command. To use it, add firewalld to your plugins array. - -```zsh -plugins=(... firewalld) -``` - -## Aliases - -| Alias | Command | Description | -| :---- | :----------------------------------------- | :--------------------------- | -| fw | `sudo firewall-cmd` | Shorthand | -| fwr | `sudo firewall-cmd --reload` | Reload current configuration | -| fwp | `sudo firewall-cmd --permanent` | Create permanent rule | -| fwrp | `sudo firewall-cmd --runtime-to-permanent` | Save current configuration | - -## Functions - -| Function | Description | -| :------- | :--------------------------------------------------------- | -| fwl | Lists configuration from all active zones and direct rules | diff --git a/zsh/.oh-my-zsh/plugins/firewalld/firewalld.plugin.zsh b/zsh/.oh-my-zsh/plugins/firewalld/firewalld.plugin.zsh deleted file mode 100644 index 5b10906..0000000 --- a/zsh/.oh-my-zsh/plugins/firewalld/firewalld.plugin.zsh +++ /dev/null @@ -1,17 +0,0 @@ -alias fw="sudo firewall-cmd" -alias fwp="sudo firewall-cmd --permanent" -alias fwr="sudo firewall-cmd --reload" -alias fwrp="sudo firewall-cmd --runtime-to-permanent" - -function fwl () { - # converts output to zsh array () - # @f flag split on new line - zones=("${(@f)$(sudo firewall-cmd --get-active-zones | grep -v 'interfaces\|sources')}") - - for i in $zones; do - sudo firewall-cmd --zone $i --list-all - done - - echo 'Direct Rules:' - sudo firewall-cmd --direct --get-all-rules -} diff --git a/zsh/.oh-my-zsh/plugins/flutter/README.md b/zsh/.oh-my-zsh/plugins/flutter/README.md deleted file mode 100644 index be41914..0000000 --- a/zsh/.oh-my-zsh/plugins/flutter/README.md +++ /dev/null @@ -1,21 +0,0 @@ -## Flutter plugin - -The Flutter plugin provides completion and useful aliases - -To use it, add flutter to the plugins array of your zshrc file: - -``` -plugins=(... flutter) -``` - -## Aliases - -| Alias | Command | Description | -| :--------- | :--------------------- | :------------------------------------------------------------------------- | -| `fl` | `flutter` | Shorthand for flutter command | -| `flr` | `flutter run` | Runs flutter app | -| `fldoc` | `flutter doctor` | Runs flutter doctor | -| `flb` | `flutter build` | Build flutter application | -| `flattach` | `flutter attach` | Attaches flutter to a running flutter application with enabled observatory | -| `flget` | `flutter packages get` | Installs dependencies | -| `flc` | `flutter clean` | Cleans flutter porject | diff --git a/zsh/.oh-my-zsh/plugins/flutter/_flutter b/zsh/.oh-my-zsh/plugins/flutter/_flutter deleted file mode 100644 index ab6ce42..0000000 --- a/zsh/.oh-my-zsh/plugins/flutter/_flutter +++ /dev/null @@ -1,37 +0,0 @@ -#compdef flutter -#autoload - -local -a _1st_arguments -_1st_arguments=( - "analyze":"Analyze the project's Dart code." - "assemble":"Assemble and build flutter resources." - "attach":"Attach to a running application." - "build":"Flutter build commands." - "channel":"List or switch flutter channels." - "clean":"Delete the build/ and .dart_tool/ directories." - "config":"Configure Flutter settings." - "create":"Create a new Flutter project." - "devices":"List all connected devices." - "doctor":"Show information about the installed tooling." - "drive":"Runs Flutter Driver tests for the current project." - "emulators":"List, launch and create emulators." - "format":" Format one or more dart files." - "help":"Display help information for flutter." - "install":"Install a Flutter app on an attached device." - "logs":"Show log output for running Flutter apps." - "make-host-app-editable":"Moves host apps from generated directories to non-generated directories so that they can be edited by developers." - "precache":"Populates the Flutter tool's cache of binary artifacts." - "pub":"Commands for managing Flutter packages." - "run":"Run your Flutter app on an attached device." - "screenshot":"Take a screenshot from a connected device." - "test":"Run Flutter unit tests for the current project." - "upgrade":"Upgrade your copy of Flutter." - "version":"List or switch flutter versions." -) - -_arguments -C '*:: :->subcmds' - -if (( CURRENT == 1 )); then - _describe -t commands "flutter command" _1st_arguments - return -fi diff --git a/zsh/.oh-my-zsh/plugins/flutter/flutter.plugin.zsh b/zsh/.oh-my-zsh/plugins/flutter/flutter.plugin.zsh deleted file mode 100644 index 01c4c9f..0000000 --- a/zsh/.oh-my-zsh/plugins/flutter/flutter.plugin.zsh +++ /dev/null @@ -1,7 +0,0 @@ -alias fl="flutter" -alias flr="flutter run" -alias fldoc="flutter doctor" -alias flb="flutter build" -alias flattach="flutter attach" -alias flget="flutter packages get" -alias flc="flutter clean" diff --git a/zsh/.oh-my-zsh/plugins/fnm/README.md b/zsh/.oh-my-zsh/plugins/fnm/README.md deleted file mode 100644 index 00fab5c..0000000 --- a/zsh/.oh-my-zsh/plugins/fnm/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# fnm plugin - -This plugin adds autocompletion for [fnm](https://github.com/Schniz/fnm) - a Node.js version manager. - -To use it, add `fnm` to the plugins array in your zshrc file: - -```zsh -plugins=(... fnm) -``` diff --git a/zsh/.oh-my-zsh/plugins/fnm/fnm.plugin.zsh b/zsh/.oh-my-zsh/plugins/fnm/fnm.plugin.zsh deleted file mode 100644 index c161b27..0000000 --- a/zsh/.oh-my-zsh/plugins/fnm/fnm.plugin.zsh +++ /dev/null @@ -1,23 +0,0 @@ -if (( $+commands[fnm] )); then - # remove old generated completion file - command rm -f "${0:A:h}/_fnm" - - ver="$(fnm --version)" - ver_file="$ZSH_CACHE_DIR/fnm_version" - comp_file="$ZSH_CACHE_DIR/completions/_fnm" - - mkdir -p "${comp_file:h}" - (( ${fpath[(Ie)${comp_file:h}]} )) || fpath=("${comp_file:h}" $fpath) - - if [[ ! -f "$comp_file" || ! -f "$ver_file" || "$ver" != "$(< "$ver_file")" ]]; then - fnm completions --shell=zsh >| "$comp_file" - echo "$ver" >| "$ver_file" - fi - - declare -A _comps - autoload -Uz _fnm - _comps[fnm]=_fnm - - unset ver ver_file comp_file -fi - diff --git a/zsh/.oh-my-zsh/plugins/forklift/README.md b/zsh/.oh-my-zsh/plugins/forklift/README.md deleted file mode 100644 index 7dfd8bf..0000000 --- a/zsh/.oh-my-zsh/plugins/forklift/README.md +++ /dev/null @@ -1,23 +0,0 @@ -# forklift - -Plugin for ForkLift, an FTP application for OS X. - -To use it, add `forklift` to the plugins array in your zshrc file: - -```zsh -plugins=(... forklift) -``` - -## Requirements - -* [ForkLift](https://binarynights.com/) - -## Usage - -`fl []` - -* If `fl` is called without arguments then the current folder is opened in ForkLift. This is equivalent to `fl .`. - -* If `fl` is called with a directory as the argument, then that directory is opened in ForkLift - -* If `fl` is called with a non-directory file as the argument, then the file's parent directory is opened. diff --git a/zsh/.oh-my-zsh/plugins/forklift/forklift.plugin.zsh b/zsh/.oh-my-zsh/plugins/forklift/forklift.plugin.zsh deleted file mode 100644 index 8588948..0000000 --- a/zsh/.oh-my-zsh/plugins/forklift/forklift.plugin.zsh +++ /dev/null @@ -1,122 +0,0 @@ -# Open folder in ForkLift.app or ForkLift2.app from console -# Author: Adam Strzelecki nanoant.com, modified by Bodo Tasche bitboxer.de -# Updated to support ForkLift 2 and ForkLift 3 by Johan Kaving -# Updated to support ForkLift from Setapp by Paul Rudkin -# -# Usage: -# fl [] -# -# Opens specified directory or current working directory in ForkLift.app -# -# Notes: -# It assumes Shift+Cmd+G launches go to folder panel and Cmd+N opens new -# app window. -# -# https://gist.github.com/3313481 -function fl { - if [ ! -z "$1" ]; then - DIR=$1 - if [ ! -d "$DIR" ]; then - DIR=$(dirname $DIR) - fi - if [ "$DIR" != "." ]; then - PWD=`cd "$DIR";pwd` - fi - fi - osascript 2>&1 1>/dev/null <&1` - local _STATUS=`echo $_OUTPUT | grep "use --repo"` - if [ "$_STATUS" = "" ]; then - local _EDITED=`fossil changes` - local _EDITED_SYM="$ZSH_THEME_FOSSIL_PROMPT_CLEAN" - local _BRANCH=`echo $_OUTPUT | grep "* " | sed 's/* //g'` - - if [ "$_EDITED" != "" ]; then - _EDITED_SYM="$ZSH_THEME_FOSSIL_PROMPT_DIRTY" - fi - - echo "$ZSH_THEME_FOSSIL_PROMPT_PREFIX" \ - "$_BRANCH" \ - "$ZSH_THEME_FOSSIL_PROMPT_SUFFIX" \ - "$_EDITED_SYM"\ - "%{$reset_color%}" - fi -} - -function _fossil_get_command_list () { - fossil help -a | grep -v "Usage|Common|This is" -} - -function _fossil () { - local context state state_descr line - typeset -A opt_args - - _arguments \ - '1: :->command'\ - '2: :->subcommand' - - case $state in - command) - local _OUTPUT=`fossil branch 2>&1 | grep "use --repo"` - if [ "$_OUTPUT" = "" ]; then - compadd `_fossil_get_command_list` - else - compadd clone init import help version - fi - ;; - subcommand) - if [ "$words[2]" = "help" ]; then - compadd `_fossil_get_command_list` - else - compcall -D - fi - ;; - esac -} - -function _fossil_prompt () { - local current=`echo $PROMPT $RPROMPT | grep fossil` - - if [ "$_FOSSIL_PROMPT" = "" -o "$current" = "" ]; then - local _prompt=${PROMPT} - local _rprompt=${RPROMPT} - - local is_prompt=`echo $PROMPT | grep git` - - if [ "$is_prompt" = "" ]; then - RPROMPT="$_rprompt"'$(fossil_prompt_info)' - else - PROMPT="$_prompt"'$(fossil_prompt_info) ' - fi - - _FOSSIL_PROMPT="1" - fi -} - -compdef _fossil fossil - -autoload -U add-zsh-hook - -add-zsh-hook precmd _fossil_prompt diff --git a/zsh/.oh-my-zsh/plugins/frontend-search/README.md b/zsh/.oh-my-zsh/plugins/frontend-search/README.md deleted file mode 100644 index 0500589..0000000 --- a/zsh/.oh-my-zsh/plugins/frontend-search/README.md +++ /dev/null @@ -1,75 +0,0 @@ -## Introduction - -> Searches for your frontend web development made easier - -## Installation - -Open your `~/.zshrc` file and enable the `frontend-search` plugin: - -```zsh - -plugins=( ... frontend-search) - -``` - -## Usage - -You can use the frontend-search plugin in these two forms: - -- `frontend [more terms if you want]` -- ` [more terms if you want]` - -For example, these two are equivalent: - -```zsh -$ angular dependency injection -# Will turn into ... -$ frontend angular dependency injection -``` - -Available search contexts are: - -| context | URL | -| ------------- | --------------------------------------------------------------------------- | -| angular | `https://angular.io/?search=` | -| angularjs | `https://google.com/search?as_sitesearch=angularjs.org&as_q=` | -| bem | `https://google.com/search?as_sitesearch=bem.info&as_q=` | -| bootsnipp | `https://bootsnipp.com/search?q=` | -| bundlephobia | `https://bundlephobia.com/result?p=` | -| caniuse | `https://caniuse.com/#search=` | -| codepen | `https://codepen.io/search?q=` | -| compassdoc | `http://compass-style.org/search?q=` | -| cssflow | `http://www.cssflow.com/search?q=` | -| dartlang | `https://api.dartlang.org/apidocs/channels/stable/dartdoc-viewer/dart:` | -| emberjs | `https://www.google.com/search?as_sitesearch=emberjs.com/&as_q=` | -| flowtype | `https://google.com/search?as_sitesearch=flow.org/en/docs/&as_q=` | -| fontello | `http://fontello.com/#search=` | -| github | `https://github.com/search?q=` | -| html5please | `https://html5please.com/#` | -| jestjs | `https://www.google.com/search?as_sitesearch=jestjs.io&as_q=` | -| jquery | `https://api.jquery.com/?s=` | -| lodash | `https://devdocs.io/lodash/index#` | -| mdn | `https://developer.mozilla.org/search?q=` | -| nodejs | `https://www.google.com/search?as_sitesearch=nodejs.org/en/docs/&as_q=` | -| npmjs | `https://www.npmjs.com/search?q=` | -| packagephobia | `https://packagephobia.now.sh/result?p=` | -| qunit | `https://api.qunitjs.com/?s=` | -| reactjs | `https://google.com/search?as_sitesearch=facebook.github.io/react&as_q=` | -| smacss | `https://google.com/search?as_sitesearch=smacss.com&as_q=` | -| stackoverflow | `https://stackoverflow.com/search?q=` | -| typescript | `https://google.com/search?as_sitesearch=www.typescriptlang.org/docs&as_q=` | -| unheap | `http://www.unheap.com/?s=` | -| vuejs | `https://www.google.com/search?as_sitesearch=vuejs.org&as_q=` | - -If you want to have another context, open an Issue and tell us! - -## Fallback search behaviour - -The plugin will use Google as a fallback if the docs site for a search context does not have a search function. You can set the fallback search engine to DuckDuckGo by setting `FRONTEND_SEARCH_FALLBACK='duckduckgo'` in your `~/.zshrc` file before Oh My Zsh is sourced. - -## Author - -**Wilson Mendes (willmendesneto)** - -- -- diff --git a/zsh/.oh-my-zsh/plugins/frontend-search/_frontend-search.sh b/zsh/.oh-my-zsh/plugins/frontend-search/_frontend-search.sh deleted file mode 100644 index 15f8d23..0000000 --- a/zsh/.oh-my-zsh/plugins/frontend-search/_frontend-search.sh +++ /dev/null @@ -1,161 +0,0 @@ -#compdef frontend - -zstyle ':completion:*:descriptions' format '%B%d%b' -zstyle ':completion::complete:frontend:*:commands' group-name commands -zstyle ':completion::complete:frontend:*:frontend_points' group-name frontend_points -zstyle ':completion::complete:frontend::' list-grouped - -zmodload zsh/mapfile - -function _frontend() { - local CONFIG=$HOME/.frontend-search - local ret=1 - - local -a commands - local -a frontend_points - - frontend_points=( "${(f)mapfile[$CONFIG]//$HOME/~}" ) - - commands=( - 'angular: Search in Angular.io website' - 'angularjs: Search in docs.angularjs.org website' - 'bem: Search in BEM website' - 'bootsnipp: Search in bootsnipp website' - 'bundlephobia: Search in Bundlephobia website' - 'caniuse: Search in Can I Use website' - 'codepen: Search in codepen website' - 'compassdoc: Search in COMPASS website' - 'cssflow: Search in cssflow website' - 'dartlang: Search in Dart website' - 'emberjs: Search in Ember website' - 'flowtype: Search in Flowtype website' - 'fontello: Search in fontello website' - 'github: Search in GitHub website' - 'html5please: Search in HTML5 Please website' - 'jestjs: Search in Jest website' - 'jquery: Search in jQuery website' - 'lodash: Search in Lo-Dash website' - 'mdn: Search in MDN website' - 'nodejs: Search in NodeJS website' - 'npmjs: Search in NPMJS website' - 'packagephobia: Search in Packagephobia website' - 'qunit: Search in Qunit website' - 'reactjs: Search in React website' - 'smacss: Search in SMACSS website' - 'stackoverflow: Search in StackOverflow website' - 'typescript: Search in TypeScript website' - 'unheap: Search in unheap website' - 'vuejs: Search in VueJS website' - ) - - _arguments -C \ - '1: :->first_arg' \ - '2: :->second_arg' && ret=0 - - case $state in - first_arg) - _describe -t frontend_points "Warp points" frontend_points && ret=0 - _describe -t commands "Commands" commands && ret=0 - ;; - second_arg) - case $words[2] in - jquery) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - mdn) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - compassdoc) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - html5please) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - caniuse) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - dartlang) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - lodash) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - qunit) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - fontello) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - github) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - bootsnipp) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - cssflow) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - codepen) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - unheap) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - bem) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - smacss) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - angularjs) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - reactjs) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - emberjs) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - stackoverflow) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - npmjs) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - bundlephobia) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - packagephobia) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - flowtype) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - typescript) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - vuejs) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - nodejs) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - jestjs) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - esac - ;; - esac - - return $ret -} - -_frontend "$@" - -# Local Variables: -# mode: Shell-Script -# sh-indentation: 2 -# indent-tabs-mode: nil -# sh-basic-offset: 2 -# End: -# vim: ft=zsh sw=2 ts=2 et diff --git a/zsh/.oh-my-zsh/plugins/frontend-search/frontend-search.plugin.zsh b/zsh/.oh-my-zsh/plugins/frontend-search/frontend-search.plugin.zsh deleted file mode 100644 index 437e477..0000000 --- a/zsh/.oh-my-zsh/plugins/frontend-search/frontend-search.plugin.zsh +++ /dev/null @@ -1,114 +0,0 @@ -alias angular='frontend angular' -alias angularjs='frontend angularjs' -alias bem='frontend bem' -alias bootsnipp='frontend bootsnipp' -alias bundlephobia='frontend bundlephobia' -alias caniuse='frontend caniuse' -alias codepen='frontend codepen' -alias compassdoc='frontend compassdoc' -alias cssflow='frontend cssflow' -alias dartlang='frontend dartlang' -alias emberjs='frontend emberjs' -alias flowtype='frontend flowtype' -alias fontello='frontend fontello' -alias github='frontend github' -alias html5please='frontend html5please' -alias jestjs='frontend jestjs' -alias jquery='frontend jquery' -alias lodash='frontend lodash' -alias mdn='frontend mdn' -alias nodejs='frontend nodejs' -alias npmjs='frontend npmjs' -alias packagephobia='frontend packagephobia' -alias qunit='frontend qunit' -alias reactjs='frontend reactjs' -alias smacss='frontend smacss' -alias stackoverflow='frontend stackoverflow' -alias typescript='frontend typescript' -alias unheap='frontend unheap' -alias vuejs='frontend vuejs' - -function _frontend_fallback() { - case "$FRONTEND_SEARCH_FALLBACK" in - duckduckgo) echo "https://duckduckgo.com/?sites=$1&q=" ;; - *) echo "https://google.com/search?as_sitesearch=$1&as_q=" ;; - esac -} - -function frontend() { - emulate -L zsh - - # define search context URLS - typeset -A urls - urls=( - angular 'https://angular.io/?search=' - angularjs $(_frontend_fallback 'angularjs.org') - bem $(_frontend_fallback 'bem.info') - bootsnipp 'https://bootsnipp.com/search?q=' - bundlephobia 'https://bundlephobia.com/result?p=' - caniuse 'https://caniuse.com/#search=' - codepen 'https://codepen.io/search/pens?q=' - compassdoc 'http://compass-style.org/search?q=' - cssflow 'http://www.cssflow.com/search?q=' - dartlang 'https://api.dartlang.org/apidocs/channels/stable/dartdoc-viewer/dart:' - emberjs $(_frontend_fallback 'emberjs.com/') - flowtype $(_frontend_fallback 'flow.org/en/docs/') - fontello 'http://fontello.com/#search=' - github 'https://github.com/search?q=' - html5please 'https://html5please.com/#' - jestjs $(_frontend_fallback 'jestjs.io') - jquery 'https://api.jquery.com/?s=' - lodash 'https://devdocs.io/lodash/index#' - mdn 'https://developer.mozilla.org/search?q=' - nodejs $(_frontend_fallback 'nodejs.org/en/docs/') - npmjs 'https://www.npmjs.com/search?q=' - packagephobia 'https://packagephobia.now.sh/result?p=' - qunit 'https://api.qunitjs.com/?s=' - reactjs $(_frontend_fallback 'reactjs.org/') - smacss $(_frontend_fallback 'smacss.com') - stackoverflow 'https://stackoverflow.com/search?q=' - typescript $(_frontend_fallback 'www.typescriptlang.org/docs') - unheap 'http://www.unheap.com/?s=' - vuejs $(_frontend_fallback 'vuejs.org') - ) - - # show help for command list - if [[ $# -lt 2 ]] - then - print -P "Usage: frontend %Ucontext%u %Uterm%u [...%Umore%u] (or just: %Ucontext%u %Uterm%u [...%Umore%u])" - print -P "" - print -P "%Uterm%u and what follows is what will be searched for in the %Ucontext%u website," - print -P "and %Ucontext%u is one of the following:" - print -P "" - print -P " angular, angularjs, bem, bootsnipp, caniuse, codepen, compassdoc, cssflow, packagephobia" - print -P " dartlang, emberjs, fontello, flowtype, github, html5please, jestjs, jquery, lodash," - print -P " mdn, npmjs, nodejs, qunit, reactjs, smacss, stackoverflow, unheap, vuejs, bundlephobia" - print -P "" - print -P "For example: frontend npmjs mocha (or just: npmjs mocha)." - print -P "" - return 1 - fi - - # check whether the search context is supported - if [[ -z "$urls[$1]" ]] - then - echo "Search context \"$1\" currently not supported." - echo "" - echo "Valid contexts are:" - echo "" - echo " angular, angularjs, bem, bootsnipp, caniuse, codepen, compassdoc, cssflow, packagephobia" - echo " dartlang, emberjs, fontello, github, html5please, jest, jquery, lodash," - echo " mdn, npmjs, nodejs, qunit, reactjs, smacss, stackoverflow, unheap, vuejs, bundlephobia" - echo "" - return 1 - fi - - # build search url: - # join arguments passed with '%20', then append to search context URL - # TODO substitute for proper urlencode method - url="${urls[$1]}${(j:%20:)@[2,-1]}" - - echo "Opening $url ..." - - open_command "$url" -} diff --git a/zsh/.oh-my-zsh/plugins/fzf/README.md b/zsh/.oh-my-zsh/plugins/fzf/README.md deleted file mode 100644 index 791a3eb..0000000 --- a/zsh/.oh-my-zsh/plugins/fzf/README.md +++ /dev/null @@ -1,52 +0,0 @@ -# fzf - -This plugin tries to find [junegunn's fzf](https://github.com/junegunn/fzf) based on where -it's been installed, and enables its fuzzy auto-completion and key bindings. - -To use it, add `fzf` to the plugins array in your zshrc file: - -```zsh -plugins=(... fzf) -``` - -## Settings - -All these settings should go in your zshrc file, before Oh My Zsh is sourced. - -### `FZF_BASE` - -Set to fzf installation directory path: - -```zsh -export FZF_BASE=/path/to/fzf/install/dir -``` - -### `FZF_DEFAULT_COMMAND` - -Set default command to use when input is tty: - -```zsh -export FZF_DEFAULT_COMMAND='' -``` - -If not set, the plugin will try to set it to these, in the order in which they're found: - -- [`rg`](https://github.com/BurntSushi/ripgrep) -- [`fd`](https://github.com/sharkdp/fd) -- [`ag`](https://github.com/ggreer/the_silver_searcher) - -### `DISABLE_FZF_AUTO_COMPLETION` - -Set whether to load fzf auto-completion: - -```zsh -DISABLE_FZF_AUTO_COMPLETION="true" -``` - -### `DISABLE_FZF_KEY_BINDINGS` - -Set whether to disable key bindings (CTRL-T, CTRL-R, ALT-C): - -```zsh -DISABLE_FZF_KEY_BINDINGS="true" -``` diff --git a/zsh/.oh-my-zsh/plugins/fzf/fzf.plugin.zsh b/zsh/.oh-my-zsh/plugins/fzf/fzf.plugin.zsh deleted file mode 100644 index a979fe2..0000000 --- a/zsh/.oh-my-zsh/plugins/fzf/fzf.plugin.zsh +++ /dev/null @@ -1,174 +0,0 @@ -function setup_using_base_dir() { - local fzf_base fzf_shell fzfdirs dir - - test -d "${FZF_BASE}" && fzf_base="${FZF_BASE}" - - if [[ -z "${fzf_base}" ]]; then - fzfdirs=( - "${HOME}/.fzf" - "${HOME}/.nix-profile/share/fzf" - "${XDG_DATA_HOME:-$HOME/.local/share}/fzf" - "/usr/local/opt/fzf" - "/usr/share/fzf" - "/usr/local/share/examples/fzf" - ) - for dir in ${fzfdirs}; do - if [[ -d "${dir}" ]]; then - fzf_base="${dir}" - break - fi - done - - if [[ -z "${fzf_base}" ]]; then - if (( ${+commands[brew]} )) && dir="$(brew --prefix fzf 2>/dev/null)"; then - if [[ -d "${dir}" ]]; then - fzf_base="${dir}" - fi - fi - fi - fi - - if [[ ! -d "${fzf_base}" ]]; then - return 1 - fi - - # Fix fzf shell directory for Arch Linux, NixOS or Void Linux packages - if [[ ! -d "${fzf_base}/shell" ]]; then - fzf_shell="${fzf_base}" - else - fzf_shell="${fzf_base}/shell" - fi - - # Setup fzf binary path - if (( ! ${+commands[fzf]} )) && [[ "$PATH" != *$fzf_base/bin* ]]; then - export PATH="$PATH:$fzf_base/bin" - fi - - # Auto-completion - if [[ -o interactive && "$DISABLE_FZF_AUTO_COMPLETION" != "true" ]]; then - source "${fzf_shell}/completion.zsh" 2> /dev/null - fi - - # Key bindings - if [[ "$DISABLE_FZF_KEY_BINDINGS" != "true" ]]; then - source "${fzf_shell}/key-bindings.zsh" - fi -} - - -function setup_using_debian_package() { - if (( ! $+commands[dpkg] )) || ! dpkg -s fzf &>/dev/null; then - # Either not a debian based distro, or no fzf installed - return 1 - fi - - # NOTE: There is no need to configure PATH for debian package, all binaries - # are installed to /usr/bin by default - - local completions key_bindings - - case $PREFIX in - *com.termux*) - # Support Termux package - completions="${PREFIX}/share/fzf/completion.zsh" - key_bindings="${PREFIX}/share/fzf/key-bindings.zsh" - ;; - *) - # Determine completion file path: first bullseye/sid, then buster/stretch - completions="/usr/share/doc/fzf/examples/completion.zsh" - [[ -f "$completions" ]] || completions="/usr/share/zsh/vendor-completions/_fzf" - key_bindings="/usr/share/doc/fzf/examples/key-bindings.zsh" - ;; - esac - - # Auto-completion - if [[ -o interactive && "$DISABLE_FZF_AUTO_COMPLETION" != "true" ]]; then - source $completions 2> /dev/null - fi - - # Key bindings - if [[ ! "$DISABLE_FZF_KEY_BINDINGS" == "true" ]]; then - source $key_bindings - fi - - return 0 -} - -function setup_using_opensuse_package() { - # OpenSUSE installs fzf in /usr/bin/fzf - # If the command is not found, the package isn't installed - (( $+commands[fzf] )) || return 1 - - # The fzf-zsh-completion package installs the auto-completion in - local completions="/usr/share/zsh/site-functions/_fzf" - # The fzf-zsh-completion package installs the key-bindings file in - local key_bindings="/etc/zsh_completion.d/fzf-key-bindings" - - # If these are not found: (1) maybe we're not on OpenSUSE, or - # (2) maybe the fzf-zsh-completion package isn't installed. - if [[ ! -f "$completions" || ! -f "$key_bindings" ]]; then - return 1 - fi - - # Auto-completion - if [[ -o interactive && "$DISABLE_FZF_AUTO_COMPLETION" != "true" ]]; then - source "$completions" 2>/dev/null - fi - - # Key bindings - if [[ "$DISABLE_FZF_KEY_BINDINGS" != "true" ]]; then - source "$key_bindings" 2>/dev/null - fi - - return 0 -} - -function setup_using_openbsd_package() { - # openBSD installs fzf in /usr/local/bin/fzf - if [[ "$OSTYPE" != openbsd* ]] || (( ! $+commands[fzf] )); then - return 1 - fi - - # The fzf package installs the auto-completion in - local completions="/usr/local/share/zsh/site-functions/_fzf_completion" - # The fzf package installs the key-bindings file in - local key_bindings="/usr/local/share/zsh/site-functions/_fzf_key_bindings" - - # Auto-completion - if [[ -o interactive && "$DISABLE_FZF_AUTO_COMPLETION" != "true" ]]; then - source "$completions" 2>/dev/null - fi - - # Key bindings - if [[ "$DISABLE_FZF_KEY_BINDINGS" != "true" ]]; then - source "$key_bindings" 2>/dev/null - fi - - return 0 -} - -function indicate_error() { - cat >&2 <cmds' \ - '*: :->args' && ret=0 - -case $state in - cmds) - cmds=( - "version:Prints Gas's version" - "use:Uses author" - "ssh:Creates a new ssh key for an existing gas author" - "show:Shows your current user" - "list:Lists your authors" - "import:Imports current user to gasconfig" - "help:Describe available tasks or one specific task" - "delete:Deletes author" - "add:Adds author to gasconfig" - ) - _describe -t commands 'gas command' cmds && ret=0 - ;; - args) - case $line[1] in - (use|delete) - VERSION=$(gas -v) - if [[ $VERSION == <1->.*.* ]] || [[ $VERSION == 0.<2->.* ]] || [[ $VERSION == 0.1.<6-> ]] then - _values -S , 'authors' $(cat ~/.gas/gas.authors | sed -n -e 's/^.*\[\(.*\)\]/\1/p') && ret=0 - else - _values -S , 'authors' $(cat ~/.gas | sed -n -e 's/^\[\(.*\)\]/\1/p') && ret=0 - fi - esac - ;; -esac - -return ret diff --git a/zsh/.oh-my-zsh/plugins/gatsby/README.md b/zsh/.oh-my-zsh/plugins/gatsby/README.md deleted file mode 100644 index 36846a2..0000000 --- a/zsh/.oh-my-zsh/plugins/gatsby/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# gatsby autocomplete plugin - -* Adds autocomplete options for all gatsby commands. - -## Requirements - -In order to make this work, you will need to have gatsby set up in your path. diff --git a/zsh/.oh-my-zsh/plugins/gatsby/_gatsby b/zsh/.oh-my-zsh/plugins/gatsby/_gatsby deleted file mode 100644 index 66eb02f..0000000 --- a/zsh/.oh-my-zsh/plugins/gatsby/_gatsby +++ /dev/null @@ -1,24 +0,0 @@ -#compdef gatsby -#autoload - -# in order to make this work, you will need to have gatsby -# https://www.gatsbyjs.org/ - -local -a _1st_arguments -_1st_arguments=( -'develop:Start development server. Watches files, rebuilds, and hot reloads if something changes' -'build:Build a Gatsby project.' -'serve:Serve previously built Gatsby site.' -'info:Get environment information for debugging and issue reporting' -'clean:Wipe the local gatsby environment including built assets and cache' -'repl:Get a node repl with context of Gatsby environment, see (add docs link here)' -'new: [rootPath] [starter] Create new Gatsby project.' -'telemetry:Enable or disable Gatsby anonymous analytics collection.' -) - -_arguments -C '*:: :->subcmds' && return 0 - -if (( CURRENT == 1 )); then - _describe -t commands "gatsby subcommand" _1st_arguments - return -fi diff --git a/zsh/.oh-my-zsh/plugins/gb/README.md b/zsh/.oh-my-zsh/plugins/gb/README.md deleted file mode 100644 index 822c29a..0000000 --- a/zsh/.oh-my-zsh/plugins/gb/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# `gb` plugin - -> A project based build tool for the Go programming language. - -See https://getgb.io for the full `gb` documentation - -* * * * - -- Adds completion support for all `gb` commands. -- Also supports completion for the [`gb-vendor` plugin](https://godoc.org/github.com/constabulary/gb/cmd/gb-vendor). - -To use it, add `gb` to your plugins array: -```sh -plugins=(... gb) -``` - -## Caveats - -The `git` plugin defines an alias `gb` that usually conflicts with the `gb` program. -If you're having trouble with it, remove it by adding `unalias gb` at the end of your -zshrc file. diff --git a/zsh/.oh-my-zsh/plugins/gb/_gb b/zsh/.oh-my-zsh/plugins/gb/_gb deleted file mode 100644 index 8148adf..0000000 --- a/zsh/.oh-my-zsh/plugins/gb/_gb +++ /dev/null @@ -1,111 +0,0 @@ -#compdef gb -#autoload - -_gb () { - local ret=1 state - _arguments -C ':command:->command' '*::options:->options' && ret=0 - - case $state in - (command) - local -a subcommands - subcommands=( - "build:build a package" - "doc:show documentation for a package or symbol" - "env:print project environment variables" - "generate:generate Go files by processing source" - "help:displays the help" - "info:info returns information about this project" - "list:list the packages named by the importpaths" - "test:test packages" - "vendor:manage your vendored dependencies" - ) - _describe -t subcommands 'gb subcommands' subcommands && ret=0 - ;; - (options) - case $line[1] in - (build) - _arguments \ - -f'[ignore cached packages]' \ - -F'[do not cache packages]' \ - -q'[decreases verbosity]' \ - -P'[the number of build jobs to run in parallel]' \ - -R'[sets the base of the project root search path]' \ - -dotfile'[output a dot formatted file of the build steps]' \ - -ldflags'["flag list" arguments to pass to the linker]' \ - -gcflags'["arg list" arguments to pass to the compiler]' \ - -race'[enable data race detection]' \ - -tags'["tag list" additional build tags]' - ;; - (list) - _arguments \ - -f'[alternate format for the list, using the syntax of package template]' \ - -s'[read format template from STDIN]' \ - -json'[prints output in structured JSON format]' - ;; - (test) - _arguments \ - -v'[print output from test subprocess]' \ - -ldflags'["flag list" arguments to pass to the linker]' \ - -gcflags'["arg list" arguments to pass to the compiler]' \ - -race'[enable data race detection]' \ - -tags'["tag list" additional build tags]' - ;; - (vendor) - _gb-vendor - esac - ;; - esac - - return ret -} - -_gb-vendor () { - local curcontext="$curcontext" state line - _arguments -C ':command:->command' '*::options:->options' - - case $state in - (command) - local -a subcommands - subcommands=( - 'delete:deletes a local dependency' - 'fetch:fetch a remote dependency' - 'list:lists dependencies, one per line' - 'purge:remove all unreferenced dependencies' - 'restore:restore dependencies from the manifest' - 'update:update a local dependency' - ) - _describe -t subcommands 'gb vendor subcommands' subcommands && ret=0 - ;; - (options) - case $line[1] in - (delete) - _arguments \ - -all'[remove all dependencies]' - ;; - (fetch) - _arguments \ - -branch'[fetch from a particular branch]' \ - -no-recurse'[do not fetch recursively]' \ - -tag'[fetch the specified tag]' \ - -revision'[fetch the specific revision from the branch (if supplied)]' \ - -precaire'[allow the use of insecure protocols]' \ - ;; - (list) - _arguments \ - -f'[controls the template used for printing each manifest entry]' - ;; - (restore) - _arguments \ - -precaire'[allow the use of insecure protocols]' - ;; - (update) - _arguments \ - -all'[update all dependencies in the manifest or supply a given dependency]' \ - -precaire'[allow the use of insecure protocols]' - ;; - esac - ;; - esac -} - -_gb diff --git a/zsh/.oh-my-zsh/plugins/gcloud/README.md b/zsh/.oh-my-zsh/plugins/gcloud/README.md deleted file mode 100644 index e7ce0e0..0000000 --- a/zsh/.oh-my-zsh/plugins/gcloud/README.md +++ /dev/null @@ -1,24 +0,0 @@ -# gcloud - -This plugin provides completion support for the -[Google Cloud SDK CLI](https://cloud.google.com/sdk/gcloud/). - -To use it, add `gcloud` to the plugins array in your zshrc file. - -```zsh -plugins=(... gcloud) -``` - -It relies on you having installed the SDK using one of the supported options -listed [here](https://cloud.google.com/sdk/install). - -## Plugin Options - -* Set `CLOUDSDK_HOME` in your `zshrc` file before you load oh-my-zsh if you have -your GCloud SDK installed in a non-standard location. The plugin will use this -as the base for your SDK if it finds it set already. - -* If you do not have a `python2` in your `PATH` you'll also need to set the -`CLOUDSDK_PYTHON` environment variable at the end of your `.zshrc`. This is -used by the SDK to call a compatible interpreter when you run one of the -SDK commands. diff --git a/zsh/.oh-my-zsh/plugins/gcloud/gcloud.plugin.zsh b/zsh/.oh-my-zsh/plugins/gcloud/gcloud.plugin.zsh deleted file mode 100644 index 7368eb3..0000000 --- a/zsh/.oh-my-zsh/plugins/gcloud/gcloud.plugin.zsh +++ /dev/null @@ -1,34 +0,0 @@ -##################################################### -# gcloud plugin for oh-my-zsh # -# Author: Ian Chesal (github.com/ianchesal) # -##################################################### - -if [[ -z "${CLOUDSDK_HOME}" ]]; then - search_locations=( - "$HOME/google-cloud-sdk" - "/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk" - "/opt/homebrew/Caskroom/google-cloud-sdk/latest/google-cloud-sdk" - "/usr/share/google-cloud-sdk" - "/snap/google-cloud-sdk/current" - "/usr/lib64/google-cloud-sdk/" - "/opt/google-cloud-sdk" - ) - - for gcloud_sdk_location in $search_locations; do - if [[ -d "${gcloud_sdk_location}" ]]; then - CLOUDSDK_HOME="${gcloud_sdk_location}" - break - fi - done -fi - -if (( ${+CLOUDSDK_HOME} )); then - if (( ! $+commands[gcloud] )); then - # Only source this if GCloud isn't already on the path - if [[ -f "${CLOUDSDK_HOME}/path.zsh.inc" ]]; then - source "${CLOUDSDK_HOME}/path.zsh.inc" - fi - fi - source "${CLOUDSDK_HOME}/completion.zsh.inc" - export CLOUDSDK_HOME -fi diff --git a/zsh/.oh-my-zsh/plugins/geeknote/README.md b/zsh/.oh-my-zsh/plugins/geeknote/README.md deleted file mode 100644 index 95b3aa7..0000000 --- a/zsh/.oh-my-zsh/plugins/geeknote/README.md +++ /dev/null @@ -1,10 +0,0 @@ -# Geeknote plugin - -This plugin provides autocompletion for [Geeknote](https://github.com/VitaliyRodnenko/geeknote) -and an alias for `geeknote` called `gn`. - -To use it, add `geeknote` to the plugins array in your zshrc file: - -```zsh -plugins=( ... geeknote ...) -``` diff --git a/zsh/.oh-my-zsh/plugins/geeknote/_geeknote b/zsh/.oh-my-zsh/plugins/geeknote/_geeknote deleted file mode 100644 index a34be59..0000000 --- a/zsh/.oh-my-zsh/plugins/geeknote/_geeknote +++ /dev/null @@ -1,157 +0,0 @@ -#compdef geeknote - -# Geeknote Autocomplete plugin for Zsh -# Requires: Geeknote installed -# Author : Ján KoÅ¡Äo (@s7anley) - -__login() { - # no arguments -} - -__logout() { - _arguments \ - '--force[Do not ask about logging out.]' -} - -__settings() { - _arguments \ - "--editor+[Set the editor, which use to edit and create notes.]::" -} - -__create() { - _arguments \ - '--title+[The note title.]::' \ - '--content+[The note content.]::' \ - '--tags+[One tag or the list of tags which will be added to the note.]::' \ - '--notebook+[Set the notebook where to save note.]::' \ - '--resource+[Add a resource to the note.]::' -} - -__edit() { - _arguments \ - '--note+[The name or ID from the previous search of a note to edit.]::' \ - '--title+[Set new title of the note.]::' \ - '--content+[Set new content of the note.]::' \ - '--tags+[Set new list o tags for the note.]::' \ - '--notebook+[Assign new notebook for the note.]::' \ - '--resource+[Add a resource to the note.]::' -} - -__find() { - _arguments \ - '--search+[Text to search.]::' \ - '--tags+[Notes with which tag/tags to search.]::' \ - '--notebook+[In which notebook search the note.]::' \ - '--date+[Set date in format dd.mm.yyyy or date range dd.mm.yyyy-dd.mm.yyyy.]::' \ - '--count+[How many notes show in the result list.]::' \ - '--with-url[Add direct url of each note in results to Evernote web-version.]' \ - '--content-search[Search by content, not by title.]' \ - '--exact-entry[Search for exact entry of the request.]' -} - -__show() { - _arguments \ - '--note+[The name or ID from the previous search of a note to show.]::' \ - '--raw[Show the raw note body.]' -} - -__remove() { - _arguments \ - '--note+[The name or ID from the previous search of a note to remove.]::' \ - '--force[Do not ask about removing.]' -} - -__notebook-list() { - # no arguments -} - -__notebook-create() { - _arguments \ - '--title+[Set the title of new notebook.]::' -} - -__notebook-edit() { - _arguments \ - '--title+[Set the title of new notebook.]::' \ - '--notebook+[The name of a notebook to rename.]::' -} - -__tag-list() { - # no arguments -} - -__tag-create() { - _arguments \ - '--title+[Set the title of new tag.]::' -} - -__tag-edit() { - _arguments \ - '--tagname+[The name of a tag to rename.]::' \ - '--title+[Set the new name of tag.]::' -} - -__user() { - _arguments \ - '--full[Show full information.]' -} - -local -a _1st_arguments -_1st_arguments=( - 'login':'Authorize in Evernote.' - 'logout':'Logout from Evernote.' - 'settings':'Show and edit current settings.' - 'create':'Create note in Evernote.' - 'edit':'Edit note in Evernote.' - 'find':'Search notes in Evernote.' - 'show':'Output note in the terminal.' - 'remove':'Remove note from Evernote.' - 'notebook-list':'Show the list of existing notebooks in your Evernote.' - 'notebook-create':'Create new notebook.' - 'notebook-edit':'Edit/rename notebook.' - 'tag-list':'Show the list of existing tags in your Evernote.' - 'tag-create':'Create new tag.' - 'tag-edit':'Edit/rename tag.' - 'user':'Show information about active user.' -) - -_arguments '*:: :->command' - -if (( CURRENT == 1 )); then - _describe -t commands "geeknote command" _1st_arguments - return -fi - -local -a _command_args -case "$words[1]" in - login) - __login ;; - logout) - __logout ;; - settings) - __settings ;; - create) - __create ;; - edit) - __edit ;; - find) - __find ;; - show) - __show ;; - remove) - __remove ;; - notebook-list) - __notebook-list ;; - notebook-create) - __notebook-create ;; - notebook-edit) - __notebook-edit ;; - tag-list) - __tag-list ;; - tag-create) - __tag-create ;; - tag-edit) - __tag-edit ;; - user) - __user ;; -esac diff --git a/zsh/.oh-my-zsh/plugins/geeknote/geeknote.plugin.zsh b/zsh/.oh-my-zsh/plugins/geeknote/geeknote.plugin.zsh deleted file mode 100644 index 8126d26..0000000 --- a/zsh/.oh-my-zsh/plugins/geeknote/geeknote.plugin.zsh +++ /dev/null @@ -1,2 +0,0 @@ -#Alias -alias gn='geeknote' diff --git a/zsh/.oh-my-zsh/plugins/gem/README.md b/zsh/.oh-my-zsh/plugins/gem/README.md deleted file mode 100644 index decd87b..0000000 --- a/zsh/.oh-my-zsh/plugins/gem/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# Gem plugin - -This plugin adds completions and aliases for [Gem](https://rubygems.org/). The completions include the common `gem` subcommands as well as the installed gems in the current directory. - -To use it, add `gem` to the plugins array in your zshrc file: - -```zsh -plugins=(... gem) -``` - -## Aliases - -| Alias | Command | Description | -|----------------------|-------------------------------|--------------------------------------------| -| gemb | `gem build *.gemspec` | Build a gem from a gemspec | -| gemp | `gem push *.gem` | Push a gem up to the gem server | -| gemy [gem] [version] | `gem yank [gem] -v [version]` | Remove a pushed gem version from the index | diff --git a/zsh/.oh-my-zsh/plugins/gem/_gem b/zsh/.oh-my-zsh/plugins/gem/_gem deleted file mode 100644 index 92feebe..0000000 --- a/zsh/.oh-my-zsh/plugins/gem/_gem +++ /dev/null @@ -1,72 +0,0 @@ -#compdef gem -#autoload - -# gem zsh completion, based on homebrew completion - -_gem_installed() { - installed_gems=(${(f)"$(gem list --local --no-versions)"}) -} - -local -a _1st_arguments - -_1st_arguments=( - 'build:Build a gem from a gemspec' - 'cert:Manage RubyGems certificates and signing settings' - 'check:Check a gem repository for added or missing files' - 'cleanup:Clean up old versions of installed gems in the local repository' - 'contents:Display the contents of the installed gems' - 'dependency:Show the dependencies of an installed gem' - 'environment:Display information about the RubyGems environment' - 'fetch:Download a gem and place it in the current directory' - 'generate_index:Generates the index files for a gem server directory' - 'help:Provide help on the `gem` command' - 'install:Install a gem into the local repository' - 'list:Display gems whose name starts with STRING' - 'lock:Generate a lockdown list of gems' - 'mirror:Mirror all gem files (requires rubygems-mirror)' - 'outdated:Display all gems that need updates' - 'owner:Manage gem owners on RubyGems.org.' - 'pristine:Restores installed gems to pristine condition from files located in the gem cache' - 'push:Push a gem up to RubyGems.org' - 'query:Query gem information in local or remote repositories' - 'rdoc:Generates RDoc for pre-installed gems' - 'search:Display all gems whose name contains STRING' - 'server:Documentation and gem repository HTTP server' - 'sources:Manage the sources and cache file RubyGems uses to search for gems' - 'specification:Display gem specification (in yaml)' - 'stale:List gems along with access times' - 'uninstall:Uninstall gems from the local repository' - 'unpack:Unpack an installed gem to the current directory' - 'update:Update installed gems to the latest version' - 'which:Find the location of a library file you can require' - 'yank:Remove a specific gem version release from RubyGems.org' -) - -local expl -local -a gems installed_gems - -_arguments \ - '(-v --version)'{-v,--version}'[show version]' \ - '(-h --help)'{-h,--help}'[show help]' \ - '*:: :->subcmds' && return 0 - -if (( CURRENT == 1 )); then - _describe -t commands "gem subcommand" _1st_arguments - return -fi - -case "$words[1]" in - build) - _files -g "*.gemspec" - ;; - install) - _files ;; - list) - if [[ "$state" == forms ]]; then - _gem_installed - _requested installed_gems expl 'installed gems' compadd -a installed_gems - fi ;; - uninstall|update) - _gem_installed - _wanted installed_gems expl 'installed gems' compadd -a installed_gems ;; -esac diff --git a/zsh/.oh-my-zsh/plugins/gem/gem.plugin.zsh b/zsh/.oh-my-zsh/plugins/gem/gem.plugin.zsh deleted file mode 100644 index 938f5c9..0000000 --- a/zsh/.oh-my-zsh/plugins/gem/gem.plugin.zsh +++ /dev/null @@ -1,7 +0,0 @@ -alias gemb="gem build *.gemspec" -alias gemp="gem push *.gem" - -# gemy GEM 0.0.0 = gem yank GEM -v 0.0.0 -function gemy { - gem yank $1 -v $2 -} \ No newline at end of file diff --git a/zsh/.oh-my-zsh/plugins/genpass/README.md b/zsh/.oh-my-zsh/plugins/genpass/README.md deleted file mode 100644 index a5ff4a8..0000000 --- a/zsh/.oh-my-zsh/plugins/genpass/README.md +++ /dev/null @@ -1,66 +0,0 @@ -# genpass - -This plugin provides three unique password generators for ZSH. Each generator -has at least a 128-bit security margin and generates passwords from the -cryptographically secure `/dev/urandom`. Each generator can also take an -optional numeric argument to generate multiple passwords. - -To use it from an interactive ZSH, add `genpass` to the plugins array in your -zshrc file: - - plugins=(... genpass) - -You can also invoke password generators directly (they are implemented as -standalone executable files), which can be handy when you need to generate -passwords in a script: - - ~/.oh-my-zsh/plugins/genpass/genpass-apple 3 - -## genpass-apple - -Generates a pronounceable pseudoword passphrase of the "cvccvc" consonant/vowel -syntax, inspired by [Apple's iCloud Keychain password generator][1]. Each -password has exactly 1 digit placed at the edge of a "word" and exactly 1 -capital letter to satisfy most password security requirements. - - % genpass-apple - gelcyv-foqtam-fotqoh-viMleb-lexduv-6ixfuk - - % genpass-apple 3 - japvyz-qyjti4-kajrod-nubxaW-hukkan-dijcaf - vydpig-fucnul-3ukpog-voggom-zygNad-jepgad - zocmez-byznis-hegTaj-jecdyq-qiqmiq-5enwom - -[1]: https://developer.apple.com/password-rules/ - -## genpass-monkey - -Generates visually unambiguous random meaningless strings using [Crockford's -base32][2]. - - % genpass-monkey - xt7gn976e7jj3fstgpy27330x3 - - % genpass-monkey 3 - n1qqwtzgejwgqve9yzf2gxvx4m - r2n3f5s6vbqs2yx7xjnmahqewy - 296w9y9rts3p5r9yay0raek8e5 - -[2]: https://www.crockford.com/base32.html - -## genpass-xkcd - -Generates passphrases from `/usr/share/dict/words` inspired by the [famous (and -slightly misleading) XKCD comic][3]. Each passphrase is prepended with a digit -showing the number of words in the passphrase to adhere to password security -requirements that require digits. Each word is 6 characters or less. - - % genpass-xkcd - 9-eaten-Slav-rife-aired-hill-cordon-splits-welsh-napes - - % genpass-xkcd 3 - 9-worker-Vlad-horde-shrubs-smite-thwart-paw-alters-prawns - 9-tutors-stink-rhythm-junk-snappy-hooray-barbs-mewl-clomp - 9-vital-escape-Angkor-Huff-wet-Mayra-abbés-putts-guzzle - -[3]: https://xkcd.com/936/ diff --git a/zsh/.oh-my-zsh/plugins/genpass/genpass-apple b/zsh/.oh-my-zsh/plugins/genpass/genpass-apple deleted file mode 100755 index 963ab64..0000000 --- a/zsh/.oh-my-zsh/plugins/genpass/genpass-apple +++ /dev/null @@ -1,79 +0,0 @@ -#!/usr/bin/env zsh -# -# Usage: genpass-apple [NUM] -# -# Generate a password made of 6 pseudowords of 6 characters each -# with the security margin of at least 128 bits. -# -# Example password: xudmec-4ambyj-tavric-mumpub-mydVop-bypjyp -# -# If given a numerical argument, generate that many passwords. - -emulate -L zsh -o no_unset -o warn_create_global -o warn_nested_var - -if [[ ARGC -gt 1 || ${1-1} != ${~:-<1-$((16#7FFFFFFF))>} ]]; then - print -ru2 -- "usage: $0 [NUM]" - return 1 -fi - -zmodload zsh/system zsh/mathfunc || return - -{ - local -r vowels=aeiouy - local -r consonants=bcdfghjklmnpqrstvwxz - local -r digits=0123456789 - - # Sets REPLY to a uniformly distributed random number in [1, $1]. - # Requires: $1 <= 256. - function -$0-rand() { - local c - while true; do - sysread -s1 c || return - # Avoid bias towards smaller numbers. - (( #c < 256 / $1 * $1 )) && break - done - typeset -g REPLY=$((#c % $1 + 1)) - } - - local REPLY chars - - repeat ${1-1}; do - # Generate 6 pseudowords of the form cvccvc where c and v - # denote random consonants and vowels respectively. - local words=() - repeat 6; do - words+=('') - repeat 2; do - for chars in $consonants $vowels $consonants; do - -$0-rand $#chars || return - words[-1]+=$chars[REPLY] - done - done - done - - local pwd=${(j:-:)words} - - # Replace either the first or the last character in one of - # the words with a random digit. - -$0-rand $#digits || return - local digit=$digits[REPLY] - -$0-rand $((2 * $#words)) || return - pwd[REPLY/2*7+2*(REPLY%2)-1]=$digit - - # Convert one lower-case character to upper case. - while true; do - -$0-rand $#pwd || return - [[ $vowels$consonants == *$pwd[REPLY]* ]] && break - done - # NOTE: We aren't using ${(U)c} here because its results are - # locale-dependent. For example, when upper-casing 'i' in Turkish - # locale we would get 'İ', a.k.a. latin capital letter i with dot - # above. We could set LC_CTYPE=C locally but then we would run afoul - # of this zsh bug: https://www.zsh.org/mla/workers/2020/msg00588.html. - local c=$pwd[REPLY] - printf -v c '%o' $((#c - 32)) - printf "%s\\$c%s\\n" "$pwd[1,REPLY-1]" "$pwd[REPLY+1,-1]" || return - done -} always { - unfunction -m -- "-${(b)0}-*" -} } ]]; then - print -ru2 -- "usage: $0 [NUM]" - return 1 -fi - -zmodload zsh/system || return - -{ - local -r chars=abcdefghjkmnpqrstvwxyz0123456789 - local c - repeat ${1-1}; do - repeat 26; do - sysread -s1 c || return - # There is uniform because $#chars divides 256. - print -rn -- $chars[#c%$#chars+1] - done - print - done -} } ]]; then - print -ru2 -- "usage: $0 [NUM]" - return 1 -fi - -zmodload zsh/system zsh/mathfunc || return - -local -r dict=/usr/share/dict/words - -if [[ ! -e $dict ]]; then - print -ru2 -- "$0: file not found: $dict" - return 1 -fi - -# Read all dictionary words and leave only those made of 1-6 characters. -local -a words -words=(${(M)${(f)"$(<$dict)"}:#[a-zA-Z](#c1,6)}) || return - -if (( $#words < 2 )); then - print -ru2 -- "$0: not enough suitable words in $dict" - return 1 -fi - -if (( $#words > 16#7FFFFFFF )); then - print -ru2 -- "$0: too many words in $dict" - return 1 -fi - -# Figure out how many words we need for 128 bits of security margin. -# Each word adds log2($#words) bits. -local -i n=$((ceil(128. / (log($#words) / log(2))))) - -{ - local c - repeat ${1-1}; do - print -rn -- $n - repeat $n; do - while true; do - # Generate a random number in [0, 2**31). - local -i rnd=0 - repeat 4; do - sysread -s1 c || return - (( rnd = (~(1 << 23) & rnd) << 8 | #c )) - done - # Avoid bias towards words in the beginning of the list. - (( rnd < 16#7FFFFFFF / $#words * $#words )) || continue - print -rn -- -$words[rnd%$#words+1] - break - done - done - print - done -} | "$comp_file" - echo "$ver" >| "$ver_file" - fi - - declare -A _comps - autoload -Uz _gh - _comps[gh]=_gh - - unset ver ver_file comp_file -fi - diff --git a/zsh/.oh-my-zsh/plugins/git-auto-fetch/README.md b/zsh/.oh-my-zsh/plugins/git-auto-fetch/README.md deleted file mode 100644 index e96ab42..0000000 --- a/zsh/.oh-my-zsh/plugins/git-auto-fetch/README.md +++ /dev/null @@ -1,50 +0,0 @@ -# Git auto-fetch - -Automatically fetches all changes from all remotes while you are working in a git-initialized directory. - -To use it, add `git-auto-fetch` to the plugins array in your zshrc file: - -```shell -plugins=(... git-auto-fetch) -``` - -## Usage - -Every time the command prompt is shown all remotes will be fetched in the background. By default, -`git-auto-fetch` will be triggered only if the last auto-fetch was done at least 60 seconds ago. -You can change the fetch interval in your .zshrc: - -```sh -GIT_AUTO_FETCH_INTERVAL=1200 # in seconds -``` - -A log of `git fetch --all` will be saved in `.git/FETCH_LOG`. - -## Toggle auto-fetch per folder - -If you are using a mobile connection or for any other reason you can disable git-auto-fetch -for any folder: - -```shell -$ cd to/your/project -$ git-auto-fetch -disabled -$ git-auto-fetch -enabled -``` - -## Caveats - -Automatically fetching all changes defeats the purpose of `git push --force-with-lease`, -and makes it behave like `git push --force` in some cases. For example: - -Consider that you made some changes and possibly rebased some stuff, which means you'll -need to use `--force-with-lease` to overwrite the remote history of a branch. Between the -time when you make the changes (maybe do a `git log`) and the time when you `git push`, -it's possible that someone else updates the branch you're working on. - -If `git-auto-fetch` triggers then, you'll have fetched the remote changes without knowing -it, and even though you're running the push with `--force-with-lease`, git will overwrite -the recent changes because you already have them in your local repository. The -[`git push --force-with-lease` docs](https://git-scm.com/docs/git-push) talk about possible -solutions to this problem. diff --git a/zsh/.oh-my-zsh/plugins/git-auto-fetch/git-auto-fetch.plugin.zsh b/zsh/.oh-my-zsh/plugins/git-auto-fetch/git-auto-fetch.plugin.zsh deleted file mode 100644 index efe8cbe..0000000 --- a/zsh/.oh-my-zsh/plugins/git-auto-fetch/git-auto-fetch.plugin.zsh +++ /dev/null @@ -1,63 +0,0 @@ -# Default auto-fetch interval: 60 seconds -: ${GIT_AUTO_FETCH_INTERVAL:=60} - -# Necessary for the git-fetch-all function -zmodload zsh/datetime zsh/stat - -function git-fetch-all { - ( - # Get git root directory - if ! gitdir="$(command git rev-parse --git-dir 2>/dev/null)"; then - return 0 - fi - - # Do nothing if auto-fetch is disabled or don't have permissions - if [[ ! -w "$gitdir" || -f "$gitdir/NO_AUTO_FETCH" ]] || - [[ -f "$gitdir/FETCH_LOG" && ! -w "$gitdir/FETCH_LOG" ]]; then - return 0 - fi - - # Get time (seconds) when auto-fetch was last run - lastrun="$(zstat +mtime "$gitdir/FETCH_LOG" 2>/dev/null || echo 0)" - # Do nothing if not enough time has passed since last auto-fetch - if (( EPOCHSECONDS - lastrun < $GIT_AUTO_FETCH_INTERVAL )); then - return 0 - fi - - # Fetch all remotes (avoid ssh passphrase prompt) - date -R &>! "$gitdir/FETCH_LOG" - GIT_SSH_COMMAND="command ssh -o BatchMode=yes" \ - command git fetch --all 2>/dev/null &>> "$gitdir/FETCH_LOG" - ) &| -} - -function git-auto-fetch { - # Do nothing if not in a git repository - command git rev-parse --is-inside-work-tree &>/dev/null || return 0 - - # Remove or create guard file depending on its existence - local guard="$(command git rev-parse --git-dir)/NO_AUTO_FETCH" - if [[ -f "$guard" ]]; then - command rm "$guard" && echo "${fg_bold[green]}enabled${reset_color}" - else - command touch "$guard" && echo "${fg_bold[red]}disabled${reset_color}" - fi -} - -# zle-line-init widget (don't redefine if already defined) -(( ! ${+functions[_git-auto-fetch_zle-line-init]} )) || return 0 - -case "$widgets[zle-line-init]" in - # Simply define the function if zle-line-init doesn't yet exist - builtin|"") function _git-auto-fetch_zle-line-init() { - git-fetch-all - } ;; - # Override the current zle-line-init widget, calling the old one - user:*) zle -N _git-auto-fetch_orig_zle-line-init "${widgets[zle-line-init]#user:}" - function _git-auto-fetch_zle-line-init() { - git-fetch-all - zle _git-auto-fetch_orig_zle-line-init -- "$@" - } ;; -esac - -zle -N zle-line-init _git-auto-fetch_zle-line-init diff --git a/zsh/.oh-my-zsh/plugins/git-escape-magic/README.md b/zsh/.oh-my-zsh/plugins/git-escape-magic/README.md deleted file mode 100644 index 7fefed3..0000000 --- a/zsh/.oh-my-zsh/plugins/git-escape-magic/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Git Escape Magic - -This plugin is copied from the original at -https://github.com/knu/zsh-git-escape-magic. All credit for the -functionality enabled by this plugin should go to @knu. - -An excerpt from that project's readme explains its purpose. - -> It eliminates the need for manually escaping those meta-characters. The zle function it provides is context aware and recognizes the characteristics of each subcommand of git. Every time you type one of these meta-characters on a git command line, it automatically escapes the meta-character with a backslash as necessary and as appropriate. - -## Usage - -To use this plugin, add it to your list of plugins in your `.zshrc` file. - -**NOTE**: If you use url-quote-magic, it must be included before this -plugin runs to prevent any conflicts. diff --git a/zsh/.oh-my-zsh/plugins/git-escape-magic/git-escape-magic b/zsh/.oh-my-zsh/plugins/git-escape-magic/git-escape-magic deleted file mode 100644 index 94a8d7b..0000000 --- a/zsh/.oh-my-zsh/plugins/git-escape-magic/git-escape-magic +++ /dev/null @@ -1,135 +0,0 @@ -# -*- mode: sh -*- -# -# git-escape-magic - zle tweak for git command line arguments -# -# Copyright (c) 2011, 2012, 2014 Akinori MUSHA -# Licensed under the 2-clause BSD license. -# -# This tweak eliminates the need for manually escaping shell -# meta-characters such as [~^{}] that are used for specifying a git -# object (commit or tree). Every time you type one of these -# characters on a git command line, it is automatically escaped with a -# backslash as necessary and as appropriate. -# -# If you want to use this with url-quote-magic, make sure to enable it -# first. -# -# Usage: -# autoload -Uz git-escape-magic -# git-escape-magic -# - -git-escape-magic.self-insert() { - emulate -L zsh - setopt extendedglob - local self_insert_function - zstyle -s ':git-escape-magic' self-insert-function self_insert_function - - if [[ "$KEYS" == [{}~^]* ]] && { - local qkey="${(q)KEYS}" - [[ "$KEYS" != "$qkey" ]] - } && { - local lbuf="$LBUFFER$qkey" - [[ "${(Q)LBUFFER}$KEYS" == "${(Q)lbuf}" ]] - } && { - local -a words - words=("${(@Q)${(z)lbuf}}") - [[ "$words[(i)(*/|)git(|-[^/]##)]" -le $#words ]] - } - then - local i - i="$words[(I)([;(){\&]|\&[\&\!]|\|\||[=<>]\(*)]" - if [[ $i -gt 0 ]]; then - shift $((i-1)) words - if [[ "$words[1]" == [\=\<\>]\(* ]]; then - words[1]="${words[1]#[=<>]\(}" - else - [[ "$words[1]" == \; && $words[2] == (then|else|elif|do) ]] && shift words - shift words - fi - fi - while [[ "$words[1]" == (if|while|until|\!) ]]; do - shift words - done - while [[ "$words[1]" == [A-Za-z_][A-Za-z0-9_]#=* ]]; do - shift words - done - [[ "$words[1]" == (*/|)git(|-[^/]##) ]] && { - local subcommand - subcommand="${words[1]##*/git-}" - if [[ -z "$subcommand" ]]; then - shift words - subcommand="$words[1]" - fi - [[ $#words -ge 2 ]] - } && - case "$subcommand" in - # commands that may take pathspec but never take refspec with [{}~^] - (add|rm|am|apply|check-attr|checkout-index|clean|clone|config|diff-files|hash-object|help|index-pack|mailinfo|mailsplit|merge-file|merge-index|mergetool|mktag|mv|pack-objects|pack-redundant|relink|send-email|show-index|show-ref|stage|status|verify-pack) - false ;; - # commands that may take pathspec but rarely take refspec with [{}~^] - (for-each-ref|grep|ls-files|update-index) - false ;; - (archive|ls-tree) - ! [[ $#words -ge 3 && - "$words[-2]" == [^-]* ]] ;; - (diff-tree) - ! [[ $#words -ge 4 && - "$words[-2]" == [^-]* && - "$words[-3]" == [^-]* ]] ;; - (*) - [[ $words[(i)--] -gt $#words ]] ;; - esac && - case "${words[-1]%%"$KEYS"}" in - (*[@^]) - [[ "$KEYS" == [{~^]* ]] ;; - (*[@^]\{[^}]##) - [[ "$KEYS" == \}* ]] ;; - (?*) - [[ "$KEYS" == [~^]* ]] ;; - (*) - false ;; - esac && - LBUFFER="$LBUFFER\\" - fi - - zle "$self_insert_function" -} - -git-escape-magic.on() { - emulate -L zsh - local self_insert_function="${$(zle -lL | awk \ - '$1=="zle"&&$2=="-N"&&$3=="self-insert"{print $4;exit}'):-.self-insert}" - - [[ "$self_insert_function" == git-escape-magic.self-insert ]] && - return 0 - - # For url-quote-magic which does not zle -N itself - zle -la "$self_insert_function" || zle -N "$self_insert_function" - - zstyle ':git-escape-magic' self-insert-function "$self_insert_function" - - zle -A git-escape-magic.self-insert self-insert - return 0 -} - -git-escape-magic.off() { - emulate -L zsh - local self_insert_function - zstyle -s ':git-escape-magic' self-insert-function self_insert_function - - [[ -n "$self_insert_function" ]] && - zle -A "$self_insert_function" self-insert - return 0 -} - -zle -N git-escape-magic.self-insert -zle -N git-escape-magic.on -zle -N git-escape-magic.off - -git-escape-magic() { - git-escape-magic.on -} - -[[ -o kshautoload ]] || git-escape-magic "$@" - diff --git a/zsh/.oh-my-zsh/plugins/git-escape-magic/git-escape-magic.plugin.zsh b/zsh/.oh-my-zsh/plugins/git-escape-magic/git-escape-magic.plugin.zsh deleted file mode 100644 index c021ea7..0000000 --- a/zsh/.oh-my-zsh/plugins/git-escape-magic/git-escape-magic.plugin.zsh +++ /dev/null @@ -1,9 +0,0 @@ -# Automatically detect and escape zsh globbing meta-characters when used with -# git refspec characters like `[^~{}]`. NOTE: This must be loaded _after_ -# url-quote-magic. -# -# This trick is detailed at https://github.com/knu/zsh-git-escape-magic and is -# what allowed this plugin to exist. - -autoload -Uz git-escape-magic -git-escape-magic diff --git a/zsh/.oh-my-zsh/plugins/git-extras/README.md b/zsh/.oh-my-zsh/plugins/git-extras/README.md deleted file mode 100644 index 2adc9d4..0000000 --- a/zsh/.oh-my-zsh/plugins/git-extras/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# git-extras - -This plugin provides completion definitions for some of the commands defined by [git-extras](https://github.com/tj/git-extras). - -To use it, add `git-extras` to the plugins array in your zshrc file: - -```zsh -plugins=(... git-extras) -``` - -## Setup notes - -The completions work by augmenting the `_git` completion provided by `zsh`. This only works with the `zsh`-provided `_git`, not the `_git` provided by `git` itself. If you have both `zsh` and `git` installed, you need to make sure that the `zsh`-provided `_git` takes precedence. - -### OS X Homebrew Setup - -**NOTE:** this no longer works on current Homebrew distributions of git. ~~On OS X with Homebrew, you need to install `git` with `brew install git --without-completions`. Otherwise, `git`'s `_git` will take precedence, and you won't see the completions for `git-extras` commands.~~ diff --git a/zsh/.oh-my-zsh/plugins/git-extras/git-extras.plugin.zsh b/zsh/.oh-my-zsh/plugins/git-extras/git-extras.plugin.zsh deleted file mode 100644 index b86d7c5..0000000 --- a/zsh/.oh-my-zsh/plugins/git-extras/git-extras.plugin.zsh +++ /dev/null @@ -1,498 +0,0 @@ -# ------------------------------------------------------------------------------ -# Description -# ----------- -# -# Completion script for git-extras (https://github.com/tj/git-extras). -# -# This depends on and reuses some of the internals of the _git completion -# function that ships with zsh itself. It will not work with the _git that ships -# with git. -# -# ------------------------------------------------------------------------------ -# Authors -# ------- -# -# * Alexis GRIMALDI (https://github.com/agrimaldi) -# * spacewander (https://github.com/spacewander) -# -# ------------------------------------------------------------------------------ -# Inspirations -# ----------- -# -# * git-extras (https://github.com/tj/git-extras) -# * git-flow-completion (https://github.com/bobthecow/git-flow-completion) -# -# ------------------------------------------------------------------------------ - - -# Internal functions -# These are a lot like their __git_* equivalents inside _git - -__gitex_command_successful () { - if (( ${#*:#0} > 0 )); then - _message 'not a git repository' - return 1 - fi - return 0 -} - -__gitex_commits() { - declare -A commits - git log --oneline -15 | sed 's/\([[:alnum:]]\{7\}\) /\1:/' | while read commit - do - hash=$(echo $commit | cut -d':' -f1) - commits[$hash]="$commit" - done - local ret=1 - _describe -t commits commit commits && ret=0 -} - -__gitex_remote_names() { - local expl - declare -a remote_names - remote_names=(${(f)"$(_call_program remotes git remote 2>/dev/null)"}) - __git_command_successful || return - _wanted remote-names expl remote-name compadd $* - $remote_names -} - -__gitex_tag_names() { - local expl - declare -a tag_names - tag_names=(${${(f)"$(_call_program tags git for-each-ref --format='"%(refname)"' refs/tags 2>/dev/null)"}#refs/tags/}) - __git_command_successful || return - _wanted tag-names expl tag-name compadd $* - $tag_names -} - - -__gitex_branch_names() { - local expl - declare -a branch_names - branch_names=(${${(f)"$(_call_program branchrefs git for-each-ref --format='"%(refname)"' refs/heads 2>/dev/null)"}#refs/heads/}) - __git_command_successful || return - _wanted branch-names expl branch-name compadd $* - $branch_names -} - -__gitex_specific_branch_names() { - local expl - declare -a branch_names - branch_names=(${${(f)"$(_call_program branchrefs git for-each-ref --format='"%(refname)"' refs/heads/"$1" 2>/dev/null)"}#refs/heads/$1/}) - __git_command_successful || return - _wanted branch-names expl branch-name compadd - $branch_names -} - -__gitex_chore_branch_names() { - __gitex_specific_branch_names 'chore' -} - -__gitex_feature_branch_names() { - __gitex_specific_branch_names 'feature' -} - -__gitex_refactor_branch_names() { - __gitex_specific_branch_names 'refactor' -} - -__gitex_bug_branch_names() { - __gitex_specific_branch_names 'bug' -} - -__gitex_submodule_names() { - local expl - declare -a submodule_names - submodule_names=(${(f)"$(_call_program branchrefs git submodule status | awk '{print $2}')"}) # ' - __git_command_successful || return - _wanted submodule-names expl submodule-name compadd $* - $submodule_names -} - - -__gitex_author_names() { - local expl - declare -a author_names - author_names=(${(f)"$(_call_program branchrefs git log --format='%aN' | sort -u)"}) - __git_command_successful || return - _wanted author-names expl author-name compadd $* - $author_names -} - -# subcommands -_git-authors() { - _arguments -C \ - '(--list -l)'{--list,-l}'[show authors]' \ - '--no-email[without email]' \ -} - -_git-bug() { - local curcontext=$curcontext state line ret=1 - declare -A opt_args - - _arguments -C \ - ': :->command' \ - '*:: :->option-or-argument' && ret=0 - - case $state in - (command) - declare -a commands - commands=( - 'finish:merge bug into the current branch' - ) - _describe -t commands command commands && ret=0 - ;; - (option-or-argument) - curcontext=${curcontext%:*}-$line[1]: - case $line[1] in - (finish) - _arguments -C \ - ':branch-name:__gitex_bug_branch_names' - ;; - -r|--remote ) - _arguments -C \ - ':remote-name:__gitex_remote_names' - ;; - esac - return 0 - esac - - _arguments \ - '(--remote -r)'{--remote,-r}'[setup remote tracking branch]' -} - - -_git-changelog() { - _arguments \ - '(-l --list)'{-l,--list}'[list commits]' \ -} - -_git-chore() { - local curcontext=$curcontext state line ret=1 - declare -A opt_args - - _arguments -C \ - ': :->command' \ - '*:: :->option-or-argument' && ret=0 - - case $state in - (command) - declare -a commands - commands=( - 'finish:merge and delete the chore branch' - ) - _describe -t commands command commands && ret=0 - ;; - (option-or-argument) - curcontext=${curcontext%:*}-$line[1]: - case $line[1] in - (finish) - _arguments -C \ - ':branch-name:__gitex_chore_branch_names' - ;; - -r|--remote ) - _arguments -C \ - ':remote-name:__gitex_remote_names' - ;; - esac - return 0 - esac - - _arguments \ - '(--remote -r)'{--remote,-r}'[setup remote tracking branch]' -} - - -_git-contrib() { - _arguments \ - ':author:__gitex_author_names' -} - - -_git-count() { - _arguments \ - '--all[detailed commit count]' -} - -_git-create-branch() { - local curcontext=$curcontext state line - _arguments -C \ - ': :->command' \ - '*:: :->option-or-argument' - - case "$state" in - (command) - _arguments \ - '(--remote -r)'{--remote,-r}'[setup remote tracking branch]' - ;; - (option-or-argument) - curcontext=${curcontext%:*}-$line[1]: - case $line[1] in - -r|--remote ) - _arguments -C \ - ':remote-name:__gitex_remote_names' - ;; - esac - esac -} - -_git-delete-branch() { - _arguments \ - ':branch-name:__gitex_branch_names' -} - - -_git-delete-submodule() { - _arguments \ - ':submodule-name:__gitex_submodule_names' -} - - -_git-delete-tag() { - _arguments \ - ':tag-name:__gitex_tag_names' -} - - -_git-effort() { - _arguments \ - '--above[ignore file with less than x commits]' -} - - -_git-extras() { - local curcontext=$curcontext state line ret=1 - declare -A opt_args - - _arguments -C \ - ': :->command' \ - '*:: :->option-or-argument' && ret=0 - - case $state in - (command) - declare -a commands - commands=( - 'update:update git-extras' - ) - _describe -t commands command commands && ret=0 - ;; - esac - - _arguments \ - '(-v --version)'{-v,--version}'[show current version]' -} - - -_git-feature() { - local curcontext=$curcontext state line ret=1 - declare -A opt_args - - _arguments -C \ - ': :->command' \ - '*:: :->option-or-argument' && ret=0 - - case $state in - (command) - declare -a commands - commands=( - 'finish:merge feature into the current branch' - ) - _describe -t commands command commands && ret=0 - ;; - (option-or-argument) - curcontext=${curcontext%:*}-$line[1]: - case $line[1] in - (finish) - _arguments -C \ - ':branch-name:__gitex_feature_branch_names' - ;; - -r|--remote ) - _arguments -C \ - ':remote-name:__gitex_remote_names' - ;; - esac - return 0 - esac - - _arguments \ - '(--remote -r)'{--remote,-r}'[setup remote tracking branch]' -} - -_git-graft() { - _arguments \ - ':src-branch-name:__gitex_branch_names' \ - ':dest-branch-name:__gitex_branch_names' -} - -_git-guilt() { - _arguments -C \ - '(--email -e)'{--email,-e}'[display author emails instead of names]' \ - '(--ignore-whitespace -w)'{--ignore-whitespace,-w}'[ignore whitespace only changes]' \ - '(--debug -d)'{--debug,-d}'[output debug information]' \ - '-h[output usage information]' -} - -_git-ignore() { - _arguments -C \ - '(--local -l)'{--local,-l}'[show local gitignore]' \ - '(--global -g)'{--global,-g}'[show global gitignore]' \ - '(--private -p)'{--private,-p}'[show repo gitignore]' -} - - -_git-ignore() { - _arguments -C \ - '(--append -a)'{--append,-a}'[append .gitignore]' \ - '(--replace -r)'{--replace,-r}'[replace .gitignore]' \ - '(--list-in-table -l)'{--list-in-table,-l}'[print available types in table format]' \ - '(--list-alphabetically -L)'{--list-alphabetically,-L}'[print available types in alphabetical order]' \ - '(--search -s)'{--search,-s}'[search word in available types]' -} - - -_git-merge-into() { - _arguments '--ff-only[merge only fast-forward]' - _arguments \ - ':src:__gitex_branch_names' \ - ':dest:__gitex_branch_names' -} - -_git-missing() { - _arguments \ - ':first-branch-name:__gitex_branch_names' \ - ':second-branch-name:__gitex_branch_names' -} - - -_git-refactor() { - local curcontext=$curcontext state line ret=1 - declare -A opt_args - - _arguments -C \ - ': :->command' \ - '*:: :->option-or-argument' && ret=0 - - case $state in - (command) - declare -a commands - commands=( - 'finish:merge refactor into the current branch' - ) - _describe -t commands command commands && ret=0 - ;; - (option-or-argument) - curcontext=${curcontext%:*}-$line[1]: - case $line[1] in - (finish) - _arguments -C \ - ':branch-name:__gitex_refactor_branch_names' - ;; - -r|--remote ) - _arguments -C \ - ':remote-name:__gitex_remote_names' - ;; - esac - return 0 - esac - - _arguments \ - '(--remote -r)'{--remote,-r}'[setup remote tracking branch]' -} - - -_git-squash() { - _arguments \ - ':branch-name:__gitex_branch_names' -} - -_git-stamp() { - _arguments -C \ - '(--replace -r)'{--replace,-r}'[replace stamps with same id]' -} - -_git-standup() { - _arguments -C \ - '-a[Specify the author of commits. Use "all" to specify all authors.]' \ - '-d[Show history since N days ago]' \ - '-D[Specify the date format displayed in commit history]' \ - '-f[Fetch commits before showing history]' \ - '-g[Display GPG signed info]' \ - '-h[Display help message]' \ - '-L[Enable the inclusion of symbolic links]' \ - '-m[The depth of recursive directory search]' -} - -_git-summary() { - _arguments '--line[summarize with lines rather than commits]' - __gitex_commits -} - - -_git-undo(){ - _arguments -C \ - '(--soft -s)'{--soft,-s}'[only rolls back the commit but changes remain un-staged]' \ - '(--hard -h)'{--hard,-h}'[wipes your commit(s)]' -} - -zstyle -g existing_user_commands ':completion:*:*:git:*' user-commands - -zstyle ':completion:*:*:git:*' user-commands $existing_user_commands \ - alias:'define, search and show aliases' \ - archive-file:'export the current head of the git repository to an archive' \ - authors:'generate authors report' \ - back:'undo and stage latest commits' \ - bug:'create bug branch' \ - bulk:'run bulk commands' \ - changelog:'generate a changelog report' \ - chore:'create chore branch' \ - clear-soft:'soft clean up a repository' \ - clear:'rigorously clean up a repository' \ - commits-since:'show commit logs since some date' \ - contrib:'show user contributions' \ - count:'show commit count' \ - create-branch:'create branches' \ - delete-branch:'delete branches' \ - delete-merged-branches:'delete merged branches' \ - delete-submodule:'delete submodules' \ - delete-tag:'delete tags' \ - delta:'lists changed files' \ - effort:'show effort statistics on file(s)' \ - extras:'awesome git utilities' \ - feature:'create/merge feature branch' \ - force-clone:'overwrite local repositories with clone' \ - fork:'fork a repo on GitHub' \ - fresh-branch:'create fresh branches' \ - gh-pages:'create the GitHub pages branch' \ - graft:'merge and destroy a given branch' \ - guilt:'calculate change between two revisions' \ - ignore-io:'get sample gitignore file' \ - ignore:'add .gitignore patterns' \ - info:'returns information on current repository' \ - local-commits:'list local commits' \ - lock:'lock a file excluded from version control' \ - locked:'ls files that have been locked' \ - merge-into:'merge one branch into another' \ - merge-repo:'merge two repo histories' \ - missing:'show commits missing from another branch' \ - mr:'checks out a merge request locally' \ - obliterate:'rewrite past commits to remove some files' \ - pr:'checks out a pull request locally' \ - psykorebase:'rebase a branch with a merge commit' \ - pull-request:'create pull request to GitHub project' \ - reauthor:'replace the author and/or committer identities in commits and tags' \ - rebase-patch:'rebases a patch' \ - refactor:'create refactor branch' \ - release:'commit, tag and push changes to the repository' \ - rename-branch:'rename a branch' \ - rename-tag:'rename a tag' \ - repl:'git read-eval-print-loop' \ - reset-file:'reset one file' \ - root:'show path of root' \ - scp:'copy files to ssh compatible `git-remote`' \ - sed:'replace patterns in git-controlled files' \ - setup:'set up a git repository' \ - show-merged-branches:'show merged branches' \ - show-tree:'show branch tree of commit history' \ - show-unmerged-branches:'show unmerged branches' \ - squash:'import changes from a branch' \ - stamp:'stamp the last commit message' \ - standup:'recall the commit history' \ - summary:'show repository summary' \ - sync:'sync local branch with remote branch' \ - touch:'touch and add file to the index' \ - undo:'remove latest commits' \ - unlock:'unlock a file excluded from version control' diff --git a/zsh/.oh-my-zsh/plugins/git-flow-avh/README.md b/zsh/.oh-my-zsh/plugins/git-flow-avh/README.md deleted file mode 100644 index 0768d93..0000000 --- a/zsh/.oh-my-zsh/plugins/git-flow-avh/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# git-flow (AVH Edition) plugin - -This plugin adds completion for the [git-flow (AVH Edition)](https://github.com/petervanderdoes/gitflow-avh). -The AVH Edition of the git extensions that provides high-level repository operations for [Vincent Driessen's branching model](https://nvie.com/posts/a-successful-git-branching-model/). - -To use it, add `git-flow-avh` to the plugins array in your zshrc file: - -```zsh -plugins=(... git-flow-avh) -``` - -## Requirements - -1. The git-flow tool has to be [installed](https://github.com/petervanderdoes/gitflow-avh#installing-git-flow) - separately. - -2. You have to use zsh's git completion instead of the git project's git completion. This is typically - done by default so you don't need to do anything else. If you installed git with Homebrew you - might have to uninstall the git completion it's bundled with. diff --git a/zsh/.oh-my-zsh/plugins/git-flow-avh/git-flow-avh.plugin.zsh b/zsh/.oh-my-zsh/plugins/git-flow-avh/git-flow-avh.plugin.zsh deleted file mode 100644 index 860ca55..0000000 --- a/zsh/.oh-my-zsh/plugins/git-flow-avh/git-flow-avh.plugin.zsh +++ /dev/null @@ -1,526 +0,0 @@ -_git-flow () -{ - local curcontext="$curcontext" state line - typeset -A opt_args - - _arguments -C \ - ':command:->command' \ - '*::options:->options' - - case $state in - (command) - - local -a subcommands - subcommands=( - 'init:Initialize a new git repo with support for the branching model.' - 'feature:Manage your feature branches.' - 'bugfix:Manage your bugfix branches.' - 'config:Manage your configuration.' - 'release:Manage your release branches.' - 'hotfix:Manage your hotfix branches.' - 'support:Manage your support branches.' - 'version:Shows version information.' - 'finish:Finish the branch you are currently on.' - 'delete:Delete the branch you are currently on.' - 'publish:Publish the branch you are currently on.' - 'rebase:Rebase the branch you are currently on.' - ) - _describe -t commands 'git flow' subcommands - ;; - - (options) - case $line[1] in - - (init) - _arguments \ - -f'[Force setting of gitflow branches, even if already configured]' - ;; - - (version) - ;; - - (hotfix) - __git-flow-hotfix - ;; - - (release) - __git-flow-release - ;; - - (feature) - __git-flow-feature - ;; - (bugfix) - __git-flow-bugfix - ;; - - (config) - __git-flow-config - ;; - - esac - ;; - esac -} - -__git-flow-release () -{ - local curcontext="$curcontext" state line - typeset -A opt_args - - _arguments -C \ - ':command:->command' \ - '*::options:->options' - - case $state in - (command) - - local -a subcommands - subcommands=( - 'start:Start a new release branch.' - 'finish:Finish a release branch.' - 'list:List all your release branches. (Alias to `git flow release`)' - 'publish:Publish release branch to remote.' - 'track:Checkout remote release branch.' - 'rebase:Rebase from integration branch.' - 'delete:Delete a release branch.' - ) - _describe -t commands 'git flow release' subcommands - _arguments \ - -v'[Verbose (more) output]' - ;; - - (options) - case $line[1] in - - (start) - _arguments \ - -F'[Fetch from origin before performing finish]'\ - ':version:__git_flow_version_list' - ;; - - (finish) - _arguments \ - -F'[Fetch from origin before performing finish]' \ - -s'[Sign the release tag cryptographically]'\ - -u'[Use the given GPG-key for the digital signature (implies -s)]'\ - -m'[Use the given tag message]'\ - -p'[Push to $ORIGIN after performing finish]'\ - ':version:__git_flow_version_list' - ;; - - (delete) - _arguments \ - -f'[Force deletion]' \ - -r'[Delete remote branch]' \ - ':version:__git_flow_version_list' - ;; - - (publish) - _arguments \ - ':version:__git_flow_version_list' - ;; - - (track) - _arguments \ - ':version:__git_flow_version_list' - ;; - - (rebase) - _arguments \ - -i'[Do an interactive rebase]' \ - ':branch:__git_branch_names' - ;; - - *) - _arguments \ - -v'[Verbose (more) output]' - ;; - esac - ;; - esac -} - -__git-flow-hotfix () -{ - local curcontext="$curcontext" state line - typeset -A opt_args - - _arguments -C \ - ':command:->command' \ - '*::options:->options' - - case $state in - (command) - - local -a subcommands - subcommands=( - 'start:Start a new hotfix branch.' - 'finish:Finish a hotfix branch.' - 'delete:Delete a hotfix branch.' - 'rebase:Rebase from integration branch.' - 'list:List all your hotfix branches. (Alias to `git flow hotfix`)' - 'rename:Rename a hotfix branch.' - ) - _describe -t commands 'git flow hotfix' subcommands - _arguments \ - -v'[Verbose (more) output]' - ;; - - (options) - case $line[1] in - - (start) - _arguments \ - -F'[Fetch from origin before performing finish]'\ - ':hotfix:__git_flow_version_list'\ - ':branch-name:__git_branch_names' - ;; - - (finish) - _arguments \ - -F'[Fetch from origin before performing finish]' \ - -s'[Sign the release tag cryptographically]'\ - -u'[Use the given GPG-key for the digital signature (implies -s)]'\ - -m'[Use the given tag message]'\ - -p'[Push to $ORIGIN after performing finish]'\ - ':hotfix:__git_flow_hotfix_list' - ;; - - (delete) - _arguments \ - -f'[Force deletion]' \ - -r'[Delete remote branch]' \ - ':hotfix:__git_flow_hotfix_list' - ;; - - (rebase) - _arguments \ - -i'[Do an interactive rebase]' \ - ':branch:__git_branch_names' - ;; - - *) - _arguments \ - -v'[Verbose (more) output]' - ;; - esac - ;; - esac -} - -__git-flow-feature () -{ - local curcontext="$curcontext" state line - typeset -A opt_args - - _arguments -C \ - ':command:->command' \ - '*::options:->options' - - case $state in - (command) - - local -a subcommands - subcommands=( - 'start:Start a new feature branch.' - 'finish:Finish a feature branch.' - 'delete:Delete a feature branch.' - 'list:List all your feature branches. (Alias to `git flow feature`)' - 'publish:Publish feature branch to remote.' - 'track:Checkout remote feature branch.' - 'diff:Show all changes.' - 'rebase:Rebase from integration branch.' - 'checkout:Checkout local feature branch.' - 'pull:Pull changes from remote.' - 'rename:Rename a feature branch.' - ) - _describe -t commands 'git flow feature' subcommands - _arguments \ - -v'[Verbose (more) output]' - ;; - - (options) - case $line[1] in - - (start) - _arguments \ - -F'[Fetch from origin before performing finish]'\ - ':feature:__git_flow_feature_list'\ - ':branch-name:__git_branch_names' - ;; - - (finish) - _arguments \ - -F'[Fetch from origin before performing finish]' \ - -r'[Rebase instead of merge]'\ - ':feature:__git_flow_feature_list' - ;; - - (delete) - _arguments \ - -f'[Force deletion]' \ - -r'[Delete remote branch]' \ - ':feature:__git_flow_feature_list' - ;; - - (publish) - _arguments \ - ':feature:__git_flow_feature_list'\ - ;; - - (track) - _arguments \ - ':feature:__git_flow_feature_list'\ - ;; - - (diff) - _arguments \ - ':branch:__git_branch_names'\ - ;; - - (rebase) - _arguments \ - -i'[Do an interactive rebase]' \ - ':branch:__git_branch_names' - ;; - - (checkout) - _arguments \ - ':branch:__git_flow_feature_list'\ - ;; - - (pull) - _arguments \ - ':remote:__git_remotes'\ - ':branch:__git_branch_names' - ;; - - *) - _arguments \ - -v'[Verbose (more) output]' - ;; - esac - ;; - esac -} - -__git-flow-bugfix () -{ - local curcontext="$curcontext" state line - typeset -A opt_args - - _arguments -C \ - ':command:->command' \ - '*::options:->options' - - case $state in - (command) - - local -a subcommands - subcommands=( - 'start:Start a new bugfix branch.' - 'finish:Finish a bugfix branch.' - 'delete:Delete a bugfix branch.' - 'list:List all your bugfix branches. (Alias to `git flow bugfix`)' - 'publish:Publish bugfix branch to remote.' - 'track:Checkout remote bugfix branch.' - 'diff:Show all changes.' - 'rebase:Rebase from integration branch.' - 'checkout:Checkout local bugfix branch.' - 'pull:Pull changes from remote.' - 'rename:Rename a bugfix branch.' - ) - _describe -t commands 'git flow bugfix' subcommands - _arguments \ - -v'[Verbose (more) output]' - ;; - - (options) - case $line[1] in - - (start) - _arguments \ - -F'[Fetch from origin before performing finish]'\ - ':bugfix:__git_flow_bugfix_list'\ - ':branch-name:__git_branch_names' - ;; - - (finish) - _arguments \ - -F'[Fetch from origin before performing finish]' \ - -r'[Rebase instead of merge]'\ - ':bugfix:__git_flow_bugfix_list' - ;; - - (delete) - _arguments \ - -f'[Force deletion]' \ - -r'[Delete remote branch]' \ - ':bugfix:__git_flow_bugfix_list' - ;; - - (publish) - _arguments \ - ':bugfix:__git_flow_bugfix_list'\ - ;; - - (track) - _arguments \ - ':bugfix:__git_flow_bugfix_list'\ - ;; - - (diff) - _arguments \ - ':branch:__git_branch_names'\ - ;; - - (rebase) - _arguments \ - -i'[Do an interactive rebase]' \ - ':branch:__git_branch_names' - ;; - - (checkout) - _arguments \ - ':branch:__git_flow_bugfix_list'\ - ;; - - (pull) - _arguments \ - ':remote:__git_remotes'\ - ':branch:__git_branch_names' - ;; - - *) - _arguments \ - -v'[Verbose (more) output]' - ;; - esac - ;; - esac -} - -__git-flow-config () -{ - local curcontext="$curcontext" state line - typeset -A opt_args - - _arguments -C \ - ':command:->command' \ - '*::options:->options' - - case $state in - (command) - - local -a subcommands - subcommands=( - 'list:List the configuration. (Alias to `git flow config`)' - 'set:Set the configuration option' - ) - _describe -t commands 'git flow config' subcommands - ;; - - (options) - case $line[1] in - - (set) - _arguments \ - --local'[Use repository config file]' \ - --global'[Use global config file]'\ - --system'[Use system config file]'\ - --file'[Use given config file]'\ - ':option:(master develop feature hotfix release support versiontagprefix)' - ;; - - *) - _arguments \ - --local'[Use repository config file]' \ - --global'[Use global config file]'\ - --system'[Use system config file]'\ - --file'[Use given config file]' - ;; - esac - ;; - esac -} -__git_flow_version_list () -{ - local expl - declare -a versions - - versions=(${${(f)"$(_call_program versions git flow release list 2> /dev/null | tr -d ' |*')"}}) - __git_command_successful || return - - _wanted versions expl 'version' compadd $versions -} - -__git_flow_feature_list () -{ - local expl - declare -a features - - features=(${${(f)"$(_call_program features git flow feature list 2> /dev/null | tr -d ' |*')"}}) - __git_command_successful || return - - _wanted features expl 'feature' compadd $features -} - -__git_flow_bugfix_list () -{ - local expl - declare -a bugfixes - - bugfixes=(${${(f)"$(_call_program bugfixes git flow bugfix list 2> /dev/null | tr -d ' |*')"}}) - __git_command_successful || return - - _wanted bugfixes expl 'bugfix' compadd $bugfixes -} - -__git_remotes () { - local expl gitdir remotes - - gitdir=$(_call_program gitdir git rev-parse --git-dir 2>/dev/null) - __git_command_successful || return - - remotes=(${${(f)"$(_call_program remotes git config --get-regexp '"^remote\..*\.url$"')"}//#(#b)remote.(*).url */$match[1]}) - __git_command_successful || return - - # TODO: Should combine the two instead of either or. - if (( $#remotes > 0 )); then - _wanted remotes expl remote compadd $* - $remotes - else - _wanted remotes expl remote _files $* - -W "($gitdir/remotes)" -g "$gitdir/remotes/*" - fi -} - -__git_flow_hotfix_list () -{ - local expl - declare -a hotfixes - - hotfixes=(${${(f)"$(_call_program hotfixes git flow hotfix list 2> /dev/null | tr -d ' |*')"}}) - __git_command_successful || return - - _wanted hotfixes expl 'hotfix' compadd $hotfixes -} - -__git_branch_names () { - local expl - declare -a branch_names - - branch_names=(${${(f)"$(_call_program branchrefs git for-each-ref --format='"%(refname)"' refs/heads 2>/dev/null)"}#refs/heads/}) - __git_command_successful || return - - _wanted branch-names expl branch-name compadd $* - $branch_names -} - -__git_command_successful () { - if (( ${#pipestatus:#0} > 0 )); then - _message 'not a git repository' - return 1 - fi - return 0 -} - -zstyle ':completion:*:*:git:*' user-commands flow:'provide high-level repository operations' diff --git a/zsh/.oh-my-zsh/plugins/git-flow/README.md b/zsh/.oh-my-zsh/plugins/git-flow/README.md deleted file mode 100644 index 9c25dec..0000000 --- a/zsh/.oh-my-zsh/plugins/git-flow/README.md +++ /dev/null @@ -1,31 +0,0 @@ -# Git-Flow plugin - -This plugin adds completion and aliases for the [`git-flow` command](https://github.com/nvie/gitflow). - -To use it, add `git-flow` to the plugins array in your zshrc file: - -```zsh -plugins=(... git-flow) -``` - -## Aliases - -| Alias | Command | Description | -|---------|----------------------------|----------------------------------------| -| `gfl` | `git flow` | Git-Flow command | -| `gfli` | `git flow init` | Initialize git-flow repository | -| `gcd` | `git checkout develop` | Check out develop branch | -| `gch` | `git checkout hotfix` | Check out hotfix branch | -| `gcr` | `git checkout release` | Check out release branch | -| `gflf` | `git flow feature` | List existing feature branches | -| `gflh` | `git flow hotfix` | List existing hotfix branches | -| `gflr` | `git flow release` | List existing release branches | -| `gflfs` | `git flow feature start` | Start a new feature: `gflfs ` | -| `gflhs` | `git flow hotfix start` | Start a new hotfix: `gflhs ` | -| `gflrs` | `git flow release start` | Start a new release: `gflrs ` | -| `gflff` | `git flow feature finish` | Finish feature: `gflff ` | -| `gflfp` | `git flow feature publish` | Publish feature: `gflfp ` | -| `gflhf` | `git flow hotfix finish` | Finish hotfix: `gflhf ` | -| `gflrf` | `git flow release finish` | Finish release: `gflrf ` | - -[More information about `git-flow` commands](https://github.com/nvie/gitflow/wiki/Command-Line-Arguments). diff --git a/zsh/.oh-my-zsh/plugins/git-flow/git-flow.plugin.zsh b/zsh/.oh-my-zsh/plugins/git-flow/git-flow.plugin.zsh deleted file mode 100644 index 8f0714b..0000000 --- a/zsh/.oh-my-zsh/plugins/git-flow/git-flow.plugin.zsh +++ /dev/null @@ -1,369 +0,0 @@ -#!zsh -# -# Installation -# ------------ -# -# To achieve git-flow completion nirvana: -# -# 0. Update your zsh's git-completion module to the newest version. -# From here. https://raw.githubusercontent.com/zsh-users/zsh/master/Completion/Unix/Command/_git -# -# 1. Install this file. Either: -# -# a. Place it in your .zshrc: -# -# b. Or, copy it somewhere (e.g. ~/.git-flow-completion.zsh) and put the following line in -# your .zshrc: -# -# source ~/.git-flow-completion.zsh -# -# c. Or, use this file as an oh-my-zsh plugin. -# - -#Alias -alias gfl='git flow' -alias gfli='git flow init' -alias gcd='git checkout $(git config gitflow.branch.develop)' -alias gch='git checkout $(git config gitflow.prefix.hotfix)' -alias gcr='git checkout $(git config gitflow.prefix.release)' -alias gflf='git flow feature' -alias gflh='git flow hotfix' -alias gflr='git flow release' -alias gflfs='git flow feature start' -alias gflhs='git flow hotfix start' -alias gflrs='git flow release start' -alias gflff='git flow feature finish' -alias gflfp='git flow feature publish' -alias gflhf='git flow hotfix finish' -alias gflrf='git flow release finish' -alias gflhp='git flow hotfix publish' -alias gflrp='git flow release publish' -alias gflfpll='git flow feature pull' - -_git-flow () -{ - local curcontext="$curcontext" state line - typeset -A opt_args - - _arguments -C \ - ':command:->command' \ - '*::options:->options' - - case $state in - (command) - - local -a subcommands - subcommands=( - 'init:Initialize a new git repo with support for the branching model.' - 'feature:Manage your feature branches.' - 'release:Manage your release branches.' - 'hotfix:Manage your hotfix branches.' - 'support:Manage your support branches.' - 'version:Shows version information.' - ) - _describe -t commands 'git flow' subcommands - ;; - - (options) - case $line[1] in - - (init) - _arguments \ - -f'[Force setting of gitflow branches, even if already configured]' - ;; - - (version) - ;; - - (hotfix) - __git-flow-hotfix - ;; - - (release) - __git-flow-release - ;; - - (feature) - __git-flow-feature - ;; - esac - ;; - esac -} - -__git-flow-release () -{ - local curcontext="$curcontext" state line - typeset -A opt_args - - _arguments -C \ - ':command:->command' \ - '*::options:->options' - - case $state in - (command) - - local -a subcommands - subcommands=( - 'start:Start a new release branch.' - 'finish:Finish a release branch.' - 'list:List all your release branches. (Alias to `git flow release`)' - 'publish: public' - 'track: track' - ) - _describe -t commands 'git flow release' subcommands - _arguments \ - -v'[Verbose (more) output]' - ;; - - (options) - case $line[1] in - - (start) - _arguments \ - -F'[Fetch from origin before performing finish]'\ - ':version:__git_flow_version_list' - ;; - - (finish) - _arguments \ - -F'[Fetch from origin before performing finish]' \ - -s'[Sign the release tag cryptographically]'\ - -u'[Use the given GPG-key for the digital signature (implies -s)]'\ - -m'[Use the given tag message]'\ - -p'[Push to $ORIGIN after performing finish]'\ - -k'[Keep branch after performing finish]'\ - -n"[Don't tag this release]"\ - ':version:__git_flow_version_list' - ;; - - (publish) - _arguments \ - ':version:__git_flow_version_list'\ - ;; - - (track) - _arguments \ - ':version:__git_flow_version_list'\ - ;; - - *) - _arguments \ - -v'[Verbose (more) output]' - ;; - esac - ;; - esac -} - -__git-flow-hotfix () -{ - local curcontext="$curcontext" state line - typeset -A opt_args - - _arguments -C \ - ':command:->command' \ - '*::options:->options' - - case $state in - (command) - - local -a subcommands - subcommands=( - 'start:Start a new hotfix branch.' - 'finish:Finish a hotfix branch.' - 'list:List all your hotfix branches. (Alias to `git flow hotfix`)' - ) - _describe -t commands 'git flow hotfix' subcommands - _arguments \ - -v'[Verbose (more) output]' - ;; - - (options) - case $line[1] in - - (start) - _arguments \ - -F'[Fetch from origin before performing finish]'\ - ':hotfix:__git_flow_version_list'\ - ':branch-name:__git_branch_names' - ;; - - (finish) - _arguments \ - -F'[Fetch from origin before performing finish]' \ - -s'[Sign the release tag cryptographically]'\ - -u'[Use the given GPG-key for the digital signature (implies -s)]'\ - -m'[Use the given tag message]'\ - -p'[Push to $ORIGIN after performing finish]'\ - -k'[Keep branch after performing finish]'\ - -n"[Don't tag this release]"\ - ':hotfix:__git_flow_hotfix_list' - ;; - - *) - _arguments \ - -v'[Verbose (more) output]' - ;; - esac - ;; - esac -} - -__git-flow-feature () -{ - local curcontext="$curcontext" state line - typeset -A opt_args - - _arguments -C \ - ':command:->command' \ - '*::options:->options' - - case $state in - (command) - - local -a subcommands - subcommands=( - 'start:Start a new feature branch.' - 'finish:Finish a feature branch.' - 'list:List all your feature branches. (Alias to `git flow feature`)' - 'publish: publish' - 'track: track' - 'diff: diff' - 'rebase: rebase' - 'checkout: checkout' - 'pull: pull' - ) - _describe -t commands 'git flow feature' subcommands - _arguments \ - -v'[Verbose (more) output]' - ;; - - (options) - case $line[1] in - - (start) - _arguments \ - -F'[Fetch from origin before performing finish]'\ - ':feature:__git_flow_feature_list'\ - ':branch-name:__git_branch_names' - ;; - - (finish) - _arguments \ - -F'[Fetch from origin before performing finish]' \ - -r'[Rebase instead of merge]'\ - -k'[Keep branch after performing finish]'\ - ':feature:__git_flow_feature_list' - ;; - - (publish) - _arguments \ - ':feature:__git_flow_feature_list'\ - ;; - - (track) - _arguments \ - ':feature:__git_flow_feature_list'\ - ;; - - (diff) - _arguments \ - ':branch:__git_flow_feature_list'\ - ;; - - (rebase) - _arguments \ - -i'[Do an interactive rebase]' \ - ':branch:__git_flow_feature_list' - ;; - - (checkout) - _arguments \ - ':branch:__git_flow_feature_list'\ - ;; - - (pull) - _arguments \ - ':remote:__git_remotes'\ - ':branch:__git_flow_feature_list' - ;; - - *) - _arguments \ - -v'[Verbose (more) output]' - ;; - esac - ;; - esac -} - -__git_flow_version_list () -{ - local expl - declare -a versions - - versions=(${${(f)"$(_call_program versions git flow release list 2> /dev/null | tr -d ' |*')"}}) - __git_command_successful || return - - _wanted versions expl 'version' compadd $versions -} - -__git_flow_feature_list () -{ - local expl - declare -a features - - features=(${${(f)"$(_call_program features git flow feature list 2> /dev/null | tr -d ' |*')"}}) - __git_command_successful || return - - _wanted features expl 'feature' compadd $features -} - -__git_remotes () { - local expl gitdir remotes - - gitdir=$(_call_program gitdir git rev-parse --git-dir 2>/dev/null) - __git_command_successful || return - - remotes=(${${(f)"$(_call_program remotes git config --get-regexp '"^remote\..*\.url$"')"}//#(#b)remote.(*).url */$match[1]}) - __git_command_successful || return - - # TODO: Should combine the two instead of either or. - if (( $#remotes > 0 )); then - _wanted remotes expl remote compadd $* - $remotes - else - _wanted remotes expl remote _files $* - -W "($gitdir/remotes)" -g "$gitdir/remotes/*" - fi -} - -__git_flow_hotfix_list () -{ - local expl - declare -a hotfixes - - hotfixes=(${${(f)"$(_call_program hotfixes git flow hotfix list 2> /dev/null | tr -d ' |*')"}}) - __git_command_successful || return - - _wanted hotfixes expl 'hotfix' compadd $hotfixes -} - -__git_branch_names () { - local expl - declare -a branch_names - - branch_names=(${${(f)"$(_call_program branchrefs git for-each-ref --format='"%(refname)"' refs/heads 2>/dev/null)"}#refs/heads/}) - __git_command_successful || return - - _wanted branch-names expl branch-name compadd $* - $branch_names -} - -__git_command_successful () { - if (( ${#pipestatus:#0} > 0 )); then - _message 'not a git repository' - return 1 - fi - return 0 -} - -zstyle ':completion:*:*:git:*' user-commands flow:'description for foo' diff --git a/zsh/.oh-my-zsh/plugins/git-hubflow/README.md b/zsh/.oh-my-zsh/plugins/git-hubflow/README.md deleted file mode 100644 index dada60d..0000000 --- a/zsh/.oh-my-zsh/plugins/git-hubflow/README.md +++ /dev/null @@ -1,24 +0,0 @@ -# git-hubflow plugin - -This plugin adds completion for [HubFlow](https://datasift.github.io/gitflow/) (GitFlow for GitHub), as well as some -aliases for common commands. HubFlow is a git extension to make it easy to use GitFlow with GitHub. Based on the -original gitflow extension for git. - -The hubflow tool has to be [installed](https://github.com/datasift/gitflow#installation) separately. - -To use it, add `git-hubflow` to the plugins array in your zshrc file: - -```zsh -plugins=(... git-hubflow) -``` - -## Aliases - -| Alias | Command | Description | -|-------|------------------|------------------------------------------------------------------| -| ghf | `git hf` | Print command overview | -| ghff | `git hf feature` | Manage your feature branches | -| ghfr | `git hf release` | Manage your release branches | -| ghfh | `git hf hotfix` | Manage your hotfix branches | -| ghfs | `git hf support` | Manage your support branches | -| ghfu | `git hf update` | Pull upstream changes down into your master and develop branches | diff --git a/zsh/.oh-my-zsh/plugins/git-hubflow/git-hubflow.plugin.zsh b/zsh/.oh-my-zsh/plugins/git-hubflow/git-hubflow.plugin.zsh deleted file mode 100644 index 50d7b23..0000000 --- a/zsh/.oh-my-zsh/plugins/git-hubflow/git-hubflow.plugin.zsh +++ /dev/null @@ -1,333 +0,0 @@ -alias ghf='git hf' -alias ghff='git hf feature' -alias ghfr='git hf release' -alias ghfh='git hf hotfix' -alias ghfs='git hf support' -alias ghfu='git hf update' - -_git-hf () -{ - local curcontext="$curcontext" state line - typeset -A opt_args - - _arguments -C \ - ':command:->command' \ - '*::options:->options' - - case $state in - (command) - - local -a subcommands - subcommands=( - 'init:Initialize a new git repo with support for the branching model.' - 'feature:Manage your feature branches.' - 'release:Manage your release branches.' - 'hotfix:Manage your hotfix branches.' - 'support:Manage your support branches.' - 'update:Pull upstream changes down into your master and develop branches.' - 'version:Shows version information.' - ) - _describe -t commands 'git hf' subcommands - ;; - - (options) - case $line[1] in - - (init) - _arguments \ - -f'[Force setting of gitflow branches, even if already configured]' - ;; - - (version) - ;; - - (hotfix) - __git-hf-hotfix - ;; - - (release) - __git-hf-release - ;; - - (feature) - __git-hf-feature - ;; - esac - ;; - esac -} - -__git-hf-release () -{ - local curcontext="$curcontext" state line - typeset -A opt_args - - _arguments -C \ - ':command:->command' \ - '*::options:->options' - - case $state in - (command) - - local -a subcommands - subcommands=( - 'start:Start a new release branch.' - 'finish:Finish a release branch.' - 'list:List all your release branches. (Alias to `git hf release`)' - 'cancel:Cancel release' - 'push:Push release to GitHub' - 'pull:Pull release from GitHub' - 'track:Track release' - ) - _describe -t commands 'git hf release' subcommands - _arguments \ - -v'[Verbose (more) output]' - ;; - - (options) - case $line[1] in - - (start) - _arguments \ - -F'[Fetch from origin before performing finish]'\ - ':version:__git_hf_version_list' - ;; - - (finish) - _arguments \ - -F'[Fetch from origin before performing finish]' \ - -s'[Sign the release tag cryptographically]'\ - -u'[Use the given GPG-key for the digital signature (implies -s)]'\ - -m'[Use the given tag message]'\ - -p'[Push to $ORIGIN after performing finish]'\ - -k'[Keep branch after performing finish]'\ - -n"[Don't tag this release]"\ - ':version:__git_hf_version_list' - ;; - - *) - _arguments \ - -v'[Verbose (more) output]' - ;; - esac - ;; - esac -} - -__git-hf-hotfix () -{ - local curcontext="$curcontext" state line - typeset -A opt_args - - _arguments -C \ - ':command:->command' \ - '*::options:->options' - - case $state in - (command) - - local -a subcommands - subcommands=( - 'start:Start a new hotfix branch.' - 'finish:Finish a hotfix branch.' - 'list:List all your hotfix branches. (Alias to `git hf hotfix`)' - 'publish:Publish the hotfix branch.' - 'track:Track the hotfix branch.' - 'pull:Pull the hotfix from GitHub.' - 'push:Push the hotfix to GitHub.' - 'cancel:Cancel the hotfix.' - ) - _describe -t commands 'git hf hotfix' subcommands - _arguments \ - -v'[Verbose (more) output]' - ;; - - (options) - case $line[1] in - - (start) - _arguments \ - -F'[Fetch from origin before performing finish]'\ - ':hotfix:__git_hf_version_list'\ - ':branch-name:__git_branch_names' - ;; - - (finish) - _arguments \ - -F'[Fetch from origin before performing finish]' \ - -s'[Sign the release tag cryptographically]'\ - -u'[Use the given GPG-key for the digital signature (implies -s)]'\ - -m'[Use the given tag message]'\ - -p'[Push to $ORIGIN after performing finish]'\ - -k'[Keep branch after performing finish]'\ - -n"[Don't tag this release]"\ - ':hotfix:__git_hf_hotfix_list' - ;; - - *) - _arguments \ - -v'[Verbose (more) output]' - ;; - esac - ;; - esac -} - -__git-hf-feature () -{ - local curcontext="$curcontext" state line - typeset -A opt_args - - _arguments -C \ - ':command:->command' \ - '*::options:->options' - - case $state in - (command) - - local -a subcommands - subcommands=( - 'list:List all your feature branches. (Alias to `git hf feature`)' - 'start:Start a new feature branch' - 'finish:Finish a feature branch' - 'submit:submit' - 'track:track' - 'diff:Diff' - 'rebase:Rebase feature branch against develop' - 'checkout:Checkout feature' - 'pull:Pull feature branch from GitHub' - 'push:Push feature branch to GitHub' - 'cancel:Cancel feature' - ) - _describe -t commands 'git hf feature' subcommands - _arguments \ - -v'[Verbose (more) output]' - ;; - - (options) - case $line[1] in - - (start) - _arguments \ - -F'[Fetch from origin before performing finish]'\ - ':feature:__git_hf_feature_list'\ - ':branch-name:__git_branch_names' - ;; - - (finish) - _arguments \ - -F'[Fetch from origin before performing finish]' \ - -r'[Rebase instead of merge]'\ - ':feature:__git_hf_feature_list' - ;; - - (publish) - _arguments \ - ':feature:__git_hf_feature_list'\ - ;; - - (track) - _arguments \ - ':feature:__git_hf_feature_list'\ - ;; - - (diff) - _arguments \ - ':branch:__git_branch_names'\ - ;; - - (rebase) - _arguments \ - -i'[Do an interactive rebase]' \ - ':branch:__git_branch_names' - ;; - - (checkout) - _arguments \ - ':branch:__git_hf_feature_list'\ - ;; - - (pull) - _arguments \ - ':remote:__git_remotes'\ - ':branch:__git_branch_names' - ;; - - *) - _arguments \ - -v'[Verbose (more) output]' - ;; - esac - ;; - esac -} - -__git_hf_version_list () -{ - local expl - declare -a versions - - versions=(${${(f)"$(_call_program versions git hf release list 2> /dev/null | tr -d ' |*')"}}) - __git_command_successful || return - - _wanted versions expl 'version' compadd $versions -} - -__git_hf_feature_list () -{ - local expl - declare -a features - - features=(${${(f)"$(_call_program features git hf feature list 2> /dev/null | tr -d ' |*')"}}) - __git_command_successful || return - - _wanted features expl 'feature' compadd $features -} - -__git_remotes () { - local expl gitdir remotes - - gitdir=$(_call_program gitdir git rev-parse --git-dir 2>/dev/null) - __git_command_successful || return - - remotes=(${${(f)"$(_call_program remotes git config --get-regexp '"^remote\..*\.url$"')"}//#(#b)remote.(*).url */$match[1]}) - __git_command_successful || return - - # TODO: Should combine the two instead of either or. - if (( $#remotes > 0 )); then - _wanted remotes expl remote compadd $* - $remotes - else - _wanted remotes expl remote _files $* - -W "($gitdir/remotes)" -g "$gitdir/remotes/*" - fi -} - -__git_hf_hotfix_list () -{ - local expl - declare -a hotfixes - - hotfixes=(${${(f)"$(_call_program hotfixes git hf hotfix list 2> /dev/null | tr -d ' |*')"}}) - __git_command_successful || return - - _wanted hotfixes expl 'hotfix' compadd $hotfixes -} - -__git_branch_names () { - local expl - declare -a branch_names - - branch_names=(${${(f)"$(_call_program branchrefs git for-each-ref --format='"%(refname)"' refs/heads 2>/dev/null)"}#refs/heads/}) - __git_command_successful || return - - _wanted branch-names expl branch-name compadd $* - $branch_names -} - -__git_command_successful () { - if (( ${#pipestatus:#0} > 0 )); then - _message 'not a git repository' - return 1 - fi - return 0 -} - -zstyle ':completion:*:*:git:*' user-commands flow:'description for foo' diff --git a/zsh/.oh-my-zsh/plugins/git-lfs/README.md b/zsh/.oh-my-zsh/plugins/git-lfs/README.md deleted file mode 100644 index 1222b27..0000000 --- a/zsh/.oh-my-zsh/plugins/git-lfs/README.md +++ /dev/null @@ -1,24 +0,0 @@ -# git lfs plugin - -The git lfs plugin provides [aliases](#aliases) and [functions](#functions) for [git-lfs](https://github.com/git-lfs/git-lfs). - -To use it, add `git-lfs` to the plugins array in your zshrc file: - -```zsh -plugins=(... git-lfs) -``` - -## Aliases - -| Alias | Command | -| :------- | :---------------------------------- | -| `glfsi` | `git lfs install` | -| `glfst` | `git lfs track` | -| `glfsls` | `git lfs ls-files` | -| `glfsmi` | `git lfs migrate import --include=` | - -## Functions - -| Function | Command | -| :------- | :---------------------------------------------- | -| `gplfs` | `git lfs push origin "$(current_branch)" --all` | diff --git a/zsh/.oh-my-zsh/plugins/git-lfs/git-lfs.plugin.zsh b/zsh/.oh-my-zsh/plugins/git-lfs/git-lfs.plugin.zsh deleted file mode 100644 index e7bb676..0000000 --- a/zsh/.oh-my-zsh/plugins/git-lfs/git-lfs.plugin.zsh +++ /dev/null @@ -1,17 +0,0 @@ -# -# Aliases -# - -alias glfsi='git lfs install' -alias glfst='git lfs track' -alias glfsls='git lfs ls-files' -alias glfsmi='git lfs migrate import --include=' - -# -# Functions -# - -function gplfs() { - local b="$(git_current_branch)" - git lfs push origin "$b" --all -} diff --git a/zsh/.oh-my-zsh/plugins/git-prompt/README.md b/zsh/.oh-my-zsh/plugins/git-prompt/README.md deleted file mode 100644 index c6610fa..0000000 --- a/zsh/.oh-my-zsh/plugins/git-prompt/README.md +++ /dev/null @@ -1,66 +0,0 @@ -# git-prompt plugin - -A `zsh` prompt that displays information about the current git repository. In particular: -the branch name, difference with remote branch, number of files staged or changed, etc. - -To use it, add `git-prompt` to the plugins array in your zshrc file: - -```zsh -plugins=(... git-prompt) -``` - -See the [original repository](https://github.com/olivierverdier/zsh-git-prompt). - -## Prerequisites -This plugin uses `python`, so your host needs to have it installed - -## Examples - -The prompt may look like the following: - -- `(master↑3|✚1)`: on branch `master`, ahead of remote by 3 commits, 1 file changed but not staged -- `(status|â—2)`: on branch `status`, 2 files staged -- `(master|✚7…)`: on branch `master`, 7 files changed, some files untracked -- `(master|✖2✚3)`: on branch `master`, 2 conflicts, 3 files changed -- `(experimental↓2↑3|✔)`: on branch `experimental`; your branch has diverged by 3 commits, remote by 2 commits; the repository is otherwise clean -- `(:70c2952|✔)`: not on any branch; parent commit has hash `70c2952`; the repository is otherwise clean -- `(master|âš‘2)`: on branch `master`, there are 2 stashed changes - -## Prompt Structure - -By default, the general appearance of the prompt is: - -``` -(|) -``` - -The symbols are as follows: - -### Local Status Symbols - -| Symbol | Meaning | -|--------|--------------------------------| -| ✔ | repository clean | -| â—n | there are `n` staged files | -| ✖n | there are `n` unmerged files | -| ✚n | there are `n` unstaged files | -| âš‘n | there are `n` stashed changes | -| … | there are some untracked files | - -### Branch Tracking Symbols - -| Symbol | Meaning | -|--------|---------------------------------------------------------------| -| ↑n | ahead of remote by `n` commits | -| ↓n | behind remote by `n` commits | -| ↓m↑n | branches diverged: other by `m` commits, yours by `n` commits | - -## Customisation - -- Set the variable `ZSH_THEME_GIT_PROMPT_CACHE` to any value in order to enable caching. -- You may also change a number of variables (whose name start with `ZSH_THEME_GIT_PROMPT_`) - to change the appearance of the prompt. Take a look at the bottom of the [plugin file](git-prompt.plugin.zsh)` - to see what variables are available. - - -**Enjoy!** diff --git a/zsh/.oh-my-zsh/plugins/git-prompt/git-prompt.plugin.zsh b/zsh/.oh-my-zsh/plugins/git-prompt/git-prompt.plugin.zsh deleted file mode 100644 index a4c9524..0000000 --- a/zsh/.oh-my-zsh/plugins/git-prompt/git-prompt.plugin.zsh +++ /dev/null @@ -1,96 +0,0 @@ -__GIT_PROMPT_DIR="${0:A:h}" - -## Hook function definitions -function chpwd_update_git_vars() { - update_current_git_vars -} - -function preexec_update_git_vars() { - case "$2" in - git*|hub*|gh*|stg*) - __EXECUTED_GIT_COMMAND=1 - ;; - esac -} - -function precmd_update_git_vars() { - if [ -n "$__EXECUTED_GIT_COMMAND" ] || [ ! -n "$ZSH_THEME_GIT_PROMPT_CACHE" ]; then - update_current_git_vars - unset __EXECUTED_GIT_COMMAND - fi -} - -autoload -U add-zsh-hook -add-zsh-hook chpwd chpwd_update_git_vars -add-zsh-hook precmd precmd_update_git_vars -add-zsh-hook preexec preexec_update_git_vars - - -## Function definitions -function update_current_git_vars() { - unset __CURRENT_GIT_STATUS - - local gitstatus="$__GIT_PROMPT_DIR/gitstatus.py" - _GIT_STATUS=$(python ${gitstatus} 2>/dev/null) - __CURRENT_GIT_STATUS=("${(@s: :)_GIT_STATUS}") - GIT_BRANCH=$__CURRENT_GIT_STATUS[1] - GIT_AHEAD=$__CURRENT_GIT_STATUS[2] - GIT_BEHIND=$__CURRENT_GIT_STATUS[3] - GIT_STAGED=$__CURRENT_GIT_STATUS[4] - GIT_CONFLICTS=$__CURRENT_GIT_STATUS[5] - GIT_CHANGED=$__CURRENT_GIT_STATUS[6] - GIT_UNTRACKED=$__CURRENT_GIT_STATUS[7] - GIT_STASHED=$__CURRENT_GIT_STATUS[8] - GIT_CLEAN=$__CURRENT_GIT_STATUS[9] -} - -git_super_status() { - precmd_update_git_vars - if [ -n "$__CURRENT_GIT_STATUS" ]; then - STATUS="$ZSH_THEME_GIT_PROMPT_PREFIX$ZSH_THEME_GIT_PROMPT_BRANCH$GIT_BRANCH%{${reset_color}%}" - if [ "$GIT_BEHIND" -ne "0" ]; then - STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_BEHIND$GIT_BEHIND%{${reset_color}%}" - fi - if [ "$GIT_AHEAD" -ne "0" ]; then - STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_AHEAD$GIT_AHEAD%{${reset_color}%}" - fi - STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_SEPARATOR" - if [ "$GIT_STAGED" -ne "0" ]; then - STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_STAGED$GIT_STAGED%{${reset_color}%}" - fi - if [ "$GIT_CONFLICTS" -ne "0" ]; then - STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_CONFLICTS$GIT_CONFLICTS%{${reset_color}%}" - fi - if [ "$GIT_CHANGED" -ne "0" ]; then - STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_CHANGED$GIT_CHANGED%{${reset_color}%}" - fi - if [ "$GIT_UNTRACKED" -ne "0" ]; then - STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_UNTRACKED$GIT_UNTRACKED%{${reset_color}%}" - fi - if [ "$GIT_STASHED" -ne "0" ]; then - STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_STASHED$GIT_STASHED%{${reset_color}%}" - fi - if [ "$GIT_CLEAN" -eq "1" ]; then - STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_CLEAN" - fi - STATUS="$STATUS%{${reset_color}%}$ZSH_THEME_GIT_PROMPT_SUFFIX" - echo "$STATUS" - fi -} - -# Default values for the appearance of the prompt. -ZSH_THEME_GIT_PROMPT_PREFIX="(" -ZSH_THEME_GIT_PROMPT_SUFFIX=")" -ZSH_THEME_GIT_PROMPT_SEPARATOR="|" -ZSH_THEME_GIT_PROMPT_BRANCH="%{$fg_bold[magenta]%}" -ZSH_THEME_GIT_PROMPT_STAGED="%{$fg[red]%}%{â—%G%}" -ZSH_THEME_GIT_PROMPT_CONFLICTS="%{$fg[red]%}%{✖%G%}" -ZSH_THEME_GIT_PROMPT_CHANGED="%{$fg[blue]%}%{✚%G%}" -ZSH_THEME_GIT_PROMPT_BEHIND="%{↓%G%}" -ZSH_THEME_GIT_PROMPT_AHEAD="%{↑%G%}" -ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[cyan]%}%{…%G%}" -ZSH_THEME_GIT_PROMPT_STASHED="%{$fg_bold[blue]%}%{âš‘%G%}" -ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg_bold[green]%}%{✔%G%}" - -# Set the prompt. -RPROMPT='$(git_super_status)' diff --git a/zsh/.oh-my-zsh/plugins/git-prompt/gitstatus.py b/zsh/.oh-my-zsh/plugins/git-prompt/gitstatus.py deleted file mode 100644 index 786274a..0000000 --- a/zsh/.oh-my-zsh/plugins/git-prompt/gitstatus.py +++ /dev/null @@ -1,100 +0,0 @@ -#!/usr/bin/env python -from __future__ import print_function - -import os -import sys -import re -from subprocess import Popen, PIPE, check_output - - -def get_tagname_or_hash(): - """return tagname if exists else hash""" - # get hash - hash_cmd = ['git', 'rev-parse', '--short', 'HEAD'] - hash_ = check_output(hash_cmd).decode('utf-8').strip() - - # get tagname - tags_cmd = ['git', 'for-each-ref', '--points-at=HEAD', '--count=2', '--sort=-version:refname', '--format=%(refname:short)', 'refs/tags'] - tags = check_output(tags_cmd).decode('utf-8').split() - - if tags: - return tags[0] + ('+' if len(tags) > 1 else '') - elif hash_: - return hash_ - return None - -# Re-use method from https://github.com/magicmonty/bash-git-prompt to get stashs count -def get_stash(): - cmd = Popen(['git', 'rev-parse', '--git-dir'], stdout=PIPE, stderr=PIPE) - so, se = cmd.communicate() - stash_file = '%s%s' % (so.decode('utf-8').rstrip(), '/logs/refs/stash') - - try: - with open(stash_file) as f: - return sum(1 for _ in f) - except IOError: - return 0 - - -# `git status --porcelain --branch` can collect all information -# branch, remote_branch, untracked, staged, changed, conflicts, ahead, behind -po = Popen(['git', 'status', '--porcelain', '--branch'], env=dict(os.environ, LANG="C"), stdout=PIPE, stderr=PIPE) -stdout, sterr = po.communicate() -if po.returncode != 0: - sys.exit(0) # Not a git repository - -# collect git status information -untracked, staged, changed, conflicts = [], [], [], [] -ahead, behind = 0, 0 -status = [(line[0], line[1], line[2:]) for line in stdout.decode('utf-8').splitlines()] -for st in status: - if st[0] == '#' and st[1] == '#': - if re.search('Initial commit on', st[2]) or re.search('No commits yet on', st[2]): - branch = st[2].split(' ')[-1] - elif re.search('no branch', st[2]): # detached status - branch = get_tagname_or_hash() - elif len(st[2].strip().split('...')) == 1: - branch = st[2].strip() - else: - # current and remote branch info - branch, rest = st[2].strip().split('...') - if len(rest.split(' ')) == 1: - # remote_branch = rest.split(' ')[0] - pass - else: - # ahead or behind - divergence = ' '.join(rest.split(' ')[1:]) - divergence = divergence.lstrip('[').rstrip(']') - for div in divergence.split(', '): - if 'ahead' in div: - ahead = int(div[len('ahead '):].strip()) - elif 'behind' in div: - behind = int(div[len('behind '):].strip()) - elif st[0] == '?' and st[1] == '?': - untracked.append(st) - else: - if st[1] == 'M': - changed.append(st) - if st[0] == 'U': - conflicts.append(st) - elif st[0] != ' ': - staged.append(st) - -stashed = get_stash() -if not changed and not staged and not conflicts and not untracked and not stashed: - clean = 1 -else: - clean = 0 - -out = ' '.join([ - branch, - str(ahead), - str(behind), - str(len(staged)), - str(len(conflicts)), - str(len(changed)), - str(len(untracked)), - str(stashed), - str(clean) -]) -print(out, end='') diff --git a/zsh/.oh-my-zsh/plugins/git/README.md b/zsh/.oh-my-zsh/plugins/git/README.md deleted file mode 100644 index 1130808..0000000 --- a/zsh/.oh-my-zsh/plugins/git/README.md +++ /dev/null @@ -1,244 +0,0 @@ -# git plugin - -The git plugin provides many [aliases](#aliases) and a few useful [functions](#functions). - -To use it, add `git` to the plugins array in your zshrc file: - -```zsh -plugins=(... git) -``` - -## Aliases - -| Alias | Command | -|:---------------------|:---------------------------------------------------------------------------------------------------------------------------------| -| g | git | -| ga | git add | -| gaa | git add --all | -| gapa | git add --patch | -| gau | git add --update | -| gav | git add --verbose | -| gap | git apply | -| gapt | git apply --3way | -| gb | git branch | -| gba | git branch -a | -| gbd | git branch -d | -| gbda | git branch --no-color --merged \| grep -vE "^([+*]\|\s*($(git_main_branch)\|$(git_develop_branch))\s*$)" \| xargs git branch -d 2>/dev/null | -| gbD | git branch -D | -| gbl | git blame -b -w | -| gbnm | git branch --no-merged | -| gbr | git branch --remote | -| gbs | git bisect | -| gbsb | git bisect bad | -| gbsg | git bisect good | -| gbsr | git bisect reset | -| gbss | git bisect start | -| gc | git commit -v | -| gc! | git commit -v --amend | -| gcn! | git commit -v --no-edit --amend | -| gca | git commit -v -a | -| gca! | git commit -v -a --amend | -| gcan! | git commit -v -a --no-edit --amend | -| gcans! | git commit -v -a -s --no-edit --amend | -| gcam | git commit -a -m | -| gcas | git commit -a -s | -| gcasm | git commit -a -s -m | -| gcsm | git commit -s -m | -| gcb | git checkout -b | -| gcf | git config --list | -| gcl | git clone --recurse-submodules | -| gccd | git clone --recurse-submodules "$@" && cd "$(basename $_ .git)" | -| gclean | git clean -id | -| gpristine | git reset --hard && git clean -dffx | -| gcm | git checkout $(git_main_branch) | -| gcd | git checkout $(git_develop_branch) | -| gcmsg | git commit -m | -| gco | git checkout | -| gcor | git checkout --recurse-submodules | -| gcount | git shortlog -sn | -| gcp | git cherry-pick | -| gcpa | git cherry-pick --abort | -| gcpc | git cherry-pick --continue | -| gcs | git commit -S | -| gd | git diff | -| gdca | git diff --cached | -| gdcw | git diff --cached --word-diff | -| gdct | git describe --tags $(git rev-list --tags --max-count=1) | -| gds | git diff --staged | -| gdt | git diff-tree --no-commit-id --name-only -r | -| gdnolock | git diff $@ ":(exclude)package-lock.json" ":(exclude)*.lock" | -| gdup | git diff @{upstream} | -| gdv | git diff -w $@ \| view - | -| gdw | git diff --word-diff | -| gf | git fetch | -| gfa | git fetch --all --prune | -| gfg | git ls-files \| grep | -| gfo | git fetch origin | -| gg | git gui citool | -| gga | git gui citool --amend | -| ggf | git push --force origin $(current_branch) | -| ggfl | git push --force-with-lease origin $(current_branch) | -| ggl | git pull origin $(current_branch) | -| ggp | git push origin $(current_branch) | -| ggpnp | ggl && ggp | -| ggpull | git pull origin "$(git_current_branch)" | -| ggpur | ggu | -| ggpush | git push origin "$(git_current_branch)" | -| ggsup | git branch --set-upstream-to=origin/$(git_current_branch) | -| ggu | git pull --rebase origin $(current_branch) | -| gpsup | git push --set-upstream origin $(git_current_branch) | -| ghh | git help | -| gignore | git update-index --assume-unchanged | -| gignored | git ls-files -v \| grep "^[[:lower:]]" | -| git-svn-dcommit-push | git svn dcommit && git push github $(git_main_branch):svntrunk | -| gk | gitk --all --branches &! | -| gke | gitk --all $(git log -g --pretty=%h) &! | -| gl | git pull | -| glg | git log --stat | -| glgp | git log --stat -p | -| glgg | git log --graph | -| glgga | git log --graph --decorate --all | -| glgm | git log --graph --max-count=10 | -| glo | git log --oneline --decorate | -| glol | git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' | -| glols | git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' --stat | -| glod | git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' | -| glods | git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' --date=short | -| glola | git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' --all | -| glog | git log --oneline --decorate --graph | -| gloga | git log --oneline --decorate --graph --all | -| glp | git log --pretty=\ | -| gm | git merge | -| gmom | git merge origin/$(git_main_branch) | -| gmtl | git mergetool --no-prompt | -| gmtlvim | git mergetool --no-prompt --tool=vimdiff | -| gmum | git merge upstream/$(git_main_branch) | -| gma | git merge --abort | -| gp | git push | -| gpd | git push --dry-run | -| gpf | git push --force-with-lease | -| gpf! | git push --force | -| gpoat | git push origin --all && git push origin --tags | -| gpr | git pull --rebase | -| gpu | git push upstream | -| gpv | git push -v | -| gr | git remote | -| gra | git remote add | -| grb | git rebase | -| grba | git rebase --abort | -| grbc | git rebase --continue | -| grbd | git rebase $(git_develop_branch) | -| grbi | git rebase -i | -| grbm | git rebase $(git_main_branch) | -| grbo | git rebase --onto | -| grbs | git rebase --skip | -| grev | git revert | -| grh | git reset | -| grhh | git reset --hard | -| groh | git reset origin/$(git_current_branch) --hard | -| grm | git rm | -| grmc | git rm --cached | -| grmv | git remote rename | -| grrm | git remote remove | -| grs | git restore | -| grset | git remote set-url | -| grss | git restore --source | -| grst | git restore --staged | -| grt | cd "$(git rev-parse --show-toplevel \|\| echo .)" | -| gru | git reset -- | -| grup | git remote update | -| grv | git remote -v | -| gsb | git status -sb | -| gsd | git svn dcommit | -| gsh | git show | -| gsi | git submodule init | -| gsps | git show --pretty=short --show-signature | -| gsr | git svn rebase | -| gss | git status -s | -| gst | git status | -| gsta | git stash push | -| gsta | git stash save | -| gstaa | git stash apply | -| gstc | git stash clear | -| gstd | git stash drop | -| gstl | git stash list | -| gstp | git stash pop | -| gsts | git stash show --text | -| gstu | git stash --include-untracked | -| gstall | git stash --all | -| gsu | git submodule update | -| gsw | git switch | -| gswc | git switch -c | -| gswm | git switch $(git_main_branch) | -| gswd | git switch $(git_develop_branch) | -| gts | git tag -s | -| gtv | git tag \| sort -V | -| gtl | gtl(){ git tag --sort=-v:refname -n -l ${1}* }; noglob gtl | -| gunignore | git update-index --no-assume-unchanged | -| gunwip | git log -n 1 \| grep -q -c "\-\-wip\-\-" && git reset HEAD~1 | -| gup | git pull --rebase | -| gupv | git pull --rebase -v | -| gupa | git pull --rebase --autostash | -| gupav | git pull --rebase --autostash -v | -| glum | git pull upstream $(git_main_branch) | -| gwch | git whatchanged -p --abbrev-commit --pretty=medium | -| gwip | git add -A; git rm $(git ls-files --deleted) 2> /dev/null; git commit --no-verify --no-gpg-sign -m "--wip-- [skip ci]" | -| gam | git am | -| gamc | git am --continue | -| gams | git am --skip | -| gama | git am --abort | -| gamscp | git am --show-current-patch | - -### Main branch preference - -Following the recent push for removing racially-charged words from our technical vocabulary, the git plugin favors using -a branch name other than `master`. In this case, we favor the shorter, neutral and descriptive term `main`. This means -that any aliases and functions that previously used `master`, will use `main` if that branch exists. We do this via the -function `git_main_branch`. - -### Deprecated aliases - -These are aliases that have been removed, renamed, or otherwise modified in a way that may, or may not, receive further support. - -| Alias | Command | Modification | -| :----- | :----------------------------------------------------- | :----------------------------------------------------- | -| gap | `git add --patch` | new alias `gapa` | -| gcl | `git config --list` | new alias `gcf` | -| gdc | `git diff --cached` | new alias `gdca` | -| gdt | `git difftool` | no replacement | -| ggpull | `git pull origin $(current_branch)` | new alias `ggl` (`ggpull` still exists for now though) | -| ggpur | `git pull --rebase origin $(current_branch)` | new alias `ggu` (`ggpur` still exists for now though) | -| ggpush | `git push origin $(current_branch)` | new alias `ggp` (`ggpush` still exists for now though) | -| gk | `gitk --all --branches` | now aliased to `gitk --all --branches` | -| glg | `git log --stat --max-count = 10` | now aliased to `git log --stat --color` | -| glgg | `git log --graph --max-count = 10` | now aliased to `git log --graph --color` | -| gwc | `git whatchanged -p --abbrev-commit --pretty = medium` | new alias `gwch` | - -## Functions - -### Current - -| Command | Description | -|:-----------------------|:---------------------------------------------------------------------------------------------------------| -| `grename ` | Rename `old` branch to `new`, including in origin remote | -| current_branch | Return the name of the current branch | -| git_current_user_name | Returns the `user.name` config value | -| git_current_user_email | Returns the `user.email` config value | -| git_main_branch | Returns the name of the main branch: `main` if it exists, `master` otherwise | -| git_develop_branch | Returns the name of the develop branch: `dev`, `devel`, `development` if they exist, `develop` otherwise | - -### Work in Progress (WIP) - -These features allow to pause a branch development and switch to another one (_"Work in Progress"_, or wip). When you want to go back to work, just unwip it. - -| Command | Description | -|:-----------------|:------------------------------------------------| -| work_in_progress | Echoes a warning if the current branch is a wip | -| gwip | Commit wip branch | -| gunwip | Uncommit wip branch | - -### Deprecated functions - -| Command | Description | Reason | -|:-----------------------|:----------------------------------------|:----------------------------------------------------------------| -| current_repository | Return the names of the current remotes | Didn't work properly. Use `git remote -v` instead (`grv` alias) | diff --git a/zsh/.oh-my-zsh/plugins/git/git.plugin.zsh b/zsh/.oh-my-zsh/plugins/git/git.plugin.zsh deleted file mode 100644 index 5a3c982..0000000 --- a/zsh/.oh-my-zsh/plugins/git/git.plugin.zsh +++ /dev/null @@ -1,336 +0,0 @@ -# Git version checking -autoload -Uz is-at-least -git_version="${${(As: :)$(git version 2>/dev/null)}[3]}" - -# -# Functions -# - -# The name of the current branch -# Back-compatibility wrapper for when this function was defined here in -# the plugin, before being pulled in to core lib/git.zsh as git_current_branch() -# to fix the core -> git plugin dependency. -function current_branch() { - git_current_branch -} - -# Pretty log messages -function _git_log_prettily(){ - if ! [ -z $1 ]; then - git log --pretty=$1 - fi -} -compdef _git _git_log_prettily=git-log - -# Warn if the current branch is a WIP -function work_in_progress() { - if $(git log -n 1 2>/dev/null | grep -q -c "\-\-wip\-\-"); then - echo "WIP!!" - fi -} - -# Check if main exists and use instead of master -function git_main_branch() { - command git rev-parse --git-dir &>/dev/null || return - local ref - for ref in refs/{heads,remotes/{origin,upstream}}/{main,trunk}; do - if command git show-ref -q --verify $ref; then - echo ${ref:t} - return - fi - done - echo master -} - -# Check for develop and similarly named branches -function git_develop_branch() { - command git rev-parse --git-dir &>/dev/null || return - local branch - for branch in dev devel development; do - if command git show-ref -q --verify refs/heads/$branch; then - echo $branch - return - fi - done - echo develop -} - -# -# Aliases -# (sorted alphabetically) -# - -alias g='git' - -alias ga='git add' -alias gaa='git add --all' -alias gapa='git add --patch' -alias gau='git add --update' -alias gav='git add --verbose' -alias gap='git apply' -alias gapt='git apply --3way' - -alias gb='git branch' -alias gba='git branch -a' -alias gbd='git branch -d' -alias gbda='git branch --no-color --merged | command grep -vE "^([+*]|\s*($(git_main_branch)|$(git_develop_branch))\s*$)" | command xargs git branch -d 2>/dev/null' -alias gbD='git branch -D' -alias gbl='git blame -b -w' -alias gbnm='git branch --no-merged' -alias gbr='git branch --remote' -alias gbs='git bisect' -alias gbsb='git bisect bad' -alias gbsg='git bisect good' -alias gbsr='git bisect reset' -alias gbss='git bisect start' - -alias gc='git commit -v' -alias gc!='git commit -v --amend' -alias gcn!='git commit -v --no-edit --amend' -alias gca='git commit -v -a' -alias gca!='git commit -v -a --amend' -alias gcan!='git commit -v -a --no-edit --amend' -alias gcans!='git commit -v -a -s --no-edit --amend' -alias gcam='git commit -a -m' -alias gcsm='git commit -s -m' -alias gcas='git commit -a -s' -alias gcasm='git commit -a -s -m' -alias gcb='git checkout -b' -alias gcf='git config --list' - -function gccd() { - command git clone --recurse-submodules "$@" - [[ -d "$_" ]] && cd "$_" || cd "${${_:t}%.git}" -} -compdef _git gccd=git-clone - -alias gcl='git clone --recurse-submodules' -alias gclean='git clean -id' -alias gpristine='git reset --hard && git clean -dffx' -alias gcm='git checkout $(git_main_branch)' -alias gcd='git checkout $(git_develop_branch)' -alias gcmsg='git commit -m' -alias gco='git checkout' -alias gcor='git checkout --recurse-submodules' -alias gcount='git shortlog -sn' -alias gcp='git cherry-pick' -alias gcpa='git cherry-pick --abort' -alias gcpc='git cherry-pick --continue' -alias gcs='git commit -S' -alias gcss='git commit -S -s' -alias gcssm='git commit -S -s -m' - -alias gd='git diff' -alias gdca='git diff --cached' -alias gdcw='git diff --cached --word-diff' -alias gdct='git describe --tags $(git rev-list --tags --max-count=1)' -alias gds='git diff --staged' -alias gdt='git diff-tree --no-commit-id --name-only -r' -alias gdup='git diff @{upstream}' -alias gdw='git diff --word-diff' - -function gdnolock() { - git diff "$@" ":(exclude)package-lock.json" ":(exclude)*.lock" -} -compdef _git gdnolock=git-diff - -function gdv() { git diff -w "$@" | view - } -compdef _git gdv=git-diff - -alias gf='git fetch' -# --jobs= was added in git 2.8 -is-at-least 2.8 "$git_version" \ - && alias gfa='git fetch --all --prune --jobs=10' \ - || alias gfa='git fetch --all --prune' -alias gfo='git fetch origin' - -alias gfg='git ls-files | grep' - -alias gg='git gui citool' -alias gga='git gui citool --amend' - -function ggf() { - [[ "$#" != 1 ]] && local b="$(git_current_branch)" - git push --force origin "${b:=$1}" -} -compdef _git ggf=git-checkout -function ggfl() { - [[ "$#" != 1 ]] && local b="$(git_current_branch)" - git push --force-with-lease origin "${b:=$1}" -} -compdef _git ggfl=git-checkout - -function ggl() { - if [[ "$#" != 0 ]] && [[ "$#" != 1 ]]; then - git pull origin "${*}" - else - [[ "$#" == 0 ]] && local b="$(git_current_branch)" - git pull origin "${b:=$1}" - fi -} -compdef _git ggl=git-checkout - -function ggp() { - if [[ "$#" != 0 ]] && [[ "$#" != 1 ]]; then - git push origin "${*}" - else - [[ "$#" == 0 ]] && local b="$(git_current_branch)" - git push origin "${b:=$1}" - fi -} -compdef _git ggp=git-checkout - -function ggpnp() { - if [[ "$#" == 0 ]]; then - ggl && ggp - else - ggl "${*}" && ggp "${*}" - fi -} -compdef _git ggpnp=git-checkout - -function ggu() { - [[ "$#" != 1 ]] && local b="$(git_current_branch)" - git pull --rebase origin "${b:=$1}" -} -compdef _git ggu=git-checkout - -alias ggpur='ggu' -alias ggpull='git pull origin "$(git_current_branch)"' -alias ggpush='git push origin "$(git_current_branch)"' - -alias ggsup='git branch --set-upstream-to=origin/$(git_current_branch)' -alias gpsup='git push --set-upstream origin $(git_current_branch)' - -alias ghh='git help' - -alias gignore='git update-index --assume-unchanged' -alias gignored='git ls-files -v | grep "^[[:lower:]]"' -alias git-svn-dcommit-push='git svn dcommit && git push github $(git_main_branch):svntrunk' - -alias gk='\gitk --all --branches &!' -alias gke='\gitk --all $(git log -g --pretty=%h) &!' - -alias gl='git pull' -alias glg='git log --stat' -alias glgp='git log --stat -p' -alias glgg='git log --graph' -alias glgga='git log --graph --decorate --all' -alias glgm='git log --graph --max-count=10' -alias glo='git log --oneline --decorate' -alias glol="git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset'" -alias glols="git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' --stat" -alias glod="git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset'" -alias glods="git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' --date=short" -alias glola="git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' --all" -alias glog='git log --oneline --decorate --graph' -alias gloga='git log --oneline --decorate --graph --all' -alias glp="_git_log_prettily" - -alias gm='git merge' -alias gmom='git merge origin/$(git_main_branch)' -alias gmtl='git mergetool --no-prompt' -alias gmtlvim='git mergetool --no-prompt --tool=vimdiff' -alias gmum='git merge upstream/$(git_main_branch)' -alias gma='git merge --abort' - -alias gp='git push' -alias gpd='git push --dry-run' -alias gpf='git push --force-with-lease' -alias gpf!='git push --force' -alias gpoat='git push origin --all && git push origin --tags' -alias gpr='git pull --rebase' -alias gpu='git push upstream' -alias gpv='git push -v' - -alias gr='git remote' -alias gra='git remote add' -alias grb='git rebase' -alias grba='git rebase --abort' -alias grbc='git rebase --continue' -alias grbd='git rebase $(git_develop_branch)' -alias grbi='git rebase -i' -alias grbm='git rebase $(git_main_branch)' -alias grbo='git rebase --onto' -alias grbs='git rebase --skip' -alias grev='git revert' -alias grh='git reset' -alias grhh='git reset --hard' -alias groh='git reset origin/$(git_current_branch) --hard' -alias grm='git rm' -alias grmc='git rm --cached' -alias grmv='git remote rename' -alias grrm='git remote remove' -alias grs='git restore' -alias grset='git remote set-url' -alias grss='git restore --source' -alias grst='git restore --staged' -alias grt='cd "$(git rev-parse --show-toplevel || echo .)"' -alias gru='git reset --' -alias grup='git remote update' -alias grv='git remote -v' - -alias gsb='git status -sb' -alias gsd='git svn dcommit' -alias gsh='git show' -alias gsi='git submodule init' -alias gsps='git show --pretty=short --show-signature' -alias gsr='git svn rebase' -alias gss='git status -s' -alias gst='git status' - -# use the default stash push on git 2.13 and newer -is-at-least 2.13 "$git_version" \ - && alias gsta='git stash push' \ - || alias gsta='git stash save' - -alias gstaa='git stash apply' -alias gstc='git stash clear' -alias gstd='git stash drop' -alias gstl='git stash list' -alias gstp='git stash pop' -alias gsts='git stash show --text' -alias gstu='gsta --include-untracked' -alias gstall='git stash --all' -alias gsu='git submodule update' -alias gsw='git switch' -alias gswc='git switch -c' -alias gswm='git switch $(git_main_branch)' -alias gswd='git switch $(git_develop_branch)' - -alias gts='git tag -s' -alias gtv='git tag | sort -V' -alias gtl='gtl(){ git tag --sort=-v:refname -n -l "${1}*" }; noglob gtl' - -alias gunignore='git update-index --no-assume-unchanged' -alias gunwip='git log -n 1 | grep -q -c "\-\-wip\-\-" && git reset HEAD~1' -alias gup='git pull --rebase' -alias gupv='git pull --rebase -v' -alias gupa='git pull --rebase --autostash' -alias gupav='git pull --rebase --autostash -v' -alias glum='git pull upstream $(git_main_branch)' - -alias gwch='git whatchanged -p --abbrev-commit --pretty=medium' -alias gwip='git add -A; git rm $(git ls-files --deleted) 2> /dev/null; git commit --no-verify --no-gpg-sign -m "--wip-- [skip ci]"' - -alias gam='git am' -alias gamc='git am --continue' -alias gams='git am --skip' -alias gama='git am --abort' -alias gamscp='git am --show-current-patch' - -function grename() { - if [[ -z "$1" || -z "$2" ]]; then - echo "Usage: $0 old_branch new_branch" - return 1 - fi - - # Rename branch locally - git branch -m "$1" "$2" - # Rename branch in origin remote - if git push origin :"$1"; then - git push --set-upstream origin "$2" - fi -} - -unset git_version diff --git a/zsh/.oh-my-zsh/plugins/gitfast/README.md b/zsh/.oh-my-zsh/plugins/gitfast/README.md deleted file mode 100644 index fed4b12..0000000 --- a/zsh/.oh-my-zsh/plugins/gitfast/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# Gitfast plugin - -This plugin adds completion for Git, using the zsh completion from git.git folks, which is much faster than the official one from zsh. A lot of zsh-specific features are not supported, like descriptions for every argument, but everything the bash completion has, this one does too (as it is using it behind the scenes). Not only is it faster, it should be more robust, and updated regularly to the latest git upstream version. - -To use it, add `gitfast` to the plugins array in your zshrc file: - -```zsh -plugins=(... gitfast) -``` - -## Aliases - -An earlier version of the plugin also loaded the git plugin. If you want to keep those -aliases enable the [git plugin](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/git) -as well. diff --git a/zsh/.oh-my-zsh/plugins/gitfast/_git b/zsh/.oh-my-zsh/plugins/gitfast/_git deleted file mode 100644 index 988f5b1..0000000 --- a/zsh/.oh-my-zsh/plugins/gitfast/_git +++ /dev/null @@ -1,292 +0,0 @@ -#compdef git gitk - -# zsh completion wrapper for git -# -# Copyright (c) 2012-2020 Felipe Contreras -# -# The recommended way to install this script is to make a copy of it as a -# file named '_git' inside any directory in your fpath. -# -# For example, create a directory '~/.zsh/', copy this file to '~/.zsh/_git', -# and then add the following to your ~/.zshrc file: -# -# fpath=(~/.zsh $fpath) -# -# You need git's bash completion script installed. By default bash-completion's -# location will be used (e.g. pkg-config --variable=completionsdir bash-completion). -# -# If your bash completion script is somewhere else, you can specify the -# location in your ~/.zshrc: -# -# zstyle ':completion:*:*:git:*' script ~/.git-completion.bash -# - -zstyle -T ':completion:*:*:git:*' tag-order && \ - zstyle ':completion:*:*:git:*' tag-order 'common-commands' - -zstyle -s ":completion:*:*:git:*" script script -if [ -z "$script" ]; then - local -a locations - local e bash_completion - - bash_completion=$(pkg-config --variable=completionsdir bash-completion 2>/dev/null) || - bash_completion='/usr/share/bash-completion/completions/' - - locations=( - "$(dirname ${funcsourcetrace[1]%:*})"/git-completion.bash - "$HOME/.local/share/bash-completion/completions/git" - "$bash_completion/git" - '/etc/bash_completion.d/git' # old debian - ) - for e in $locations; do - test -f $e && script="$e" && break - done -fi - -local old_complete="$functions[complete]" -functions[complete]=: -COMP_WORDBREAKS=':' -GIT_SOURCING_ZSH_COMPLETION=y . "$script" -functions[complete]="$old_complete" - -__gitcompadd () -{ - compadd -Q -p "${2-}" -S "${3- }" ${@[4,-1]} -- ${=1} && _ret=0 -} - -__gitcomp () -{ - emulate -L zsh - - local cur_="${3-$cur}" - - [[ "$cur_" == *= ]] && return - - local c IFS=$' \t\n' sfx - for c in ${=1}; do - if [[ $c == "--" ]]; then - [[ "$cur_" == --no-* ]] && continue - __gitcompadd "--no-..." - break - fi - - if [[ -z "${4-}" ]]; then - case $c in - *=) c="${c%=}"; sfx="=" ;; - *.) sfx="" ;; - *) sfx=" " ;; - esac - else - sfx="$4" - fi - __gitcompadd "$c" "${2-}" "$sfx" -q - done -} - -__gitcomp_nl () -{ - emulate -L zsh - - IFS=$'\n' __gitcompadd "$1" "${2-}" "${4- }" -} - -__gitcomp_file () -{ - emulate -L zsh - - compadd -f -p "${2-}" -- ${(f)1} && _ret=0 -} - -__gitcomp_direct () -{ - __gitcomp_nl "$1" "" "" "" -} - -__gitcomp_file_direct () -{ - __gitcomp_file "$1" "" -} - -__gitcomp_nl_append () -{ - __gitcomp_nl "$@" -} - -__gitcomp_direct_append () -{ - __gitcomp_direct "$@" -} - -_git_zsh () -{ - __gitcomp "v1.2" -} - -__git_complete_command () -{ - emulate -L zsh - - compset -P '*[=:]' - - local command="$1" - local completion_func="_git_${command//-/_}" - if (( $+functions[$completion_func] )); then - emulate ksh -c $completion_func - return 0 - elif emulate ksh -c "__git_support_parseopt_helper $command"; then - emulate ksh -c "__git_complete_common $command" - return 0 - else - return 1 - fi -} - -__git_zsh_bash_func () -{ - emulate -L ksh - - local command=$1 - - __git_complete_command "$command" && return - - local expansion=$(__git_aliased_command "$command") - if [ -n "$expansion" ]; then - words[1]=$expansion - __git_complete_command "$expansion" - fi -} - -__git_zsh_cmd_common () -{ - local -a list - list=( - add:'add file contents to the index' - bisect:'find by binary search the change that introduced a bug' - branch:'list, create, or delete branches' - checkout:'checkout a branch or paths to the working tree' - clone:'clone a repository into a new directory' - commit:'record changes to the repository' - diff:'show changes between commits, commit and working tree, etc' - fetch:'download objects and refs from another repository' - grep:'print lines matching a pattern' - init:'create an empty Git repository or reinitialize an existing one' - log:'show commit logs' - merge:'join two or more development histories together' - mv:'move or rename a file, a directory, or a symlink' - pull:'fetch from and merge with another repository or a local branch' - push:'update remote refs along with associated objects' - rebase:'forward-port local commits to the updated upstream head' - reset:'reset current HEAD to the specified state' - restore:'restore working tree files' - rm:'remove files from the working tree and from the index' - show:'show various types of objects' - status:'show the working tree status' - switch:'switch branches' - tag:'create, list, delete or verify a tag object signed with GPG') - _describe -t common-commands 'common commands' list && _ret=0 -} - -__git_zsh_cmd_alias () -{ - local -a list - list=(${${(0)"$(git config -z --get-regexp '^alias\.*')"}#alias.}) - list=(${(f)"$(printf "%s:alias for '%s'\n" ${(f@)list})"}) - _describe -t alias-commands 'aliases' list && _ret=0 -} - -__git_zsh_cmd_all () -{ - local -a list - emulate ksh -c __git_compute_all_commands - list=( ${=__git_all_commands} ) - _describe -t all-commands 'all commands' list && _ret=0 -} - -__git_zsh_main () -{ - local curcontext="$curcontext" state state_descr line - typeset -A opt_args - local -a orig_words __git_C_args - - orig_words=( ${words[@]} ) - - _arguments -C \ - '(-p --paginate -P --no-pager)'{-p,--paginate}'[pipe all output into ''less'']' \ - '(-p --paginate -P --no-pager)'{-P,--no-pager}'[do not pipe git output into a pager]' \ - '(--bare)--git-dir=[set the path to the repository]: :_directories' \ - '(--git-dir)--bare[treat the repository as a bare repository]' \ - '(- :)--version[prints the git suite version]' \ - '--exec-path=[path to where your core git programs are installed]: :_directories' \ - '(- :)--exec-path[print the path where your core git programs are installed]' \ - '(- :)--html-path[print the path where git''s HTML documentation is installed]' \ - '(- :)--info-path[print the path where the Info files are installed]' \ - '(- :)--man-path[print the manpath (see `man(1)`) for the man pages]' \ - '--work-tree=[set the path to the working tree]: :_directories' \ - '--namespace=[set the git namespace]:' \ - '--no-replace-objects[do not use replacement refs to replace git objects]' \ - '(- :)--help[prints the synopsis and a list of the most commonly used commands]: :->arg' \ - '*-C[run as if git was started in the given path]: :_directories' \ - '*-c[pass a configuration parameter to the command]: :->config' \ - '(-): :->command' \ - '(-)*:: :->arg' && return - - case $state in - (command) - _tags common-commands alias-commands all-commands - while _tags; do - _requested common-commands && __git_zsh_cmd_common - _requested alias-commands && __git_zsh_cmd_alias - _requested all-commands && __git_zsh_cmd_all - let _ret || break - done - ;; - (config) - compset -P '*[=:]' - emulate ksh -c __git_complete_config_variable_name_and_value - ;; - (arg) - local command="${words[1]}" __git_dir - - if (( $+opt_args[--bare] )); then - __git_dir='.' - else - __git_dir=${~opt_args[--git-dir]} - fi - - for x in ${(s.:.)opt_args[-C]}; do - __git_C_args+=('-C' ${~x}) - done - - (( $+opt_args[--help] )) && command='help' - - words=( ${orig_words[@]} ) - - __git_zsh_bash_func $command - ;; - esac -} - -_git () -{ - local _ret=1 - local cur cword prev - - cur=${words[CURRENT]} - prev=${words[CURRENT-1]} - let cword=CURRENT-1 - - if (( $+functions[__${service}_zsh_main] )); then - __${service}_zsh_main - elif (( $+functions[__${service}_main] )); then - emulate ksh -c __${service}_main - elif (( $+functions[_${service}] )); then - emulate ksh -c _${service} - elif (( $+functions[_${service//-/_}] )); then - emulate ksh -c _${service//-/_} - fi - - let _ret && _default && _ret=0 - return _ret -} - -_git diff --git a/zsh/.oh-my-zsh/plugins/gitfast/git-completion.bash b/zsh/.oh-my-zsh/plugins/gitfast/git-completion.bash deleted file mode 100644 index 4497a29..0000000 --- a/zsh/.oh-my-zsh/plugins/gitfast/git-completion.bash +++ /dev/null @@ -1,3653 +0,0 @@ -# bash/zsh completion support for core Git. -# -# Copyright (C) 2006,2007 Shawn O. Pearce -# Conceptually based on gitcompletion (http://gitweb.hawaga.org.uk/). -# Distributed under the GNU General Public License, version 2.0. -# -# The contained completion routines provide support for completing: -# -# *) local and remote branch names -# *) local and remote tag names -# *) .git/remotes file names -# *) git 'subcommands' -# *) git email aliases for git-send-email -# *) tree paths within 'ref:path/to/file' expressions -# *) file paths within current working directory and index -# *) common --long-options -# -# To use these routines: -# -# 1) Copy this file to somewhere (e.g. ~/.git-completion.bash). -# 2) Add the following line to your .bashrc/.zshrc: -# source ~/.git-completion.bash -# 3) Consider changing your PS1 to also show the current branch, -# see git-prompt.sh for details. -# -# If you use complex aliases of form '!f() { ... }; f', you can use the null -# command ':' as the first command in the function body to declare the desired -# completion style. For example '!f() { : git commit ; ... }; f' will -# tell the completion to use commit completion. This also works with aliases -# of form "!sh -c '...'". For example, "!sh -c ': git commit ; ... '". -# -# Compatible with bash 3.2.57. -# -# You can set the following environment variables to influence the behavior of -# the completion routines: -# -# GIT_COMPLETION_CHECKOUT_NO_GUESS -# -# When set to "1", do not include "DWIM" suggestions in git-checkout -# and git-switch completion (e.g., completing "foo" when "origin/foo" -# exists). -# -# GIT_COMPLETION_SHOW_ALL -# -# When set to "1" suggest all options, including options which are -# typically hidden (e.g. '--allow-empty' for 'git commit'). - -# Discovers the path to the git repository taking any '--git-dir=' and -# '-C ' options into account and stores it in the $__git_repo_path -# variable. -__git_find_repo_path () -{ - if [ -n "${__git_repo_path-}" ]; then - # we already know where it is - return - fi - - if [ -n "${__git_C_args-}" ]; then - __git_repo_path="$(git "${__git_C_args[@]}" \ - ${__git_dir:+--git-dir="$__git_dir"} \ - rev-parse --absolute-git-dir 2>/dev/null)" - elif [ -n "${__git_dir-}" ]; then - test -d "$__git_dir" && - __git_repo_path="$__git_dir" - elif [ -n "${GIT_DIR-}" ]; then - test -d "${GIT_DIR-}" && - __git_repo_path="$GIT_DIR" - elif [ -d .git ]; then - __git_repo_path=.git - else - __git_repo_path="$(git rev-parse --git-dir 2>/dev/null)" - fi -} - -# Deprecated: use __git_find_repo_path() and $__git_repo_path instead -# __gitdir accepts 0 or 1 arguments (i.e., location) -# returns location of .git repo -__gitdir () -{ - if [ -z "${1-}" ]; then - __git_find_repo_path || return 1 - echo "$__git_repo_path" - elif [ -d "$1/.git" ]; then - echo "$1/.git" - else - echo "$1" - fi -} - -# Runs git with all the options given as argument, respecting any -# '--git-dir=' and '-C ' options present on the command line -__git () -{ - git ${__git_C_args:+"${__git_C_args[@]}"} \ - ${__git_dir:+--git-dir="$__git_dir"} "$@" 2>/dev/null -} - -# Removes backslash escaping, single quotes and double quotes from a word, -# stores the result in the variable $dequoted_word. -# 1: The word to dequote. -__git_dequote () -{ - local rest="$1" len ch - - dequoted_word="" - - while test -n "$rest"; do - len=${#dequoted_word} - dequoted_word="$dequoted_word${rest%%[\\\'\"]*}" - rest="${rest:$((${#dequoted_word}-$len))}" - - case "${rest:0:1}" in - \\) - ch="${rest:1:1}" - case "$ch" in - $'\n') - ;; - *) - dequoted_word="$dequoted_word$ch" - ;; - esac - rest="${rest:2}" - ;; - \') - rest="${rest:1}" - len=${#dequoted_word} - dequoted_word="$dequoted_word${rest%%\'*}" - rest="${rest:$((${#dequoted_word}-$len+1))}" - ;; - \") - rest="${rest:1}" - while test -n "$rest" ; do - len=${#dequoted_word} - dequoted_word="$dequoted_word${rest%%[\\\"]*}" - rest="${rest:$((${#dequoted_word}-$len))}" - case "${rest:0:1}" in - \\) - ch="${rest:1:1}" - case "$ch" in - \"|\\|\$|\`) - dequoted_word="$dequoted_word$ch" - ;; - $'\n') - ;; - *) - dequoted_word="$dequoted_word\\$ch" - ;; - esac - rest="${rest:2}" - ;; - \") - rest="${rest:1}" - break - ;; - esac - done - ;; - esac - done -} - -# The following function is based on code from: -# -# bash_completion - programmable completion functions for bash 3.2+ -# -# Copyright © 2006-2008, Ian Macdonald -# © 2009-2010, Bash Completion Maintainers -# -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, see . -# -# The latest version of this software can be obtained here: -# -# http://bash-completion.alioth.debian.org/ -# -# RELEASE: 2.x - -# This function can be used to access a tokenized list of words -# on the command line: -# -# __git_reassemble_comp_words_by_ref '=:' -# if test "${words_[cword_-1]}" = -w -# then -# ... -# fi -# -# The argument should be a collection of characters from the list of -# word completion separators (COMP_WORDBREAKS) to treat as ordinary -# characters. -# -# This is roughly equivalent to going back in time and setting -# COMP_WORDBREAKS to exclude those characters. The intent is to -# make option types like --date= and : easy to -# recognize by treating each shell word as a single token. -# -# It is best not to set COMP_WORDBREAKS directly because the value is -# shared with other completion scripts. By the time the completion -# function gets called, COMP_WORDS has already been populated so local -# changes to COMP_WORDBREAKS have no effect. -# -# Output: words_, cword_, cur_. - -__git_reassemble_comp_words_by_ref() -{ - local exclude i j first - # Which word separators to exclude? - exclude="${1//[^$COMP_WORDBREAKS]}" - cword_=$COMP_CWORD - if [ -z "$exclude" ]; then - words_=("${COMP_WORDS[@]}") - return - fi - # List of word completion separators has shrunk; - # re-assemble words to complete. - for ((i=0, j=0; i < ${#COMP_WORDS[@]}; i++, j++)); do - # Append each nonempty word consisting of just - # word separator characters to the current word. - first=t - while - [ $i -gt 0 ] && - [ -n "${COMP_WORDS[$i]}" ] && - # word consists of excluded word separators - [ "${COMP_WORDS[$i]//[^$exclude]}" = "${COMP_WORDS[$i]}" ] - do - # Attach to the previous token, - # unless the previous token is the command name. - if [ $j -ge 2 ] && [ -n "$first" ]; then - ((j--)) - fi - first= - words_[$j]=${words_[j]}${COMP_WORDS[i]} - if [ $i = $COMP_CWORD ]; then - cword_=$j - fi - if (($i < ${#COMP_WORDS[@]} - 1)); then - ((i++)) - else - # Done. - return - fi - done - words_[$j]=${words_[j]}${COMP_WORDS[i]} - if [ $i = $COMP_CWORD ]; then - cword_=$j - fi - done -} - -if ! type _get_comp_words_by_ref >/dev/null 2>&1; then -_get_comp_words_by_ref () -{ - local exclude cur_ words_ cword_ - if [ "$1" = "-n" ]; then - exclude=$2 - shift 2 - fi - __git_reassemble_comp_words_by_ref "$exclude" - cur_=${words_[cword_]} - while [ $# -gt 0 ]; do - case "$1" in - cur) - cur=$cur_ - ;; - prev) - prev=${words_[$cword_-1]} - ;; - words) - words=("${words_[@]}") - ;; - cword) - cword=$cword_ - ;; - esac - shift - done -} -fi - -# Fills the COMPREPLY array with prefiltered words without any additional -# processing. -# Callers must take care of providing only words that match the current word -# to be completed and adding any prefix and/or suffix (trailing space!), if -# necessary. -# 1: List of newline-separated matching completion words, complete with -# prefix and suffix. -__gitcomp_direct () -{ - local IFS=$'\n' - - COMPREPLY=($1) -} - -# Similar to __gitcomp_direct, but appends to COMPREPLY instead. -# Callers must take care of providing only words that match the current word -# to be completed and adding any prefix and/or suffix (trailing space!), if -# necessary. -# 1: List of newline-separated matching completion words, complete with -# prefix and suffix. -__gitcomp_direct_append () -{ - local IFS=$'\n' - - COMPREPLY+=($1) -} - -__gitcompappend () -{ - local x i=${#COMPREPLY[@]} - for x in $1; do - if [[ "$x" == "$3"* ]]; then - COMPREPLY[i++]="$2$x$4" - fi - done -} - -__gitcompadd () -{ - COMPREPLY=() - __gitcompappend "$@" -} - -# Generates completion reply, appending a space to possible completion words, -# if necessary. -# It accepts 1 to 4 arguments: -# 1: List of possible completion words. -# 2: A prefix to be added to each possible completion word (optional). -# 3: Generate possible completion matches for this word (optional). -# 4: A suffix to be appended to each possible completion word (optional). -__gitcomp () -{ - local cur_="${3-$cur}" - - case "$cur_" in - *=) - ;; - --no-*) - local c i=0 IFS=$' \t\n' - for c in $1; do - if [[ $c == "--" ]]; then - continue - fi - c="$c${4-}" - if [[ $c == "$cur_"* ]]; then - case $c in - --*=|*.) ;; - *) c="$c " ;; - esac - COMPREPLY[i++]="${2-}$c" - fi - done - ;; - *) - local c i=0 IFS=$' \t\n' - for c in $1; do - if [[ $c == "--" ]]; then - c="--no-...${4-}" - if [[ $c == "$cur_"* ]]; then - COMPREPLY[i++]="${2-}$c " - fi - break - fi - c="$c${4-}" - if [[ $c == "$cur_"* ]]; then - case $c in - *=|*.) ;; - *) c="$c " ;; - esac - COMPREPLY[i++]="${2-}$c" - fi - done - ;; - esac -} - -# Clear the variables caching builtins' options when (re-)sourcing -# the completion script. -if [[ -n ${ZSH_VERSION-} ]]; then - unset ${(M)${(k)parameters[@]}:#__gitcomp_builtin_*} 2>/dev/null -else - unset $(compgen -v __gitcomp_builtin_) -fi - -__gitcomp_builtin_add_default=" --dry-run --verbose --interactive --patch --edit --force --update --renormalize --intent-to-add --all --ignore-removal --refresh --ignore-errors --ignore-missing --chmod= --pathspec-from-file= --pathspec-file-nul --no-dry-run -- --no-verbose --no-interactive --no-patch --no-edit --no-force --no-update --no-renormalize --no-intent-to-add --no-all --no-ignore-removal --no-refresh --no-ignore-errors --no-ignore-missing --no-chmod --no-pathspec-from-file --no-pathspec-file-nul" -__gitcomp_builtin_am_default=" --interactive --3way --quiet --signoff --utf8 --keep --keep-non-patch --message-id --keep-cr --no-keep-cr --scissors --whitespace= --ignore-space-change --ignore-whitespace --directory= --exclude= --include= --patch-format= --reject --resolvemsg= --continue --resolved --skip --abort --quit --show-current-patch --committer-date-is-author-date --ignore-date --rerere-autoupdate --gpg-sign -- --no-interactive --no-3way --no-quiet --no-signoff --no-utf8 --no-keep --no-keep-non-patch --no-message-id --no-scissors --no-whitespace --no-ignore-space-change --no-ignore-whitespace --no-directory --no-exclude --no-include --no-patch-format --no-reject --no-resolvemsg --no-committer-date-is-author-date --no-ignore-date --no-rerere-autoupdate --no-gpg-sign" -__gitcomp_builtin_apply_default=" --exclude= --include= --no-add --stat --numstat --summary --check --index --intent-to-add --cached --apply --3way --build-fake-ancestor= --whitespace= --ignore-space-change --ignore-whitespace --reverse --unidiff-zero --reject --allow-overlap --verbose --inaccurate-eof --recount --directory= --add -- --no-stat --no-numstat --no-summary --no-check --no-index --no-intent-to-add --no-cached --no-apply --no-3way --no-build-fake-ancestor --no-whitespace --no-ignore-space-change --no-ignore-whitespace --no-reverse --no-unidiff-zero --no-reject --no-allow-overlap --no-verbose --no-inaccurate-eof --no-recount --no-directory" -__gitcomp_builtin_archive_default=" --output= --remote= --exec= --no-output -- --no-remote --no-exec" -__gitcomp_builtin_bisect__helper_default=" --next-all --write-terms --bisect-clean-state --check-expected-revs --bisect-reset --bisect-write --check-and-set-terms --bisect-next-check --bisect-terms --bisect-start --bisect-next --bisect-auto-next --bisect-autostart --no-log --log" -__gitcomp_builtin_blame_default=" --incremental --root --show-stats --progress --score-debug --show-name --show-number --porcelain --line-porcelain --show-email --ignore-rev= --ignore-revs-file= --color-lines --color-by-age --minimal --contents= --abbrev --no-incremental -- --no-root --no-show-stats --no-progress --no-score-debug --no-show-name --no-show-number --no-porcelain --no-line-porcelain --no-show-email --no-ignore-rev --no-ignore-revs-file --no-color-lines --no-color-by-age --no-minimal --no-contents --no-abbrev" -__gitcomp_builtin_branch_default=" --verbose --quiet --track --set-upstream-to= --unset-upstream --color --remotes --contains --no-contains --abbrev --all --delete --move --copy --list --show-current --create-reflog --edit-description --merged --no-merged --column --sort= --points-at= --ignore-case --format= -- --no-verbose --no-quiet --no-track --no-set-upstream-to --no-unset-upstream --no-color --no-remotes --no-abbrev --no-all --no-delete --no-move --no-copy --no-list --no-show-current --no-create-reflog --no-edit-description --no-column --no-points-at --no-ignore-case --no-format" -__gitcomp_builtin_bugreport_default=" --output-directory= --suffix= --no-output-directory -- --no-suffix" -__gitcomp_builtin_cat_file_default=" --textconv --filters --path= --allow-unknown-type --buffer --batch --batch-check --follow-symlinks --batch-all-objects --unordered --no-path -- --no-allow-unknown-type --no-buffer --no-follow-symlinks --no-batch-all-objects --no-unordered" -__gitcomp_builtin_check_attr_default=" --all --cached --stdin --no-all -- --no-cached --no-stdin" -__gitcomp_builtin_check_ignore_default=" --quiet --verbose --stdin --non-matching --no-index --index -- --no-quiet --no-verbose --no-stdin --no-non-matching" -__gitcomp_builtin_check_mailmap_default=" --stdin --no-stdin" -__gitcomp_builtin_checkout_default=" --guess --overlay --quiet --recurse-submodules --progress --merge --conflict= --detach --track --orphan= --ignore-other-worktrees --ours --theirs --patch --ignore-skip-worktree-bits --pathspec-from-file= --pathspec-file-nul --no-guess -- --no-overlay --no-quiet --no-recurse-submodules --no-progress --no-merge --no-conflict --no-detach --no-track --no-orphan --no-ignore-other-worktrees --no-patch --no-ignore-skip-worktree-bits --no-pathspec-from-file --no-pathspec-file-nul" -__gitcomp_builtin_checkout_index_default=" --all --force --quiet --no-create --index --stdin --temp --prefix= --stage= --create -- --no-all --no-force --no-quiet --no-index --no-stdin --no-temp --no-prefix" -__gitcomp_builtin_cherry_default=" --abbrev --verbose --no-abbrev -- --no-verbose" -__gitcomp_builtin_cherry_pick_default=" --quit --continue --abort --skip --cleanup= --no-commit --edit --signoff --mainline= --rerere-autoupdate --strategy= --strategy-option= --gpg-sign --ff --allow-empty --allow-empty-message --keep-redundant-commits --commit -- --no-cleanup --no-edit --no-signoff --no-mainline --no-rerere-autoupdate --no-strategy --no-strategy-option --no-gpg-sign --no-ff --no-allow-empty --no-allow-empty-message --no-keep-redundant-commits" -__gitcomp_builtin_clean_default=" --quiet --dry-run --interactive --exclude= --no-quiet -- --no-dry-run --no-interactive" -__gitcomp_builtin_clone_default=" --verbose --quiet --progress --no-checkout --bare --mirror --local --no-hardlinks --shared --recurse-submodules --recursive --jobs= --template= --reference= --reference-if-able= --dissociate --origin= --branch= --upload-pack= --depth= --shallow-since= --shallow-exclude= --single-branch --no-tags --shallow-submodules --separate-git-dir= --config= --server-option= --ipv4 --ipv6 --filter= --remote-submodules --sparse --checkout --hardlinks --tags -- --no-verbose --no-quiet --no-progress --no-bare --no-mirror --no-local --no-shared --no-recurse-submodules --no-recursive --no-jobs --no-template --no-reference --no-reference-if-able --no-dissociate --no-origin --no-branch --no-upload-pack --no-depth --no-shallow-since --no-shallow-exclude --no-single-branch --no-shallow-submodules --no-separate-git-dir --no-config --no-server-option --no-ipv4 --no-ipv6 --no-filter --no-remote-submodules --no-sparse" -__gitcomp_builtin_column_default=" --command= --mode --raw-mode= --width= --indent= --nl= --padding= --no-command -- --no-mode --no-raw-mode --no-width --no-indent --no-nl --no-padding" -__gitcomp_builtin_commit_default=" --quiet --verbose --file= --author= --date= --message= --reedit-message= --reuse-message= --fixup= --squash= --reset-author --signoff --template= --edit --cleanup= --status --gpg-sign --all --include --interactive --patch --only --no-verify --dry-run --short --branch --ahead-behind --porcelain --long --null --amend --no-post-rewrite --untracked-files --pathspec-from-file= --pathspec-file-nul --verify --post-rewrite -- --no-quiet --no-verbose --no-file --no-author --no-date --no-message --no-reedit-message --no-reuse-message --no-fixup --no-squash --no-reset-author --no-signoff --no-template --no-edit --no-cleanup --no-status --no-gpg-sign --no-all --no-include --no-interactive --no-patch --no-only --no-dry-run --no-short --no-branch --no-ahead-behind --no-porcelain --no-long --no-null --no-amend --no-untracked-files --no-pathspec-from-file --no-pathspec-file-nul" -__gitcomp_builtin_commit_graph_default=" --object-dir= --no-object-dir" -__gitcomp_builtin_config_default=" --global --system --local --worktree --file= --blob= --get --get-all --get-regexp --get-urlmatch --replace-all --add --unset --unset-all --rename-section --remove-section --list --edit --get-color --get-colorbool --type= --bool --int --bool-or-int --bool-or-str --path --expiry-date --null --name-only --includes --show-origin --show-scope --default= --no-global -- --no-system --no-local --no-worktree --no-file --no-blob --no-get --no-get-all --no-get-regexp --no-get-urlmatch --no-replace-all --no-add --no-unset --no-unset-all --no-rename-section --no-remove-section --no-list --no-edit --no-get-color --no-get-colorbool --no-type --no-null --no-name-only --no-includes --no-show-origin --no-show-scope --no-default" -__gitcomp_builtin_count_objects_default=" --verbose --human-readable --no-verbose -- --no-human-readable" -__gitcomp_builtin_credential_cache_default=" --timeout= --socket= --no-timeout -- --no-socket" -__gitcomp_builtin_credential_cache__daemon_default=" --debug --no-debug" -__gitcomp_builtin_credential_store_default=" --file= --no-file" -__gitcomp_builtin_describe_default=" --contains --debug --all --tags --long --first-parent --abbrev --exact-match --candidates= --match= --exclude= --always --dirty --broken --no-contains -- --no-debug --no-all --no-tags --no-long --no-first-parent --no-abbrev --no-exact-match --no-candidates --no-match --no-exclude --no-always --no-dirty --no-broken" -__gitcomp_builtin_difftool_default=" --gui --dir-diff --no-prompt --symlinks --tool= --tool-help --trust-exit-code --extcmd= --no-index -- --no-gui --no-dir-diff --no-symlinks --no-tool --no-tool-help --no-trust-exit-code --no-extcmd" -__gitcomp_builtin_env__helper_default=" --type= --default= --exit-code --no-default -- --no-exit-code" -__gitcomp_builtin_fast_export_default=" --progress= --signed-tags= --tag-of-filtered-object= --reencode= --export-marks= --import-marks= --import-marks-if-exists= --fake-missing-tagger --full-tree --use-done-feature --no-data --refspec= --anonymize --anonymize-map= --reference-excluded-parents --show-original-ids --mark-tags --data -- --no-progress --no-signed-tags --no-tag-of-filtered-object --no-reencode --no-export-marks --no-import-marks --no-import-marks-if-exists --no-fake-missing-tagger --no-full-tree --no-use-done-feature --no-refspec --no-anonymize --no-reference-excluded-parents --no-show-original-ids --no-mark-tags" -__gitcomp_builtin_fetch_default=" --verbose --quiet --all --set-upstream --append --upload-pack= --force --multiple --tags --jobs= --prune --prune-tags --recurse-submodules --dry-run --write-fetch-head --keep --update-head-ok --progress --depth= --shallow-since= --shallow-exclude= --deepen= --unshallow --update-shallow --refmap= --server-option= --ipv4 --ipv6 --negotiation-tip= --filter= --auto-maintenance --auto-gc --show-forced-updates --write-commit-graph --stdin --no-verbose -- --no-quiet --no-all --no-set-upstream --no-append --no-upload-pack --no-force --no-multiple --no-tags --no-jobs --no-prune --no-prune-tags --no-recurse-submodules --no-dry-run --no-write-fetch-head --no-keep --no-update-head-ok --no-progress --no-depth --no-shallow-since --no-shallow-exclude --no-deepen --no-update-shallow --no-server-option --no-ipv4 --no-ipv6 --no-negotiation-tip --no-filter --no-auto-maintenance --no-auto-gc --no-show-forced-updates --no-write-commit-graph --no-stdin" -__gitcomp_builtin_fmt_merge_msg_default=" --log --message= --file= --no-log -- --no-message --no-file" -__gitcomp_builtin_for_each_ref_default=" --shell --perl --python --tcl --count= --format= --color --sort= --points-at= --merged --no-merged --contains --no-contains --ignore-case -- --no-shell --no-perl --no-python --no-tcl --no-count --no-format --no-color --no-points-at --no-ignore-case" -__gitcomp_builtin_format_patch_default=" --numbered --no-numbered --signoff --stdout --cover-letter --numbered-files --suffix= --start-number= --reroll-count= --rfc --cover-from-description= --subject-prefix= --output-directory= --keep-subject --no-binary --zero-commit --ignore-if-in-upstream --no-stat --add-header= --to= --cc= --from --in-reply-to= --attach --inline --thread --signature= --base= --signature-file= --quiet --progress --interdiff= --range-diff= --creation-factor= --binary -- --no-numbered --no-signoff --no-stdout --no-cover-letter --no-numbered-files --no-suffix --no-start-number --no-reroll-count --no-cover-from-description --no-zero-commit --no-ignore-if-in-upstream --no-add-header --no-to --no-cc --no-from --no-in-reply-to --no-attach --no-thread --no-signature --no-base --no-signature-file --no-quiet --no-progress --no-interdiff --no-range-diff --no-creation-factor" -__gitcomp_builtin_fsck_default=" --verbose --unreachable --dangling --tags --root --cache --reflogs --full --connectivity-only --strict --lost-found --progress --name-objects --no-verbose -- --no-unreachable --no-dangling --no-tags --no-root --no-cache --no-reflogs --no-full --no-connectivity-only --no-strict --no-lost-found --no-progress --no-name-objects" -__gitcomp_builtin_fsck_objects_default=" --verbose --unreachable --dangling --tags --root --cache --reflogs --full --connectivity-only --strict --lost-found --progress --name-objects --no-verbose -- --no-unreachable --no-dangling --no-tags --no-root --no-cache --no-reflogs --no-full --no-connectivity-only --no-strict --no-lost-found --no-progress --no-name-objects" -__gitcomp_builtin_gc_default=" --quiet --prune --aggressive --keep-largest-pack --no-quiet -- --no-prune --no-aggressive --no-keep-largest-pack" -__gitcomp_builtin_grep_default=" --cached --no-index --untracked --exclude-standard --recurse-submodules --invert-match --ignore-case --word-regexp --text --textconv --recursive --max-depth= --extended-regexp --basic-regexp --fixed-strings --perl-regexp --line-number --column --full-name --files-with-matches --name-only --files-without-match --only-matching --count --color --break --heading --context= --before-context= --after-context= --threads= --show-function --function-context --and --or --not --quiet --all-match --index -- --no-cached --no-untracked --no-exclude-standard --no-recurse-submodules --no-invert-match --no-ignore-case --no-word-regexp --no-text --no-textconv --no-recursive --no-extended-regexp --no-basic-regexp --no-fixed-strings --no-perl-regexp --no-line-number --no-column --no-full-name --no-files-with-matches --no-name-only --no-files-without-match --no-only-matching --no-count --no-color --no-break --no-heading --no-context --no-before-context --no-after-context --no-threads --no-show-function --no-function-context --no-or --no-quiet --no-all-match" -__gitcomp_builtin_hash_object_default=" --stdin --stdin-paths --no-filters --literally --path= --filters -- --no-stdin --no-stdin-paths --no-literally --no-path" -__gitcomp_builtin_help_default=" --all --guides --config --man --web --info --verbose --no-all -- --no-guides --no-config --no-man --no-web --no-info --no-verbose" -__gitcomp_builtin_init_default=" --template= --bare --shared --quiet --separate-git-dir= --initial-branch= --object-format= --no-template -- --no-bare --no-quiet --no-separate-git-dir --no-initial-branch --no-object-format" -__gitcomp_builtin_init_db_default=" --template= --bare --shared --quiet --separate-git-dir= --initial-branch= --object-format= --no-template -- --no-bare --no-quiet --no-separate-git-dir --no-initial-branch --no-object-format" -__gitcomp_builtin_interpret_trailers_default=" --in-place --trim-empty --where= --if-exists= --if-missing= --only-trailers --only-input --unfold --parse --no-divider --trailer= --divider -- --no-in-place --no-trim-empty --no-where --no-if-exists --no-if-missing --no-only-trailers --no-only-input --no-unfold --no-trailer" -__gitcomp_builtin_log_default=" --quiet --source --use-mailmap --mailmap --decorate-refs= --decorate-refs-exclude= --decorate --no-quiet -- --no-source --no-use-mailmap --no-mailmap --no-decorate-refs --no-decorate-refs-exclude --no-decorate" -__gitcomp_builtin_ls_files_default=" --cached --deleted --modified --others --ignored --stage --killed --directory --eol --empty-directory --unmerged --resolve-undo --exclude= --exclude-from= --exclude-per-directory= --exclude-standard --full-name --recurse-submodules --error-unmatch --with-tree= --abbrev --debug --no-cached -- --no-deleted --no-modified --no-others --no-ignored --no-stage --no-killed --no-directory --no-eol --no-empty-directory --no-unmerged --no-resolve-undo --no-exclude-per-directory --no-recurse-submodules --no-error-unmatch --no-with-tree --no-abbrev --no-debug" -__gitcomp_builtin_ls_remote_default=" --quiet --upload-pack= --tags --heads --refs --get-url --sort= --symref --server-option= --no-quiet -- --no-upload-pack --no-tags --no-heads --no-refs --no-get-url --no-symref --no-server-option" -__gitcomp_builtin_ls_tree_default=" --long --name-only --name-status --full-name --full-tree --abbrev --no-long -- --no-name-only --no-name-status --no-full-name --no-full-tree --no-abbrev" -__gitcomp_builtin_merge_default=" --stat --summary --log --squash --commit --edit --cleanup= --ff --ff-only --rerere-autoupdate --verify-signatures --strategy= --strategy-option= --message= --file --verbose --quiet --abort --quit --continue --allow-unrelated-histories --progress --gpg-sign --autostash --overwrite-ignore --signoff --no-verify --verify -- --no-stat --no-summary --no-log --no-squash --no-commit --no-edit --no-cleanup --no-ff --no-rerere-autoupdate --no-verify-signatures --no-strategy --no-strategy-option --no-message --no-verbose --no-quiet --no-abort --no-quit --no-continue --no-allow-unrelated-histories --no-progress --no-gpg-sign --no-autostash --no-overwrite-ignore --no-signoff" -__gitcomp_builtin_merge_base_default=" --all --octopus --independent --is-ancestor --fork-point --no-all" -__gitcomp_builtin_merge_file_default=" --stdout --diff3 --ours --theirs --union --marker-size= --quiet --no-stdout -- --no-diff3 --no-ours --no-theirs --no-union --no-marker-size --no-quiet" -__gitcomp_builtin_mktree_default=" --missing --batch --no-missing -- --no-batch" -__gitcomp_builtin_multi_pack_index_default=" --object-dir= --progress --batch-size= --no-object-dir -- --no-progress" -__gitcomp_builtin_mv_default=" --verbose --dry-run --no-verbose -- --no-dry-run" -__gitcomp_builtin_name_rev_default=" --name-only --tags --refs= --exclude= --all --stdin --undefined --always --no-name-only -- --no-tags --no-refs --no-exclude --no-all --no-stdin --no-undefined --no-always" -__gitcomp_builtin_notes_default=" --ref= --no-ref" -__gitcomp_builtin_pack_objects_default=" --quiet --progress --all-progress --all-progress-implied --index-version= --max-pack-size= --local --incremental --window= --window-memory= --depth= --reuse-delta --reuse-object --delta-base-offset --threads= --non-empty --revs --unpacked --all --reflog --indexed-objects --stdout --include-tag --keep-unreachable --pack-loose-unreachable --unpack-unreachable --sparse --thin --shallow --honor-pack-keep --keep-pack= --compression= --keep-true-parents --use-bitmap-index --write-bitmap-index --filter= --missing= --exclude-promisor-objects --delta-islands --uri-protocol= --no-quiet -- --no-progress --no-all-progress --no-all-progress-implied --no-local --no-incremental --no-window --no-depth --no-reuse-delta --no-reuse-object --no-delta-base-offset --no-threads --no-non-empty --no-revs --no-stdout --no-include-tag --no-keep-unreachable --no-pack-loose-unreachable --no-unpack-unreachable --no-sparse --no-thin --no-shallow --no-honor-pack-keep --no-keep-pack --no-compression --no-keep-true-parents --no-use-bitmap-index --no-write-bitmap-index --no-filter --no-exclude-promisor-objects --no-delta-islands --no-uri-protocol" -__gitcomp_builtin_pack_refs_default=" --all --prune --no-all -- --no-prune" -__gitcomp_builtin_pickaxe_default=" --incremental --root --show-stats --progress --score-debug --show-name --show-number --porcelain --line-porcelain --show-email --ignore-rev= --ignore-revs-file= --color-lines --color-by-age --minimal --contents= --abbrev --no-incremental -- --no-root --no-show-stats --no-progress --no-score-debug --no-show-name --no-show-number --no-porcelain --no-line-porcelain --no-show-email --no-ignore-rev --no-ignore-revs-file --no-color-lines --no-color-by-age --no-minimal --no-contents --no-abbrev" -__gitcomp_builtin_prune_default=" --dry-run --verbose --progress --expire= --exclude-promisor-objects --no-dry-run -- --no-verbose --no-progress --no-expire --no-exclude-promisor-objects" -__gitcomp_builtin_prune_packed_default=" --dry-run --quiet --no-dry-run -- --no-quiet" -__gitcomp_builtin_pull_default=" --verbose --quiet --progress --recurse-submodules --rebase --stat --log --signoff --squash --commit --edit --cleanup= --ff --ff-only --verify-signatures --autostash --strategy= --strategy-option= --gpg-sign --allow-unrelated-histories --all --append --upload-pack= --force --tags --prune --jobs --dry-run --keep --depth= --shallow-since= --shallow-exclude= --deepen= --unshallow --update-shallow --refmap= --server-option= --ipv4 --ipv6 --negotiation-tip= --show-forced-updates --set-upstream --no-verbose -- --no-quiet --no-progress --no-recurse-submodules --no-rebase --no-stat --no-log --no-signoff --no-squash --no-commit --no-edit --no-cleanup --no-ff --no-verify-signatures --no-autostash --no-strategy --no-strategy-option --no-gpg-sign --no-allow-unrelated-histories --no-all --no-append --no-upload-pack --no-force --no-tags --no-prune --no-jobs --no-dry-run --no-keep --no-depth --no-shallow-since --no-shallow-exclude --no-deepen --no-update-shallow --no-server-option --no-ipv4 --no-ipv6 --no-negotiation-tip --no-show-forced-updates --no-set-upstream" -__gitcomp_builtin_push_default=" --verbose --quiet --repo= --all --mirror --delete --tags --dry-run --porcelain --force --force-with-lease --recurse-submodules= --receive-pack= --exec= --set-upstream --progress --prune --no-verify --follow-tags --signed --atomic --push-option= --ipv4 --ipv6 --verify -- --no-verbose --no-quiet --no-repo --no-all --no-mirror --no-delete --no-tags --no-dry-run --no-porcelain --no-force --no-force-with-lease --no-recurse-submodules --no-receive-pack --no-exec --no-set-upstream --no-progress --no-prune --no-follow-tags --no-signed --no-atomic --no-push-option --no-ipv4 --no-ipv6" -__gitcomp_builtin_range_diff_default=" --creation-factor= --no-dual-color --notes --patch --no-patch --unified --function-context --raw --patch-with-raw --patch-with-stat --numstat --shortstat --dirstat --cumulative --dirstat-by-file --check --summary --name-only --name-status --stat --stat-width= --stat-name-width= --stat-graph-width= --stat-count= --compact-summary --binary --full-index --color --ws-error-highlight= --abbrev --src-prefix= --dst-prefix= --line-prefix= --no-prefix --inter-hunk-context= --output-indicator-new= --output-indicator-old= --output-indicator-context= --break-rewrites --find-renames --irreversible-delete --find-copies --find-copies-harder --no-renames --rename-empty --follow --minimal --ignore-all-space --ignore-space-change --ignore-space-at-eol --ignore-cr-at-eol --ignore-blank-lines --indent-heuristic --patience --histogram --diff-algorithm= --anchored= --word-diff --word-diff-regex= --color-words --color-moved --color-moved-ws= --relative --text --exit-code --quiet --ext-diff --textconv --ignore-submodules --submodule --ita-invisible-in-index --ita-visible-in-index --pickaxe-all --pickaxe-regex --find-object= --diff-filter= --output= --dual-color -- --no-creation-factor --no-notes --no-function-context --no-compact-summary --no-full-index --no-color --no-abbrev --no-find-copies-harder --no-rename-empty --no-follow --no-minimal --no-indent-heuristic --no-color-moved --no-color-moved-ws --no-relative --no-text --no-exit-code --no-quiet --no-ext-diff --no-textconv" -__gitcomp_builtin_read_tree_default=" --index-output= --empty --verbose --trivial --aggressive --reset --prefix= --exclude-per-directory= --dry-run --no-sparse-checkout --debug-unpack --recurse-submodules --quiet --sparse-checkout -- --no-empty --no-verbose --no-trivial --no-aggressive --no-reset --no-dry-run --no-debug-unpack --no-recurse-submodules --no-quiet" -__gitcomp_builtin_rebase_default=" --onto= --keep-base --no-verify --quiet --verbose --no-stat --signoff --committer-date-is-author-date --reset-author-date --ignore-whitespace --whitespace= --force-rebase --no-ff --continue --skip --abort --quit --edit-todo --show-current-patch --apply --merge --interactive --rerere-autoupdate --empty= --autosquash --gpg-sign --autostash --exec= --rebase-merges --fork-point --strategy= --strategy-option= --root --reschedule-failed-exec --reapply-cherry-picks --verify --stat --ff -- --no-onto --no-keep-base --no-quiet --no-verbose --no-signoff --no-committer-date-is-author-date --no-reset-author-date --no-ignore-whitespace --no-whitespace --no-force-rebase --no-rerere-autoupdate --no-autosquash --no-gpg-sign --no-autostash --no-exec --no-rebase-merges --no-fork-point --no-strategy --no-strategy-option --no-root --no-reschedule-failed-exec --no-reapply-cherry-picks" -__gitcomp_builtin_rebase__interactive_default=" --ff --rebase-merges --rebase-cousins --autosquash --signoff --verbose --continue --skip --edit-todo --show-current-patch --shorten-ids --expand-ids --check-todo-list --rearrange-squash --add-exec-commands --onto= --restrict-revision= --squash-onto= --upstream= --head-name= --gpg-sign --strategy= --strategy-opts= --switch-to= --onto-name= --cmd= --rerere-autoupdate --reschedule-failed-exec --no-ff -- --no-rebase-merges --no-rebase-cousins --no-autosquash --no-signoff --no-verbose --no-head-name --no-gpg-sign --no-strategy --no-strategy-opts --no-switch-to --no-onto-name --no-cmd --no-rerere-autoupdate --no-reschedule-failed-exec" -__gitcomp_builtin_receive_pack_default=" --quiet --no-quiet" -__gitcomp_builtin_reflog_default=" --quiet --source --use-mailmap --mailmap --decorate-refs= --decorate-refs-exclude= --decorate --no-quiet -- --no-source --no-use-mailmap --no-mailmap --no-decorate-refs --no-decorate-refs-exclude --no-decorate" -__gitcomp_builtin_remote_default=" --verbose --no-verbose" -__gitcomp_builtin_repack_default=" --quiet --local --write-bitmap-index --delta-islands --unpack-unreachable= --keep-unreachable --window= --window-memory= --depth= --threads= --max-pack-size= --pack-kept-objects --keep-pack= --no-quiet -- --no-local --no-write-bitmap-index --no-delta-islands --no-unpack-unreachable --no-keep-unreachable --no-window --no-window-memory --no-depth --no-threads --no-max-pack-size --no-pack-kept-objects --no-keep-pack" -__gitcomp_builtin_replace_default=" --list --delete --edit --graft --convert-graft-file --raw --format= --no-raw -- --no-format" -__gitcomp_builtin_rerere_default=" --rerere-autoupdate --no-rerere-autoupdate" -__gitcomp_builtin_reset_default=" --quiet --mixed --soft --hard --merge --keep --recurse-submodules --patch --intent-to-add --pathspec-from-file= --pathspec-file-nul --no-quiet -- --no-mixed --no-soft --no-hard --no-merge --no-keep --no-recurse-submodules --no-patch --no-intent-to-add --no-pathspec-from-file --no-pathspec-file-nul" -__gitcomp_builtin_restore_default=" --source= --staged --worktree --ignore-unmerged --overlay --quiet --recurse-submodules --progress --merge --conflict= --ours --theirs --patch --ignore-skip-worktree-bits --pathspec-from-file= --pathspec-file-nul --no-source -- --no-staged --no-worktree --no-ignore-unmerged --no-overlay --no-quiet --no-recurse-submodules --no-progress --no-merge --no-conflict --no-patch --no-ignore-skip-worktree-bits --no-pathspec-from-file --no-pathspec-file-nul" -__gitcomp_builtin_revert_default=" --quit --continue --abort --skip --cleanup= --no-commit --edit --signoff --mainline= --rerere-autoupdate --strategy= --strategy-option= --gpg-sign --commit -- --no-cleanup --no-edit --no-signoff --no-mainline --no-rerere-autoupdate --no-strategy --no-strategy-option --no-gpg-sign" -__gitcomp_builtin_rm_default=" --dry-run --quiet --cached --ignore-unmatch --pathspec-from-file= --pathspec-file-nul --no-dry-run -- --no-quiet --no-cached --no-ignore-unmatch --no-pathspec-from-file --no-pathspec-file-nul" -__gitcomp_builtin_send_pack_default=" --verbose --quiet --receive-pack= --exec= --remote= --all --dry-run --mirror --force --signed --push-option= --progress --thin --atomic --stateless-rpc --stdin --helper-status --force-with-lease --no-verbose -- --no-quiet --no-receive-pack --no-exec --no-remote --no-all --no-dry-run --no-mirror --no-force --no-signed --no-push-option --no-progress --no-thin --no-atomic --no-stateless-rpc --no-stdin --no-helper-status --no-force-with-lease" -__gitcomp_builtin_shortlog_default=" --committer --numbered --summary --email --group= --no-committer -- --no-numbered --no-summary --no-email --no-group" -__gitcomp_builtin_show_default=" --quiet --source --use-mailmap --mailmap --decorate-refs= --decorate-refs-exclude= --decorate --no-quiet -- --no-source --no-use-mailmap --no-mailmap --no-decorate-refs --no-decorate-refs-exclude --no-decorate" -__gitcomp_builtin_show_branch_default=" --all --remotes --color --more --list --no-name --current --sha1-name --merge-base --independent --topo-order --topics --sparse --date-order --reflog --name -- --no-all --no-remotes --no-color --no-more --no-list --no-current --no-sha1-name --no-merge-base --no-independent --no-topo-order --no-topics --no-sparse --no-date-order" -__gitcomp_builtin_show_index_default=" --object-format= --no-object-format" -__gitcomp_builtin_show_ref_default=" --tags --heads --verify --head --dereference --hash --abbrev --quiet --exclude-existing --no-tags -- --no-heads --no-verify --no-head --no-dereference --no-hash --no-abbrev --no-quiet" -__gitcomp_builtin_sparse_checkout_default="" -__gitcomp_builtin_stage_default=" --dry-run --verbose --interactive --patch --edit --force --update --renormalize --intent-to-add --all --ignore-removal --refresh --ignore-errors --ignore-missing --chmod= --pathspec-from-file= --pathspec-file-nul --no-dry-run -- --no-verbose --no-interactive --no-patch --no-edit --no-force --no-update --no-renormalize --no-intent-to-add --no-all --no-ignore-removal --no-refresh --no-ignore-errors --no-ignore-missing --no-chmod --no-pathspec-from-file --no-pathspec-file-nul" -__gitcomp_builtin_stash_default="" -__gitcomp_builtin_status_default=" --verbose --short --branch --show-stash --ahead-behind --porcelain --long --null --untracked-files --ignored --ignore-submodules --column --no-renames --find-renames --renames -- --no-verbose --no-short --no-branch --no-show-stash --no-ahead-behind --no-porcelain --no-long --no-null --no-untracked-files --no-ignored --no-ignore-submodules --no-column" -__gitcomp_builtin_stripspace_default=" --strip-comments --comment-lines" -__gitcomp_builtin_switch_default=" --create= --force-create= --guess --discard-changes --quiet --recurse-submodules --progress --merge --conflict= --detach --track --orphan= --ignore-other-worktrees --no-create -- --no-force-create --no-guess --no-discard-changes --no-quiet --no-recurse-submodules --no-progress --no-merge --no-conflict --no-detach --no-track --no-orphan --no-ignore-other-worktrees" -__gitcomp_builtin_symbolic_ref_default=" --quiet --delete --short --no-quiet -- --no-delete --no-short" -__gitcomp_builtin_tag_default=" --list --delete --verify --annotate --message= --file= --edit --sign --cleanup= --local-user= --force --create-reflog --column --contains --no-contains --merged --no-merged --sort= --points-at --format= --color --ignore-case -- --no-annotate --no-file --no-edit --no-sign --no-cleanup --no-local-user --no-force --no-create-reflog --no-column --no-points-at --no-format --no-color --no-ignore-case" -__gitcomp_builtin_update_index_default=" --ignore-submodules --add --replace --remove --unmerged --refresh --really-refresh --cacheinfo --chmod= --assume-unchanged --no-assume-unchanged --skip-worktree --no-skip-worktree --ignore-skip-worktree-entries --info-only --force-remove --stdin --index-info --unresolve --again --ignore-missing --verbose --clear-resolve-undo --index-version= --split-index --untracked-cache --test-untracked-cache --force-untracked-cache --force-write-index --fsmonitor --fsmonitor-valid --no-fsmonitor-valid -- --no-ignore-submodules --no-add --no-replace --no-remove --no-unmerged --no-ignore-skip-worktree-entries --no-info-only --no-force-remove --no-ignore-missing --no-verbose --no-index-version --no-split-index --no-untracked-cache --no-test-untracked-cache --no-force-untracked-cache --no-force-write-index --no-fsmonitor" -__gitcomp_builtin_update_ref_default=" --no-deref --stdin --create-reflog --deref -- --no-stdin --no-create-reflog" -__gitcomp_builtin_update_server_info_default=" --force --no-force" -__gitcomp_builtin_upload_pack_default=" --stateless-rpc --advertise-refs --strict --timeout= --no-stateless-rpc -- --no-advertise-refs --no-strict --no-timeout" -__gitcomp_builtin_verify_commit_default=" --verbose --raw --no-verbose -- --no-raw" -__gitcomp_builtin_verify_pack_default=" --verbose --stat-only --object-format= --no-verbose -- --no-stat-only --no-object-format" -__gitcomp_builtin_verify_tag_default=" --verbose --raw --format= --no-verbose -- --no-raw --no-format" -__gitcomp_builtin_version_default=" --build-options --no-build-options" -__gitcomp_builtin_whatchanged_default=" --quiet --source --use-mailmap --mailmap --decorate-refs= --decorate-refs-exclude= --decorate --no-quiet -- --no-source --no-use-mailmap --no-mailmap --no-decorate-refs --no-decorate-refs-exclude --no-decorate" -__gitcomp_builtin_write_tree_default=" --missing-ok --prefix= --no-missing-ok -- --no-prefix" -__gitcomp_builtin_send_email_default=" --numbered --no-numbered --signoff --stdout --cover-letter --numbered-files --suffix= --start-number= --reroll-count= --rfc --cover-from-description= --subject-prefix= --output-directory= --keep-subject --no-binary --zero-commit --ignore-if-in-upstream --no-stat --add-header= --to= --cc= --from --in-reply-to= --attach --inline --thread --signature= --base= --signature-file= --quiet --progress --interdiff= --range-diff= --creation-factor= --binary -- --no-numbered --no-signoff --no-stdout --no-cover-letter --no-numbered-files --no-suffix --no-start-number --no-reroll-count --no-cover-from-description --no-zero-commit --no-ignore-if-in-upstream --no-add-header --no-to --no-cc --no-from --no-in-reply-to --no-attach --no-thread --no-signature --no-base --no-signature-file --no-quiet --no-progress --no-interdiff --no-range-diff --no-creation-factor" - -__gitcomp_builtin_get_default () -{ - eval "test -n \"\$${1}_default\" && echo \"\$${1}_default\"" -} - -# This function is equivalent to -# -# __gitcomp "$(git xxx --git-completion-helper) ..." -# -# except that the output is cached. Accept 1-3 arguments: -# 1: the git command to execute, this is also the cache key -# 2: extra options to be added on top (e.g. negative forms) -# 3: options to be excluded -__gitcomp_builtin () -{ - # spaces must be replaced with underscore for multi-word - # commands, e.g. "git remote add" becomes remote_add. - local cmd="$1" - local incl="${2-}" - local excl="${3-}" - - local var=__gitcomp_builtin_"${cmd//-/_}" - local options - eval "options=\${$var-}" - - if [ -z "$options" ]; then - local completion_helper - if [ "$GIT_COMPLETION_SHOW_ALL" = "1" ]; then - completion_helper="--git-completion-helper-all" - else - completion_helper="--git-completion-helper" - fi - completion="$(__git ${cmd/_/ } $completion_helper || - __gitcomp_builtin_get_default $var)" || return - # leading and trailing spaces are significant to make - # option removal work correctly. - options=" $incl $completion " - - for i in $excl; do - options="${options/ $i / }" - done - eval "$var=\"$options\"" - fi - - __gitcomp "$options" -} - -# Variation of __gitcomp_nl () that appends to the existing list of -# completion candidates, COMPREPLY. -__gitcomp_nl_append () -{ - local IFS=$'\n' - __gitcompappend "$1" "${2-}" "${3-$cur}" "${4- }" -} - -# Generates completion reply from newline-separated possible completion words -# by appending a space to all of them. -# It accepts 1 to 4 arguments: -# 1: List of possible completion words, separated by a single newline. -# 2: A prefix to be added to each possible completion word (optional). -# 3: Generate possible completion matches for this word (optional). -# 4: A suffix to be appended to each possible completion word instead of -# the default space (optional). If specified but empty, nothing is -# appended. -__gitcomp_nl () -{ - COMPREPLY=() - __gitcomp_nl_append "$@" -} - -# Fills the COMPREPLY array with prefiltered paths without any additional -# processing. -# Callers must take care of providing only paths that match the current path -# to be completed and adding any prefix path components, if necessary. -# 1: List of newline-separated matching paths, complete with all prefix -# path components. -__gitcomp_file_direct () -{ - local IFS=$'\n' - - COMPREPLY=($1) - - # use a hack to enable file mode in bash < 4 - compopt -o filenames +o nospace 2>/dev/null || - compgen -f /non-existing-dir/ >/dev/null || - true -} - -# Generates completion reply with compgen from newline-separated possible -# completion filenames. -# It accepts 1 to 3 arguments: -# 1: List of possible completion filenames, separated by a single newline. -# 2: A directory prefix to be added to each possible completion filename -# (optional). -# 3: Generate possible completion matches for this word (optional). -__gitcomp_file () -{ - local IFS=$'\n' - - # XXX does not work when the directory prefix contains a tilde, - # since tilde expansion is not applied. - # This means that COMPREPLY will be empty and Bash default - # completion will be used. - __gitcompadd "$1" "${2-}" "${3-$cur}" "" - - # use a hack to enable file mode in bash < 4 - compopt -o filenames +o nospace 2>/dev/null || - compgen -f /non-existing-dir/ >/dev/null || - true -} - -# Execute 'git ls-files', unless the --committable option is specified, in -# which case it runs 'git diff-index' to find out the files that can be -# committed. It return paths relative to the directory specified in the first -# argument, and using the options specified in the second argument. -__git_ls_files_helper () -{ - if [ "$2" == "--committable" ]; then - __git -C "$1" -c core.quotePath=false diff-index \ - --name-only --relative HEAD -- "${3//\\/\\\\}*" - else - # NOTE: $2 is not quoted in order to support multiple options - __git -C "$1" -c core.quotePath=false ls-files \ - --exclude-standard $2 -- "${3//\\/\\\\}*" - fi -} - - -# __git_index_files accepts 1 or 2 arguments: -# 1: Options to pass to ls-files (required). -# 2: A directory path (optional). -# If provided, only files within the specified directory are listed. -# Sub directories are never recursed. Path must have a trailing -# slash. -# 3: List only paths matching this path component (optional). -__git_index_files () -{ - local root="$2" match="$3" - - __git_ls_files_helper "$root" "$1" "${match:-?}" | - awk -F / -v pfx="${2//\\/\\\\}" '{ - paths[$1] = 1 - } - END { - for (p in paths) { - if (substr(p, 1, 1) != "\"") { - # No special characters, easy! - print pfx p - continue - } - - # The path is quoted. - p = dequote(p) - if (p == "") - continue - - # Even when a directory name itself does not contain - # any special characters, it will still be quoted if - # any of its (stripped) trailing path components do. - # Because of this we may have seen the same directory - # both quoted and unquoted. - if (p in paths) - # We have seen the same directory unquoted, - # skip it. - continue - else - print pfx p - } - } - function dequote(p, bs_idx, out, esc, esc_idx, dec) { - # Skip opening double quote. - p = substr(p, 2) - - # Interpret backslash escape sequences. - while ((bs_idx = index(p, "\\")) != 0) { - out = out substr(p, 1, bs_idx - 1) - esc = substr(p, bs_idx + 1, 1) - p = substr(p, bs_idx + 2) - - if ((esc_idx = index("abtvfr\"\\", esc)) != 0) { - # C-style one-character escape sequence. - out = out substr("\a\b\t\v\f\r\"\\", - esc_idx, 1) - } else if (esc == "n") { - # Uh-oh, a newline character. - # We cannot reliably put a pathname - # containing a newline into COMPREPLY, - # and the newline would create a mess. - # Skip this path. - return "" - } else { - # Must be a \nnn octal value, then. - dec = esc * 64 + \ - substr(p, 1, 1) * 8 + \ - substr(p, 2, 1) - out = out sprintf("%c", dec) - p = substr(p, 3) - } - } - # Drop closing double quote, if there is one. - # (There is not any if this is a directory, as it was - # already stripped with the trailing path components.) - if (substr(p, length(p), 1) == "\"") - out = out substr(p, 1, length(p) - 1) - else - out = out p - - return out - }' -} - -# __git_complete_index_file requires 1 argument: -# 1: the options to pass to ls-file -# -# The exception is --committable, which finds the files appropriate commit. -__git_complete_index_file () -{ - local dequoted_word pfx="" cur_ - - __git_dequote "$cur" - - case "$dequoted_word" in - ?*/*) - pfx="${dequoted_word%/*}/" - cur_="${dequoted_word##*/}" - ;; - *) - cur_="$dequoted_word" - esac - - __gitcomp_file_direct "$(__git_index_files "$1" "$pfx" "$cur_")" -} - -# Lists branches from the local repository. -# 1: A prefix to be added to each listed branch (optional). -# 2: List only branches matching this word (optional; list all branches if -# unset or empty). -# 3: A suffix to be appended to each listed branch (optional). -__git_heads () -{ - local pfx="${1-}" cur_="${2-}" sfx="${3-}" - - __git for-each-ref --format="${pfx//\%/%%}%(refname:strip=2)$sfx" \ - "refs/heads/$cur_*" "refs/heads/$cur_*/**" -} - -# Lists branches from remote repositories. -# 1: A prefix to be added to each listed branch (optional). -# 2: List only branches matching this word (optional; list all branches if -# unset or empty). -# 3: A suffix to be appended to each listed branch (optional). -__git_remote_heads () -{ - local pfx="${1-}" cur_="${2-}" sfx="${3-}" - - __git for-each-ref --format="${pfx//\%/%%}%(refname:strip=2)$sfx" \ - "refs/remotes/$cur_*" "refs/remotes/$cur_*/**" -} - -# Lists tags from the local repository. -# Accepts the same positional parameters as __git_heads() above. -__git_tags () -{ - local pfx="${1-}" cur_="${2-}" sfx="${3-}" - - __git for-each-ref --format="${pfx//\%/%%}%(refname:strip=2)$sfx" \ - "refs/tags/$cur_*" "refs/tags/$cur_*/**" -} - -# List unique branches from refs/remotes used for 'git checkout' and 'git -# switch' tracking DWIMery. -# 1: A prefix to be added to each listed branch (optional) -# 2: List only branches matching this word (optional; list all branches if -# unset or empty). -# 3: A suffix to be appended to each listed branch (optional). -__git_dwim_remote_heads () -{ - local pfx="${1-}" cur_="${2-}" sfx="${3-}" - local fer_pfx="${pfx//\%/%%}" # "escape" for-each-ref format specifiers - - # employ the heuristic used by git checkout and git switch - # Try to find a remote branch that cur_es the completion word - # but only output if the branch name is unique - __git for-each-ref --format="$fer_pfx%(refname:strip=3)$sfx" \ - --sort="refname:strip=3" \ - "refs/remotes/*/$cur_*" "refs/remotes/*/$cur_*/**" | \ - uniq -u -} - -# Lists refs from the local (by default) or from a remote repository. -# It accepts 0, 1 or 2 arguments: -# 1: The remote to list refs from (optional; ignored, if set but empty). -# Can be the name of a configured remote, a path, or a URL. -# 2: In addition to local refs, list unique branches from refs/remotes/ for -# 'git checkout's tracking DWIMery (optional; ignored, if set but empty). -# 3: A prefix to be added to each listed ref (optional). -# 4: List only refs matching this word (optional; list all refs if unset or -# empty). -# 5: A suffix to be appended to each listed ref (optional; ignored, if set -# but empty). -# -# Use __git_complete_refs() instead. -__git_refs () -{ - local i hash dir track="${2-}" - local list_refs_from=path remote="${1-}" - local format refs - local pfx="${3-}" cur_="${4-$cur}" sfx="${5-}" - local match="${4-}" - local fer_pfx="${pfx//\%/%%}" # "escape" for-each-ref format specifiers - - __git_find_repo_path - dir="$__git_repo_path" - - if [ -z "$remote" ]; then - if [ -z "$dir" ]; then - return - fi - else - if __git_is_configured_remote "$remote"; then - # configured remote takes precedence over a - # local directory with the same name - list_refs_from=remote - elif [ -d "$remote/.git" ]; then - dir="$remote/.git" - elif [ -d "$remote" ]; then - dir="$remote" - else - list_refs_from=url - fi - fi - - if [ "$list_refs_from" = path ]; then - if [[ "$cur_" == ^* ]]; then - pfx="$pfx^" - fer_pfx="$fer_pfx^" - cur_=${cur_#^} - match=${match#^} - fi - case "$cur_" in - refs|refs/*) - format="refname" - refs=("$match*" "$match*/**") - track="" - ;; - *) - for i in HEAD FETCH_HEAD ORIG_HEAD MERGE_HEAD REBASE_HEAD; do - case "$i" in - $match*) - if [ -e "$dir/$i" ]; then - echo "$pfx$i$sfx" - fi - ;; - esac - done - format="refname:strip=2" - refs=("refs/tags/$match*" "refs/tags/$match*/**" - "refs/heads/$match*" "refs/heads/$match*/**" - "refs/remotes/$match*" "refs/remotes/$match*/**") - ;; - esac - __git_dir="$dir" __git for-each-ref --format="$fer_pfx%($format)$sfx" \ - "${refs[@]}" - if [ -n "$track" ]; then - __git_dwim_remote_heads "$pfx" "$match" "$sfx" - fi - return - fi - case "$cur_" in - refs|refs/*) - __git ls-remote "$remote" "$match*" | \ - while read -r hash i; do - case "$i" in - *^{}) ;; - *) echo "$pfx$i$sfx" ;; - esac - done - ;; - *) - if [ "$list_refs_from" = remote ]; then - case "HEAD" in - $match*) echo "${pfx}HEAD$sfx" ;; - esac - __git for-each-ref --format="$fer_pfx%(refname:strip=3)$sfx" \ - "refs/remotes/$remote/$match*" \ - "refs/remotes/$remote/$match*/**" - else - local query_symref - case "HEAD" in - $match*) query_symref="HEAD" ;; - esac - __git ls-remote "$remote" $query_symref \ - "refs/tags/$match*" "refs/heads/$match*" \ - "refs/remotes/$match*" | - while read -r hash i; do - case "$i" in - *^{}) ;; - refs/*) echo "$pfx${i#refs/*/}$sfx" ;; - *) echo "$pfx$i$sfx" ;; # symbolic refs - esac - done - fi - ;; - esac -} - -# Completes refs, short and long, local and remote, symbolic and pseudo. -# -# Usage: __git_complete_refs [