From 27f997132f93501772291fd3427085f02f607e51 Mon Sep 17 00:00:00 2001 From: Arturo Volpe Date: Sat, 27 Jun 2020 12:05:35 -0400 Subject: [PATCH] feat: Upgrade nvim config Signed-off-by: Arturo Volpe --- .tmux.conf | 2 + matterhon_notification.sh | 61 +++++ vim/.nvimrc | 516 +++++++++++++++++--------------------- vim/.vimrc.local | 1 + zsh/.zshrc | 25 +- 5 files changed, 317 insertions(+), 288 deletions(-) create mode 100755 matterhon_notification.sh diff --git a/.tmux.conf b/.tmux.conf index 8d8f57f..27cb000 100644 --- a/.tmux.conf +++ b/.tmux.conf @@ -34,6 +34,8 @@ set -g @tpm_plugins ' \ tmux-plugins/tmux-sensible \ tmux-plugins/tmux-pain-control \ Morantron/tmux-fingers \ + tmux-plugins/tmux-urlview \ + tmux-plugins/tmux-yank \ ' # Other examples: # github_username/plugin_name \ diff --git a/matterhon_notification.sh b/matterhon_notification.sh new file mode 100755 index 0000000..00cde00 --- /dev/null +++ b/matterhon_notification.sh @@ -0,0 +1,61 @@ +#!/usr/bin/env bash + +# Sample shell script for using notify-send with matterhorn This script +# works on Linux only. It depends on the 'notify-send' command. + +# Positional parameters passed to this script by Matterhorn: +mentioned="${1?}" +sender="${2?}" +message="${3?}" + +# Script options + +# notify_URGENCIES +# +# The first word is the urgency for items where you are not mentioned. +# The second word is the urgency for items where you are mentioned. +# Use "none" to not be notified; otherwise use "low", "normal", or +# "critical". +notify_URGENCIES="normal normal" + +# The desktop notification category +notify_CATEGORY="im.received" + +# Notification header +notify_HEAD="$sender" + +# Notification body +notify_BODY="$message" + +getUrgencyHelper() { + if [ "$mentioned" == "1" ] + then + echo "$1" + else + if [ "$mentioned" == "2" ] + then + echo "$2" + else + echo "Error: mentioned value '$mentioned' unexpected" > /dev/stderr + exit 1 + fi + fi +} + +getUrgency() { + # We are using arguments as a poor man's bash array for portability + # shellcheck disable=SC2086 + getUrgencyHelper $notify_URGENCIES +} + +urgency=$(getUrgency) + +printf -v NOW '%(%Y-%m-%d %H:%M:%S)T' -1 + +echo "$NOW: $@" >> ~/.matterhon_notifications + +if [ ! -z "$urgency" ] +then + test "$urgency" = "none" || + terminal-notifier -subtitle "$notify_HEAD:" -title "Matterhorn" -message "$notify_BODY" +fi diff --git a/vim/.nvimrc b/vim/.nvimrc index b8e1f80..5d52944 100644 --- a/vim/.nvimrc +++ b/vim/.nvimrc @@ -4,315 +4,267 @@ language en_US let g:python2_host_prog = '/usr/local/bin/python' let g:python3_host_prog = '/usr/local/bin/python3' -let mapleader = "\" " Space the new leader +let mapleader = " " " Space the new leader +noremap K i +map dt :%s/\s\+$//g:w +set foldlevel=20 " +" +" Plugins config { +call plug#begin('~/.vim/plugged') + +Plug 'tpope/vim-fugitive' +Plug 'tpope/vim-surround' +Plug 'tpope/vim-unimpaired' + + +Plug 'neoclide/coc.nvim', {'branch': 'release'} +Plug 'leafgarland/typescript-vim' +Plug 'peitalin/vim-jsx-typescript', {'for': 'typescript.tsx'} +Plug 'w0ng/vim-hybrid' +Plug 'NLKNguyen/papercolor-theme' +Plug 'vimwiki/vimwiki' +Plug 'junegunn/fzf', { 'do': './install --bin' } +Plug 'junegunn/fzf.vim' +Plug 'preservim/nerdcommenter' +Plug 'aklt/plantuml-syntax' +Plug 'chrisbra/csv.vim' + +call plug#end() +" } +" Useful configs { +set smartcase " allows search to be case insensitive until a upper case appear +set scrolloff=3 " always show 3 lines under the cursor +set tabstop=8 softtabstop=0 expandtab shiftwidth=4 smarttab " use a tab as four spaces +set clipboard=unnamed -" Plugin: dein { -"dein Scripts----------------------------- -if &compatible - set nocompatible " Be iMproved -endif - -" Required: -set runtimepath+=~/.cache/dein/repos/github.com/Shougo/dein.vim - -" Required: -if dein#load_state('~/.cache/dein') - call dein#begin('~/.cache/dein') - - " Let dein manage dein - " Required: - call dein#add('~/.cache/dein') - - " Add or remove your plugins here: - call dein#add('flazz/vim-colorschemes') - "call dein#add('Shougo/vimproc.vim', {'build' : 'make'}) - call dein#add('tpope/vim-fugitive') - call dein#add('tpope/vim-unimpaired') - call dein#add('vimwiki/vimwiki') - call dein#add('scrooloose/syntastic') - call dein#add('godlygeek/tabular') - call dein#add('scrooloose/nerdcommenter') - - "call dein#add('leafgarland/typescript-vim') - "call dein#add('Quramy/tsuquyomi') - call dein#add('Shougo/deoplete.nvim') - if !has('nvim') - call dein#add('roxma/nvim-yarp') - call dein#add('roxma/vim-hug-neovim-rpc') - endif - call dein#add('Shougo/denite.nvim') +set fileencodings=ucs-bom,utf8,prc +set spell +set spelllang=es,en +set nospell +set history=10000 +set mouse= " Disable mouse - call dein#add('Shougo/defx.nvim') - if !has('nvim') - call dein#add('roxma/nvim-yarp') - call dein#add('roxma/vim-hug-neovim-rpc') - endif - call dein#add('HerringtonDarkholme/yats.vim') - call dein#add('mhartington/nvim-typescript', {'build': './install.sh'}) - - call dein#add('vim-airline/vim-airline') - call dein#add('vim-airline/vim-airline-themes') - - call dein#add('tpope/vim-surround') - call dein#add('ctrlpvim/ctrlp.vim') - call dein#add('mhinz/vim-startify') - call dein#add('godlygeek/tabular') - call dein#add('PProvost/vim-markdown-jekyll') - call dein#add('tacahiroy/ctrlp-funky') - - " Required: - call dein#end() - call dein#save_state() -endif - -let g:deoplete#enable_at_startup = 1 -" Required: -filetype plugin indent on -syntax enable - -" } End dein Scripts------------------------- -" Plugin: ctrp { -let g:ctrlp_match_window = 'bottom,order:ttb,min:5,max:10,results:10' -"let g:ctrlp_extensions = ['funky', 'yankring'] -let g:ctrlp_extensions = ['funky'] -" } -" Plugin: ctrp-funky { -let g:ctrlp_funky_syntax_highlight = 1 -let g:ctrlp_funky_use_cache = 1 -nnoremap fu :CtrlPFunky -nnoremap fU :execute 'CtrlPFunky ' . expand('') +"} +" Theme { +set background=dark +set termguicolors +colorscheme hybrid + +function! ToggleSchema() + if "dark" == &background + set background=light + colorscheme PaperColor + set background=light + else + set background=dark + colorscheme hybrid + set background=dark + endif +endfunction +nnoremap :call ToggleSchema() + +function! FixColorscheme() " { + "hi! clear SpellBad + hi! SpellBad cterm=underline,bold ctermfg=none ctermbg=none + + hi! Visual ctermfg=240 ctermbg=250 guifg=white guibg=white + + " Transparent background + hi! Normal ctermbg=none + " Match pairing http://stackoverflow.com/questions/10746750/set-vim-bracket-highlighting-colors + hi! MatchParen cterm=bold ctermbg=none ctermfg=magenta +endfunction + " } -" Plugin: Syntastic { -set statusline+=%#warningmsg# -set statusline+=%{SyntasticStatuslineFlag()} -set statusline+=%* +"} +" Plugin: coc { +" +" if hidden is not set, TextEdit might fail. +set hidden -let g:syntastic_java_checkers = [''] +" Some servers have issues with backup files, see #649 +"set nobackup +"set nowritebackup -let g:airline#extensions#syntastic#enabled = 0 -let g:syntastic_always_populate_loc_list = 1 -let g:syntastic_auto_loc_list = 1 -let g:syntastic_check_on_open = 1 -let g:syntastic_check_on_wq = 0 +" Better display for messages +set cmdheight=2 -" } -" Plugin: Tabular { -" -" nmap a& :Tabularize /& -" vmap a& :Tabularize /& -" nmap a= :Tabularize /^[^=]*\zs= -" vmap a= :Tabularize /^[^=]*\zs= -" nmap a=> :Tabularize /=> -" vmap a=> :Tabularize /=> -" nmap a: :Tabularize /: -" vmap a: :Tabularize /: -" nmap a:: :Tabularize /:\zs -" vmap a:: :Tabularize /:\zs -" nmap a, :Tabularize /, -" vmap a, :Tabularize /, -" nmap a,, :Tabularize /,\zs -" vmap a,, :Tabularize /,\zs -" nmap a :Tabularize / -" vmap a :Tabularize / -" } -" Plugin: Startify { -"" Cabecera y pie: - -function! s:filter_header(lines) abort - let longest_line = max(map(copy(a:lines), 'strwidth(v:val)')) - let centered_lines = map(copy(a:lines), - \ 'repeat(" ", (&columns / 2) - (longest_line / 2)) . v:val') - return centered_lines -endfunction +" You will have bad experience for diagnostic messages when it's default 4000. +set updatetime=300 -let g:startify_custom_header = s:filter_header(map(split(system('fortune | cowsay -f $(ls /usr/local/Cellar/cowsay/3.04/share/cows/*.cow | gshuf -n1) | lolcat'), '\n'), '" ". v:val')) - -let g:startify_bookmarks = [ '~/.vimrc.local','~/.vimrc.bundles.local' ] -autocmd User Startified setlocal cursorline -let g:startify_skiplist = [ - \ 'COMMIT_EDITMSG', - \ '.vimrc.local', - \ '.vimrc.bundles.local' - \ ] -"" Tema -highlight StartifyBracket ctermfg=240 -highlight StartifyFooter ctermfg=114 -highlight StartifyHeader ctermfg=114 -highlight StartifyNumber ctermfg=215 -highlight StartifyPath ctermfg=245 -highlight StartifySlash ctermfg=240 -highlight StartifySpecial ctermfg=240 +" don't give |ins-completion-menu| messages. +set shortmess+=c -" } -" Plugin: NerdCommenter { +" always show signcolumns +set signcolumn=yes -let g:NERDCustomDelimiters = { - \ 'rest': { 'left': '# ' }, - \ } +" Use tab for trigger completion with characters ahead and navigate. +" Use command ':verbose imap ' to make sure tab is not mapped by other plugin. +inoremap + \ pumvisible() ? "\" : + \ check_back_space() ? "\" : + \ coc#refresh() +inoremap pumvisible() ? "\" : "\" -" } -" Plugin: Ctrlp { -let g:ctrlp_user_command = 'ag %s -l --nocolor -g ""' +function! s:check_back_space() abort + let col = col('.') - 1 + return !col || getline('.')[col - 1] =~# '\s' +endfunction -" } -" Plugin: Airline { -let g:airline#extensions#syntastic#enabled = 0 -let g:airline#extensions#tagbar#enabled = 0 -let g:airline#extensions#hunks#enabled = 0 -let g:airline#extensions#bufferline#enabled = 0 -let g:airline#extensions#tabline#enabled = 1 -let g:airline#extensions#tabline#buffer_idx_mode = 1 - -let g:airline_theme='badwolf' -let g:airline_powerline_fonts = 1 - - -let g:indent_guides_enable_on_vim_startup = 0 - -if !exists('g:airline_symbols') - let g:airline_symbols = {} -endif -let g:airline_symbols.space = "\ua0" -let g:airline_detect_spell=0 -let g:airline_left_sep = '' -let g:airline_left_alt_sep = '' -let g:airline_right_sep = '' -let g:airline_right_alt_sep = '' -let g:airline_symbols.branch = '' -let g:airline_symbols.readonly = '' -let g:airline_symbols.linenr = '' - - -call airline#parts#define_raw('linenr', '%l') -call airline#parts#define_raw('linet', '%L') -call airline#parts#define_accent('linenr', 'bold') -call airline#parts#define_accent('linet', 'bold') -"let g:airline_section_a = airline#section#create('') -let g:airline_section_b = airline#section#create('') -let g:airline_section_y = airline#section#create('') -let g:airline_section_z = airline#section#create(['%3p%% ', 'linenr', '/', 'linet', ':%c']) -" } -" ColorScheme { -colorscheme hybrid -set background=dark -hi clear SpellBad -hi SpellBad cterm=underline,bold ctermfg=red -" Transparent background -hi Normal ctermbg=none -hi Visual term=reverse cterm=reverse guibg=Grey +" Use to trigger completion. +inoremap coc#refresh() + +" Use to confirm completion, `u` means break undo chain at current position. +" Coc only does snippet and additional edit on confirm. +inoremap pumvisible() ? "\" : "\u\" +" Or use `complete_info` if your vim support it, like: +" inoremap complete_info()["selected"] != "-1" ? "\" : "\u\" + +" Use `[g` and `]g` to navigate diagnostics +"nmap [g (coc-diagnostic-prev) +"nmap ]g (coc-diagnostic-next) +nmap (coc-diagnostic-next) +nmap (coc-diagnostic-prev) + +" Remap keys for gotos +nmap gd (coc-definition) +nmap gy (coc-type-definition) +nmap gi (coc-implementation) +nmap gr (coc-references) + +" Use K to show documentation in preview window +"nnoremap K :call show_documentation() + +function! s:show_documentation() + if (index(['vim','help'], &filetype) >= 0) + execute 'h '.expand('') + else + call CocAction('doHover') + endif +endfunction -set cursorline -" } -" Per file configuration { -" GIT { -au FileType gitcommit set fileencoding=utf8 -set diffopt+=vertical -set scrolloff=10 +" Highlight symbol under cursor on CursorHold +autocmd CursorHold * silent call CocActionAsync('highlight') + +" Remap for rename current word +nmap rn (coc-rename) + +" Remap for format selected region +xmap f (coc-format-selected) +nmap f (coc-format-selected) + +augroup mygroup + autocmd! + " Setup formatexpr specified filetype(s). + autocmd FileType typescript,json setl formatexpr=CocAction('formatSelected') + autocmd FileType typescript,json,typescript.tsx,css,scss setl foldmethod=syntax + " Update signature help on jump placeholder + autocmd User CocJumpPlaceholder call CocActionAsync('showSignatureHelp') +augroup end + +" Remap for do codeAction of selected region, ex: `aap` for current paragraph +xmap a (coc-codeaction-selected) +nmap a (coc-codeaction-selected) + +" Remap for do codeAction of current line +nmap ac (coc-codeaction) +" Fix autofix problem of current line +nmap qf (coc-fix-current) + +" Create mappings for function text object, requires document symbols feature of languageserver. +xmap if (coc-funcobj-i) +xmap af (coc-funcobj-a) +omap if (coc-funcobj-i) +omap af (coc-funcobj-a) + +" Use for select selections ranges, needs server support, like: coc-tsserver, coc-python +nmap (coc-range-select) +xmap (coc-range-select) + +" Use `:Format` to format current buffer +command! -nargs=0 Format :call CocAction('format') + +" Use `:Fold` to fold current buffer +command! -nargs=? Fold :call CocAction('fold', ) + +" use `:OR` for organize import of current buffer +command! -nargs=0 OR :call CocAction('runCommand', 'editor.action.organizeImport') + +" Add status line support, for integration with other plugin, checkout `:h coc-status` +set statusline^=%{coc#status()}%{get(b:,'coc_current_function','')} + +" Using CocList +" Show all diagnostics +"nnoremap a :CocList diagnostics +" Manage extensions +"nnoremap e :CocList extensions +" Show commands +"nnoremap c :CocList commands +" Find symbol of current document +"nnoremap o :CocList outline +" Search workspace symbols +"nnoremap s :CocList -I symbols +" Do default action for next item. +"nnoremap j :CocNext +" Do default action for previous item. +"nnoremap k :CocPrev +" Resume latest coc list +"nnoremap p :CocListResume " } -" Tex{ +" Plugin: Vimwiki { +" +let wikiroot = '~/.dropbox_data/Dropbox/' +let wiki = {} +let wiki.path = wikiroot . '/wiki/' +let wiki.path_html = wikiroot . '/wiki_html/' +let wiki.auto_export = 1 +let wiki.nested_syntaxes = {'python': 'python', 'c++': 'cpp', 'sql' : 'sql'} +let wiki.template_path = wiki.path . '/template/' +let wiki.template_default = 'default' +let wiki.template_ext = '.htm' +let wiki.auto_toc = 1 + +let g:vimwiki_list = [ wiki ] +let g:vimwiki_rxTableSep = '|' +let g:vimwiki_folding = 'expr' -" } -" Vimwiki { -" See http://stackoverflow.com/questions/1313171/vim-combining-autocmd augroup VimwikiAutowrite au FileType vimwiki set nobackup au FileType vimwiki set nowritebackup au FileType vimwiki set noswapfile + au FileType vimwiki syntax on au FileType vimwiki set autowrite + au FileType vimwiki set spell + au FileType vimwiki hi clear SpellBad + au FileType vimwiki hi SpellBad cterm=underline ctermfg=red + au FileType vimwiki hi Visual term=reverse cterm=reverse guibg=Grey au FocusLost *.wiki :w - au FileType vimwiki set autowrite + au FileType vimwiki set expandtab + au FileType vimwiki set tabstop=2 + au FileType vimwiki set softtabstop=2 + au FileType vimwiki set shiftwidth=2 + au FileType vimwiki setlocal number + au FileType vimwiki setlocal relativenumber + au FileType vimwiki AirlineRefresh + au FileType * call FixColorscheme() augroup END -let wikiroot = '~/.dropbox/Dropbox/' -let wiki = {} -let wiki.path = wikiroot . '/wiki/' -let wiki.path_html = wikiroot . '/wiki_html/' -let wiki.auto_export = 1 -let wiki.nested_syntaxes = {'python': 'python', 'c++': 'cpp', 'sql' : 'sql'} -let wiki.template_path = wiki.path . '/template/' -let wiki.template_default = 'default' -let wiki.template_ext = '.htm' - -let g:vimwiki_list = [ wiki ] -let g:vimwiki_rxTableSep = '|' -let g:vimwiki_folding = 'expr' -"} - -" Markdown { -au FileType markdown set wrap -au FileType markdown set textwidth=80 -au FileType markdown noremap :PreviewMarkdown -" } -" JavaScript { -au FileType js set shiftwidth=2 -au FileType typescript set shiftwidth=4 " } -au BufRead,BufNewFile .vrapperrc setfiletype vim -" } -"Clipboard configuration { -set clipboard=unnamed,unnamedplus -imap p -"} -" General { - -set langmenu=en_US -set virtualedit=onemore " Allow for cursor beyond last character -set history=10000 " Store a ton of history (default is 20) -set spell " Spell checking on -set spelllang=es,en -set hidden " Allow buffer switching without saving -set iskeyword-=. " '.' is an end of word designator -set iskeyword-=# " '#' is an end of word designator -set iskeyword-=- " '-' is an end of word designator -set splitright -set splitbelow -set autochdir - -set mouse= " Disable mouse -set shiftwidth=4 " Use indents of 4 spaces -set expandtab " Tabs are spaces, not tabs -set tabstop=4 " An indentation every four columns -set nolist " Hide not printable characters -set softtabstop=4 " Let backspace delete indent -set nopaste -set nonumber -set ignorecase - -set fileencodings=ucs-bom,utf8,prc - -" Undo { -set undodir=~/.nvimundo -set undofile -set undolevels=1000 "maximum number of changes that can be undone -set undoreload=10000 "maximum number lines to save for undo on a buffer reload -" } -" Maps útiles { -nnoremap K i - -" Navegación { -set pastetoggle= -imap jj -imap jw :wa -imap jk :w -imap kj :w -map gs :write -autocmd FileType typescript nnoremap :TSDef -autocmd FileType typescriptreact nnoremap :TSDef +" Plugin: FZF { +nn :Files -" } -" Resize options { -nnoremap eh :exe "resize " . (winheight(0) * 3/2) -nnoremap rh :exe "resize " . (winheight(0) * 2/3) -nnoremap ev :exe "vertical resize " . (winheight(0) * 3/2) -nnoremap rv :exe "vertical resize " . (winheight(0) * 2/3) -" } -"Ejecuta el archivo actual con r { -nnoremap r :!%:p -command! -nargs=* -complete=shellcmd R new | setlocal buftype=nofile bufhidden=hide noswapfile | r ! +"} +" Plugin: NerdCommenter { -" } +let g:NERDCustomDelimiters = { + \ 'rest': { 'left': '# ' }, + \ 'puml': { 'left': "' " }, +\ } " } +" +set ic " allows search to be case insensitive until a upper case appear +set smartcase " allows search to be case insensitive until a upper case appear diff --git a/vim/.vimrc.local b/vim/.vimrc.local index 5970617..411bdc1 100644 --- a/vim/.vimrc.local +++ b/vim/.vimrc.local @@ -202,6 +202,7 @@ augroup MarkdownConfiguration au FileType markdown set spell au FileType markdown hi clear SpellBad au FileType markdown hi SpellBad cterm=underline ctermfg=red + au FileType markdown let g:markdown_folding = 1 augroup END " } " Js { diff --git a/zsh/.zshrc b/zsh/.zshrc index 6460075..c1decd4 100644 --- a/zsh/.zshrc +++ b/zsh/.zshrc @@ -40,13 +40,13 @@ COMPLETION_WAITING_DOTS="true" # Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*) # Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/ # Example format: plugins=(rails git textmate ruby lighthouse) -plugins=(zsh-syntax-highlighting alias-tips mvn git docker docker-compose zsh-autosuggestions) +plugins=(zsh-syntax-highlighting alias-tips mvn git docker docker-compose zsh-autosuggestions gpg-agent) fpath=($HOME/.oh-my-zsh/custom/autocomplete/zsh-completions-master/src/ $fpath) source $ZSH/oh-my-zsh.sh -export EDITOR=vim +export EDITOR=nvim # Customize to your needs... @@ -72,21 +72,34 @@ export FZF_DEFAULT_COMMAND='ag -l -g ""' export ANDROID_HOME=~/Library/Android/sdk/ -export PATH="/Users/arturovolpe/.gem/ruby/2.4.0:/usr/local/bin:$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting +#export PATH="/Users/arturovolpe/.gem/ruby/2.4.0:/usr/local/bin:$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE=fg=247 -export LC_ALL=es_ES.UTF-8 # The next line updates PATH for the Google Cloud SDK. -if [ -f '/Users/arturovolpe/.programs/google-cloud-sdk/path.zsh.inc' ]; then source '/Users/arturovolpe/.programs/google-cloud-sdk/path.zsh.inc'; fi +#if [ -f '/Users/arturovolpe/.programs/google-cloud-sdk/path.zsh.inc' ]; then source '/Users/arturovolpe/.programs/google-cloud-sdk/path.zsh.inc'; fi # The next line enables shell command completion for gcloud. -if [ -f '/Users/arturovolpe/.programs/google-cloud-sdk/completion.zsh.inc' ]; then source '/Users/arturovolpe/.programs/google-cloud-sdk/completion.zsh.inc'; fi +#if [ -f '/Users/arturovolpe/.programs/google-cloud-sdk/completion.zsh.inc' ]; then source '/Users/arturovolpe/.programs/google-cloud-sdk/completion.zsh.inc'; fi export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home export PATH="${ANDROID_HOME}emulator/:${ANDROID_HOME}platform-tools/:/usr/local/sbin:/usr/local/bin:$HOME/.yarn/bin:$HOME/programs/flutter/bin:$HOME/.config/yarn/global/node_modules/.bin:$PATH" test -e "${HOME}/.iterm2_shell_integration.zsh" && source "${HOME}/.iterm2_shell_integration.zsh" +test -e "${HOME}/programs/forgit/forgit.plugin.zsh" && source "${HOME}/programs/forgit/forgit.plugin.zsh" + HISTCONTROL=ignoreboth + +source /Users/arturovolpe/Library/Preferences/org.dystroy.broot/launcher/bash/br + +#export LC_ALL=en_US +export LANG=en_US.UTF-8 +export LC_ALL=en_US.UTF-8 +export LC_COLLATE=en_US.UTF-8 +export LC_CTYPE=en_US.UTF-8 +export LC_MESSAGES=en_US.UTF-8 +export LC_MONETARY=en_US.UTF-8 +export LC_NUMERIC=en_US.UTF-8 +export LC_TIME=en_US.UTF-8