Skip to content

Instantly share code, notes, and snippets.

@erickthered
Last active May 18, 2023 01:43
Show Gist options
  • Save erickthered/0c1b0ec33ad51f84dcead84364bc0b33 to your computer and use it in GitHub Desktop.
Save erickthered/0c1b0ec33ad51f84dcead84364bc0b33 to your computer and use it in GitHub Desktop.
OpenBSD dev environment set up
# save this file as ~/.config/neovim/coc-settings.json and remove this line
{
"eslint.autoFixOnSave": true,
"eslint.filetypes": ["javascript", "javascriptreact", "typescript", "typescriptreact"],
"coc.preferences.formatOnSaveFiletypes": [
"javascript",
"javascriptreact",
"typescript",
"typescriptreact"
],
"tsserver.formatOnType": true,
"coc.preferences.formatOnType": true
}
# save this file as ~/.config/neovim/init.vim
call plug#begin('~/.vim/plugged')
Plug 'preservim/nerdtree'
Plug 'neoclide/coc.nvim', {'branch': 'release'}
Plug 'tsony-tsonev/nerdtree-git-plugin'
Plug 'sheerun/vim-polyglot'
Plug 'ryanoasis/vim-devicons'
Plug 'tpope/vim-fugitive'
Plug 'vim-airline/vim-airline'
Plug 'ctrlpvim/ctrlp.vim'
Plug 'christoomey/vim-tmux-navigator'
Plug 'morhetz/gruvbox'
Plug 'pineapplegiant/spaceduck', { 'branch': 'main' }
Plug 'kristijanhusak/vim-hybrid-material'
call plug#end()
set encoding=UTF-8
"Changing default NERDTree arrows
" we will add keybinds below this comment.
"Changing default NERDTree arrows
let g:webdevicons_enable = 1
let g:webdevicons_enable_nerdtree = 1
let g:NERDTreeDirArrowExpandable = '▸'
let g:NERDTreeDirArrowCollapsible = '▾'
let g:NERDTreeGitStatusWithFlags = 1
"let g:WebDevIconsUnicodeDecorateFolderNodes = 1
let g:NERDTreeColorMapCustom = {
\ "Staged": "#0ee375",
\ "Modified": "#d9bf91",
\ "Renamed": "#51C9FC",
\ "Untracked": "#FCE77C",
\ "Unmerged": "#FC51E6",
\ "Dirty": "#FFBD61",
\ "Clean": "#87939A",
\ "Ignored": "#808080"
\ }
nnoremap <C-n> :NERDTreeToggle<CR>
"
" COC Settings
"
let g:coc_global_extensions = [
\ 'coc-pyright',
\ 'coc-clangd',
\ 'coc-rls',
\ 'coc-metals',
\ 'coc-docker',
\ 'coc-phpls',
\ 'coc-java',
\ 'coc-groovy',
\ 'coc-java-debug',
\ 'coc-scssmodules',
\ 'coc-css',
\ 'coc-html',
\ 'coc-webpack',
\ 'coc-flow',
\ 'coc-styled-components',
\ 'coc-jest',
\ 'coc-inline-jest',
\ 'coc-import-cost',
\ 'coc-prettier',
\ 'coc-tsserver',
\ 'coc-eslint',
\ 'coc-snippets',
\ 'coc-discord',
\ 'coc-json',
\ 'coc-tabnine',
\ 'coc-github'
\ ]
" Key Bindings
nmap <silent> gd <Plug>(coc-definition)
nmap <silent> gy <Plug>(coc-type-definition)
nmap <silent> gr <Plug>(coc-references)
nmap <silent> [g <Plug>(coc-diagnostic-prev)
nmap <silent> ]g <Plug>(coc-diagnostic-next)
nnoremap <silent> <space>s :<C-u>CocList -I symbols<cr>
nnoremap <silent> <space>d :<C-u>CocList diagnostics<cr>
nmap <leader>do <Plug>(coc-codeaction)
nmap <leader>rn <Plug>(coc-rename)
" Use K to show documentation in preview window
nnoremap <silent> K :call <SID>show_documentation<CR>
" Show documentation on hover definition
function! ShowDocumentation()
if (index(['vim','help'], &filetype) >= 0)
execute 'h '.expand('<cword>')
else
call CocAction('doHover')
endif
endfunction
" Use `:Format` to format current buffer
command! -nargs=0 Format :call CocAction('format')
" Use Enter to confirm completion, Ctrl-G+U means break undo chain at current position
" Coc only does snippet and additional edit on confirm
inoremap <expr> <cr> pumvisible() ? "\<C-y>" : "\<C-g>u\<CR>"
" Tabbing shortcuts
noremap <C-t> :<C-U>tabn<CR>
"inoremap <C-t> <C-\><C-N>:tabn<CR>
"cnoremap <C-t> <C-C>:tabn<CR>
" Set Ctrl+Z and Ctrl+Shift+Z to undo/redo actions
noremap <C-z> :u<CR>
noremap <C-S-z> :redo<CR>
map <C-z> :u<CR>
map <C-S-z> :redo<CR>
noremap <C-S-t> :<C-U>tabp<CR>
"inoremap <C-S-t> <C-\><C-N>:tabp<CR>
"cnoremap <C-S-t> <C-C>:tabp<CR>
if exists('+termguicolors')
let &t_8f = "\<Esc>[38;2;%lu;%lu;%lum"
let &t_8b = "\<Esc>[48;2;%lu;%lu;%lum"
set termguicolors
endif
"colorscheme blue
"colorscheme spaceduck
"colorscheme hybrid_material
"colorscheme hybrid_reverse
colorscheme gruvbox
set number
# setup
pkg_add git automake gcc g++ autoconf wget curl zip unzip libtool
pkg_add php-pcntl php-pgsql php-curl php-zip php-intl php-bz2 php-gd php-mysqli php-mysql php-xml php-pdo_pgsql php-pdo_mysql php-pdo_sqlite3 php-json composer-2.5
pkg_add mariadb-client mariadb-server
rcctl enable mysqld
rcctl start mysqld
rcctl check mysqld
mysql_install_db
mysql_secure_installation
pkg_add postgresql-server postgresql-client postgresql-contrib
mkdir /var/postgresql/data
chown _postgresql:_postgresql /var/postgresql/data
doas -u _postgresql initdb -D /var/postgresql/data
rcctl enable postgresql
rcctl start postgresql
pkg_add mongodb
doas rcctl enabled mongod
doas rcctl start mongod
pkg_add python
pkg_add openjdk node
pkg_add go
export GOPATH=~/go
export PATH=$PATH:$GOPATH/bin
ulimit -n 512
ulimit -p 512
ulimit -d 2036792
export AUTOMAKE_VERSION=1.6
export AUTOCONF_VERSION=2.71
pecl install mongodb
pkg_add zsh
zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
pkg_add emacs neovim
sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment