Compare commits
No commits in common. "62b7efe7e8516823053ae50e510882d2e027dd0a" and "4ebf5c1085eb6a2907413164d4589bcf5bed5520" have entirely different histories.
62b7efe7e8
...
4ebf5c1085
14 changed files with 357 additions and 378 deletions
2
cvim/.gitignore
vendored
2
cvim/.gitignore
vendored
|
@ -1,5 +1,3 @@
|
||||||
.netrwhist
|
.netrwhist
|
||||||
autoload/
|
autoload/
|
||||||
viminfo
|
viminfo
|
||||||
colors/
|
|
||||||
undo/
|
|
||||||
|
|
4
cvim/backup/.gitignore
vendored
Normal file
4
cvim/backup/.gitignore
vendored
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
# Ignore everything in this directory
|
||||||
|
*
|
||||||
|
# Except this file
|
||||||
|
!.gitignore
|
4
cvim/plugged/.gitignore
vendored
Normal file
4
cvim/plugged/.gitignore
vendored
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
# Ignore everything in this directory
|
||||||
|
*
|
||||||
|
# Except this file
|
||||||
|
!.gitignore
|
4
cvim/spell/.gitignore
vendored
Normal file
4
cvim/spell/.gitignore
vendored
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
# Ignore everything in this directory
|
||||||
|
*
|
||||||
|
# Except this file
|
||||||
|
!.gitignore
|
4
cvim/swap/.gitignore
vendored
Normal file
4
cvim/swap/.gitignore
vendored
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
# Ignore everything in this directory
|
||||||
|
*
|
||||||
|
# Except this file
|
||||||
|
!.gitignore
|
4
cvim/undo/.gitignore
vendored
Normal file
4
cvim/undo/.gitignore
vendored
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
# Ignore everything in this directory
|
||||||
|
*
|
||||||
|
# Except this file
|
||||||
|
!.gitignore
|
4
cvim/view/.gitignore
vendored
Normal file
4
cvim/view/.gitignore
vendored
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
# Ignore everything in this directory
|
||||||
|
*
|
||||||
|
# Except this file
|
||||||
|
!.gitignore
|
465
cvim/vimrc
465
cvim/vimrc
|
@ -1,236 +1,64 @@
|
||||||
" Enhanced vanilla ViM conifuration.
|
" XDG Specifications
|
||||||
" tpope's sensible.vim:
|
let rtp=&runtimepath
|
||||||
|
set runtimepath=~/.config/cvim
|
||||||
|
let &runtimepath.=','.rtp.',~/.config/cvim/after'
|
||||||
|
set directory=~/.config/cvim/swap//,.,~/tmp,/var/tmp,/tmp
|
||||||
|
set backupdir=~/.config/cvim/backup//,.,~/tmp,~/
|
||||||
|
set spellfile=~/.config/cvim/spell/en.utf-8.add
|
||||||
|
set viminfo+=n~/.config/cvim/viminfo
|
||||||
|
set viewdir=~/.config/cvim/view/
|
||||||
|
set undodir=~/.config/cvim/undo//,.
|
||||||
|
|
||||||
if exists('g:loaded_sensible') || &compatible
|
" Preferences
|
||||||
finish
|
let mapleader = "\<Space>"
|
||||||
else
|
set list listchars=tab:⎸\ ,trail:~
|
||||||
let g:loaded_sensible = 'yes'
|
set clipboard=unnamedplus
|
||||||
endif
|
set gp=git\ grep\ -n
|
||||||
|
set shellcmdflag=-c
|
||||||
" Use :help 'option' to see the documentation for the given option.
|
set encoding=utf-8
|
||||||
|
set relativenumber
|
||||||
" Disable vi compatibility, if for some reason it's on.
|
filetype plugin on
|
||||||
if &compatible
|
set shiftwidth=4
|
||||||
set nocompatible
|
set nocompatible
|
||||||
endif
|
set cursorline
|
||||||
|
set ignorecase
|
||||||
" Check if an option was set from a file in $HOME. This lets us avoid
|
set smartcase
|
||||||
" overriding options in the user's vimrc, but still override options in the
|
set expandtab
|
||||||
" system vimrc.
|
set autoread
|
||||||
function! s:MaySet(option) abort
|
set wildmenu
|
||||||
if exists('*execute')
|
set hlsearch
|
||||||
let out = execute('verbose setglobal all ' . a:option . '?')
|
set swapfile
|
||||||
else
|
set undofile
|
||||||
redir => out
|
set mouse=a
|
||||||
silent verbose execute 'setglobal all' a:option . '?'
|
set showcmd
|
||||||
redir END
|
set number
|
||||||
endif
|
syntax on
|
||||||
return out !~# " \\(\\~[\\/]\\|Lua\\)[^\n]*$"
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
if s:MaySet('backspace')
|
|
||||||
set backspace=indent,eol,start
|
|
||||||
endif
|
|
||||||
" Disable completing keywords in included files (e.g., #include in C). When
|
|
||||||
" configured properly, this can result in the slow, recursive scanning of
|
|
||||||
" hundreds of files of dubious relevance.
|
|
||||||
set complete-=i
|
|
||||||
if s:MaySet('smarttab')
|
|
||||||
set smarttab
|
|
||||||
endif
|
|
||||||
|
|
||||||
set nrformats-=octal
|
|
||||||
|
|
||||||
" Make the escape key more responsive by decreasing the wait time for an
|
|
||||||
" escape sequence (e.g., arrow keys).
|
|
||||||
if !has('nvim') && &ttimeoutlen == -1
|
|
||||||
set ttimeout
|
|
||||||
set ttimeoutlen=100
|
|
||||||
endif
|
|
||||||
|
|
||||||
if has('reltime') && s:MaySet('incsearch')
|
|
||||||
set incsearch
|
|
||||||
endif
|
|
||||||
" Use CTRL-L to clear the highlighting of 'hlsearch' (off by default) and call
|
|
||||||
" :diffupdate.
|
|
||||||
if maparg('<C-L>', 'n') ==# ''
|
|
||||||
nnoremap <silent> <C-L> :nohlsearch<C-R>=has('diff')?'<Bar>diffupdate':''<CR><CR><C-L>
|
|
||||||
endif
|
|
||||||
|
|
||||||
if s:MaySet('laststatus')
|
|
||||||
set laststatus=2
|
|
||||||
endif
|
|
||||||
if s:MaySet('ruler')
|
|
||||||
set ruler
|
|
||||||
endif
|
|
||||||
if s:MaySet('wildmenu')
|
|
||||||
set wildmenu
|
|
||||||
endif
|
|
||||||
|
|
||||||
if s:MaySet('scrolloff')
|
|
||||||
set scrolloff=1
|
|
||||||
endif
|
|
||||||
if s:MaySet('sidescroll') && s:MaySet('sidescrolloff')
|
|
||||||
set sidescroll=1
|
|
||||||
set sidescrolloff=2
|
|
||||||
endif
|
|
||||||
set display+=lastline
|
|
||||||
if has('patch-7.4.2109')
|
|
||||||
set display+=truncate
|
|
||||||
endif
|
|
||||||
|
|
||||||
if s:MaySet('listchars')
|
|
||||||
set listchars=tab:>\ ,trail:-,extends:>,precedes:<,nbsp:+
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Delete comment character when joining commented lines.
|
|
||||||
if v:version > 703 || v:version == 703 && has("patch541")
|
|
||||||
set formatoptions+=j
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Replace the check for a tags file in the parent directory of the current
|
|
||||||
" file with a check in every ancestor directory.
|
|
||||||
if has('path_extra') && (',' . &g:tags . ',') =~# ',\./tags,'
|
|
||||||
setglobal tags-=./tags tags-=./tags; tags^=./tags;
|
|
||||||
endif
|
|
||||||
|
|
||||||
if s:MaySet('autoread')
|
|
||||||
set autoread
|
|
||||||
endif
|
|
||||||
|
|
||||||
if s:MaySet('history')
|
|
||||||
set history=1000
|
|
||||||
endif
|
|
||||||
if s:MaySet('tabpagemax')
|
|
||||||
set tabpagemax=50
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Persist g:UPPERCASE variables, used by some plugins, in .viminfo.
|
|
||||||
if !empty(&viminfo)
|
|
||||||
set viminfo^=!
|
|
||||||
endif
|
|
||||||
" Saving options in session and view files causes more problems than it
|
|
||||||
" solves, so disable it.
|
|
||||||
set sessionoptions-=options
|
|
||||||
set viewoptions-=options
|
|
||||||
|
|
||||||
" Allow color schemes to do bright colors without forcing bold.
|
|
||||||
if &t_Co == 8 && $TERM !~# '^Eterm'
|
|
||||||
set t_Co=16
|
|
||||||
endif
|
|
||||||
|
|
||||||
" If the running Vim lacks support for the Fish shell, use Bash instead.
|
|
||||||
if &shell =~# 'fish$' && (v:version < 704 || v:version == 704 && !has('patch276'))
|
|
||||||
set shell=/usr/bin/env\ bash
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Disable a legacy behavior that can break plugin maps.
|
|
||||||
if has('langmap') && exists('+langremap') && &langremap && s:MaySet('langremap')
|
|
||||||
set nolangremap
|
|
||||||
endif
|
|
||||||
|
|
||||||
if !(exists('g:did_load_filetypes') && exists('g:did_load_ftplugin') && exists('g:did_indent_on'))
|
|
||||||
filetype plugin indent on
|
|
||||||
endif
|
|
||||||
if has('syntax') && !exists('g:syntax_on')
|
|
||||||
syntax enable
|
|
||||||
endif
|
|
||||||
|
|
||||||
if empty(mapcheck('<C-U>', 'i'))
|
|
||||||
inoremap <C-U> <C-G>u<C-U>
|
|
||||||
endif
|
|
||||||
if empty(mapcheck('<C-W>', 'i'))
|
|
||||||
inoremap <C-W> <C-G>u<C-W>
|
|
||||||
endif
|
|
||||||
|
|
||||||
" From `:help :DiffOrig`.
|
|
||||||
if exists(":DiffOrig") != 2
|
|
||||||
command DiffOrig vert new | set bt=nofile | r ++edit # | 0d_
|
|
||||||
\ | diffthis | wincmd p | diffthis
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Correctly highlight $() and other modern affordances in filetype=sh.
|
|
||||||
if !exists('g:is_posix') && !exists('g:is_bash') && !exists('g:is_kornshell') && !exists('g:is_dash')
|
|
||||||
let g:is_posix = 1
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Load matchit.vim, but only if the user hasn't installed a newer version.
|
|
||||||
if !exists('g:loaded_matchit') && findfile('plugin/matchit.vim', &rtp) ==# ''
|
|
||||||
runtime! macros/matchit.vim
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Enable the :Man command shipped inside Vim's man filetype plugin.
|
|
||||||
if exists(':Man') != 2 && !exists('g:loaded_man') && &filetype !=? 'man' && !has('nvim')
|
|
||||||
runtime ftplugin/man.vim
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Added functionality:
|
|
||||||
" Configure custom path so not to mess with default vim path, and keep
|
|
||||||
" tempfiles and other stuff organized.
|
|
||||||
let g:customrtp = expand('~/.config/cvim')
|
|
||||||
|
|
||||||
let rtp = &runtimepath
|
|
||||||
let &runtimepath = g:customrtp . ',' . rtp . ',' . g:customrtp . '/after'
|
|
||||||
execute 'set directory=' . g:customrtp . '/swap//,.,~/tmp,/var/tmp,/tmp'
|
|
||||||
execute 'set backupdir=' . g:customrtp . '/backup//,.,~/tmp,~/'
|
|
||||||
execute 'set spellfile=' . g:customrtp . '/spell/en.utf-8.add'
|
|
||||||
execute 'set viminfo+=n' . g:customrtp . '/viminfo'
|
|
||||||
execute 'set viewdir=' . g:customrtp . '/view/'
|
|
||||||
execute 'set undodir=' . g:customrtp . '/undo//,.'
|
|
||||||
|
|
||||||
for dir in ['swap', 'backup', 'spell', 'view', 'undo', 'after']
|
|
||||||
call mkdir(g:customrtp . '/' . dir, 'p', 0700)
|
|
||||||
endfor
|
|
||||||
|
|
||||||
if (empty($TMUX) && getenv('TERM_PROGRAM') != 'Apple_Terminal')
|
if (empty($TMUX) && getenv('TERM_PROGRAM') != 'Apple_Terminal')
|
||||||
if (has("nvim"))
|
if (has("nvim"))
|
||||||
let $NVIM_TUI_ENABLE_TRUE_COLOR=1
|
let $NVIM_TUI_ENABLE_TRUE_COLOR=1
|
||||||
endif
|
endif
|
||||||
if (has("termguicolors"))
|
if (has("termguicolors"))
|
||||||
set termguicolors
|
set termguicolors
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" :MakeTags
|
" Keybinds
|
||||||
" If inside a Git repository, generate tags for the project into
|
noremap <F5> :setlocal spell! spelllang=en<CR>
|
||||||
" /tmp/tags/<project> and set the tags variable accordingly.
|
noremap <F6> :setlocal spell! spelllang=es<CR>
|
||||||
" This is done on a per-buffer basis.
|
noremap <F8> :TagbarToggle<CR>
|
||||||
function! SetupProjectTags()
|
noremap <C-e> !!$SHELL<CR>
|
||||||
let l:buf_dir = expand('%:p:h')
|
noremap <tab> :bn<CR>
|
||||||
if empty(l:buf_dir)
|
noremap <C-c> :bd<CR>
|
||||||
echoerr 'Could not determine buffer directory.'
|
noremap <C-s> :w<CR>
|
||||||
return
|
noremap <A-h> 5<C-w><
|
||||||
endif
|
noremap <A-j> 5<C-w>-
|
||||||
|
noremap <A-k> 5<C-w>+
|
||||||
|
noremap <A-l> 5<C-w>>
|
||||||
|
noremap H :nohl<CR>
|
||||||
|
noremap <leader><Space> za
|
||||||
|
|
||||||
let l:git_root = systemlist('git -C ' . shellescape(l:buf_dir) . ' rev-parse --show-toplevel')
|
autocmd BufWinLeave *.* mkview
|
||||||
if v:shell_error != 0 || empty(l:git_root)
|
|
||||||
echoerr 'Not inside a Git repository.'
|
|
||||||
return
|
|
||||||
endif
|
|
||||||
|
|
||||||
let l:git_root = l:git_root[0]
|
|
||||||
let l:project_name = substitute(fnamemodify(l:git_root, ':t'), '[^A-Za-z0-9]', '_', 'g')
|
|
||||||
let l:tags_file = '/tmp/tags/' . l:project_name . '.tags'
|
|
||||||
|
|
||||||
if !isdirectory('/tmp/tags')
|
|
||||||
call mkdir('/tmp/tags', 'p')
|
|
||||||
endif
|
|
||||||
|
|
||||||
let l:cmd = 'ctags -R -f ' . shellescape(l:tags_file) . ' ' . shellescape(l:git_root)
|
|
||||||
let l:output = system(l:cmd)
|
|
||||||
|
|
||||||
if v:shell_error != 0
|
|
||||||
echoerr l:output
|
|
||||||
return
|
|
||||||
endif
|
|
||||||
|
|
||||||
let &l:tags = l:tags_file
|
|
||||||
endfunction
|
|
||||||
command! MakeTags call SetupProjectTags()
|
|
||||||
|
|
||||||
" Netrw configuration
|
|
||||||
let g:netrw_banner=0
|
|
||||||
let g:netrw_liststyle=3
|
|
||||||
|
|
||||||
" QuickFix
|
" QuickFix
|
||||||
autocmd QuickFixCmdPost [^l]* nested cwindow
|
autocmd QuickFixCmdPost [^l]* nested cwindow
|
||||||
|
@ -238,74 +66,149 @@ autocmd QuickFixCmdPost l* nested lwindow
|
||||||
autocmd QuickFixCmdPost * if &ft ==# 'qf' | wincmd J | endif
|
autocmd QuickFixCmdPost * if &ft ==# 'qf' | wincmd J | endif
|
||||||
|
|
||||||
function! WrapQuickfixNext()
|
function! WrapQuickfixNext()
|
||||||
try
|
try
|
||||||
execute 'cnext'
|
execute 'cnext'
|
||||||
catch /^Vim\%((\a\+)\)\=:E553/
|
catch /^Vim\%((\a\+)\)\=:E553/
|
||||||
cfirst
|
cfirst
|
||||||
endtry
|
endtry
|
||||||
endfunction
|
endfunction
|
||||||
function! WrapQuickfixPrev()
|
function! WrapQuickfixPrev()
|
||||||
try
|
try
|
||||||
execute 'cprevious'
|
execute 'cprevious'
|
||||||
catch /^Vim\%((\a\+)\)\=:E553/
|
catch /^Vim\%((\a\+)\)\=:E553/
|
||||||
clast
|
clast
|
||||||
endtry
|
endtry
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
nnoremap <silent> <Leader>n :call WrapQuickfixNext()<CR>
|
nnoremap <silent> <Leader>n :call WrapQuickfixNext()<CR>
|
||||||
nnoremap <silent> <Leader>p :call WrapQuickfixPrev()<CR>
|
nnoremap <silent> <Leader>p :call WrapQuickfixPrev()<CR>
|
||||||
|
nnoremap <leader>m :make<CR><CR>
|
||||||
nnoremap <F9> :make<CR><CR>
|
nnoremap <F9> :make<CR><CR>
|
||||||
|
|
||||||
" Colorscheme
|
" c/c++
|
||||||
function! s:Curl(url, dest) abort
|
autocmd FileType c :compiler gcc | setlocal makeprg=gcc\ -Wall\ -c\ %
|
||||||
if filereadable(a:dest)
|
autocmd FileType cpp :compiler gcc | setlocal makeprg=g++\ -Wall\ -c\ %
|
||||||
return
|
|
||||||
endif
|
|
||||||
|
|
||||||
let l:dir = fnamemodify(a:dest, ':h')
|
" groff
|
||||||
if !isdirectory(l:dir)
|
autocmd FileType troff noremap <buffer> <silent> <F9> :!zathura --fork %:r.pdf<CR> & disown
|
||||||
call mkdir(l:dir, 'p')
|
autocmd FileType troff noremap <buffer> <C-s> :w<CR> :!grofftex %<CR><CR>
|
||||||
endif
|
|
||||||
|
|
||||||
let l:cmd = 'curl -fLo ' . shellescape(a:dest) . ' --create-dirs ' . shellescape(a:url)
|
" Python
|
||||||
call system(l:cmd)
|
autocmd FileType python noremap <buffer> <F9> :!python %<CR>
|
||||||
|
|
||||||
if v:shell_error
|
function! SetMakeprg()
|
||||||
echoerr "Failed to download: " . a:url
|
if filereadable('Makefile')
|
||||||
endif
|
set makeprg=make
|
||||||
|
else
|
||||||
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
autocmd VimEnter * call SetMakeprg()
|
||||||
|
|
||||||
let s:baseurl = 'https://raw.githubusercontent.com/morhetz/gruvbox/refs/heads/master/'
|
" Functions
|
||||||
let s:paths = [
|
|
||||||
\ 'autoload/gruvbox.vim',
|
|
||||||
\ 'autoload/lightline/colorscheme/gruvbox.vim',
|
|
||||||
\ 'autoload/airline/themes/gruvbox.vim',
|
|
||||||
\ 'colors/gruvbox.vim'
|
|
||||||
\ ]
|
|
||||||
|
|
||||||
let s:rtp = substitute(&runtimepath, ',.*', '', '')
|
"Open a shell on a vertical split
|
||||||
|
set splitright
|
||||||
|
function OpenTerminal()
|
||||||
|
execute "normal \<C-l>"
|
||||||
|
execute "normal \<C-l>"
|
||||||
|
execute "normal \<C-l>"
|
||||||
|
execute "normal \<C-l>"
|
||||||
|
|
||||||
for relpath in s:paths
|
let bufNum = bufnr("%")
|
||||||
let url = s:baseurl . relpath
|
let bufType = getbufvar(bufNum, "&buftype", "not found")
|
||||||
let dest = s:rtp . '/' . relpath
|
|
||||||
call s:Curl(url, dest)
|
|
||||||
endfor
|
|
||||||
|
|
||||||
" Misc
|
if bufType == "terminal"
|
||||||
let mapleader = "\<Space>"
|
execute "q"
|
||||||
colorscheme gruvbox
|
else
|
||||||
|
execute "bot sp term://bash"
|
||||||
|
execute "resize -8"
|
||||||
|
execute "set nonu"
|
||||||
|
execute "set nornu"
|
||||||
|
silent au BufLeave <buffer> stopinsert!
|
||||||
|
silent au BufWinEnter,WinEnter <buffer> startinsert!
|
||||||
|
execute "tnoremap <buffer> <C-h> <C-\\><C-n><C-w><C-h>"
|
||||||
|
execute "tnoremap <buffer> <C-t> <C-\\><C-n>:q<CR>"
|
||||||
|
execute "tnoremap <buffer> <C-\\><C-\\> <C-\\><C-n>"
|
||||||
|
execute "IndentLinesDisable"
|
||||||
|
|
||||||
|
startinsert!
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
nnoremap <C-t> :call OpenTerminal()<CR>
|
||||||
|
|
||||||
|
" Plugins
|
||||||
|
if empty(glob('~/.config/cvim/autoload/plug.vim'))
|
||||||
|
silent !curl -fLo ~/.config/cvim/autoload/plug.vim --create-dirs
|
||||||
|
\ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
|
||||||
|
autocmd VimEnter * PlugInstall --sync | source '~/.config/cvim/vimrc'
|
||||||
|
endif
|
||||||
|
|
||||||
|
call plug#begin()
|
||||||
|
Plug 'vim-airline/vim-airline-themes'
|
||||||
|
Plug 'norcalli/nvim-colorizer.lua'
|
||||||
|
Plug 'vim-scripts/AutoComplPop'
|
||||||
|
Plug 'vim-airline/vim-airline'
|
||||||
|
Plug 'ryanoasis/vim-devicons'
|
||||||
|
Plug 'airblade/vim-gitgutter'
|
||||||
|
Plug 'rhysd/vim-clang-format'
|
||||||
|
Plug 'jiangmiao/auto-pairs'
|
||||||
|
Plug 'tpope/vim-commentary'
|
||||||
|
Plug 'Yggdroot/indentLine'
|
||||||
|
Plug 'preservim/nerdtree'
|
||||||
|
Plug 'godlygeek/tabular'
|
||||||
|
Plug 'Gavinok/vim-troff'
|
||||||
|
Plug 'ibhagwan/fzf-lua'
|
||||||
|
Plug 'preservim/tagbar'
|
||||||
|
" Plug 'morhetz/gruvbox'
|
||||||
|
" Plug 'sainnhe/gruvbox-material'
|
||||||
|
Plug 'sainnhe/everforest'
|
||||||
|
Plug 'jceb/vim-orgmode'
|
||||||
|
Plug 'mikelue/vim-maven-plugin'
|
||||||
|
call plug#end()
|
||||||
|
|
||||||
|
" theme
|
||||||
set background=dark
|
set background=dark
|
||||||
set list
|
let g:everforest_background = 'hard'
|
||||||
set listchars=tab:\|\ ,trail:~,extends:>,precedes:<,nbsp:+
|
colorscheme everforest
|
||||||
set cursorline
|
|
||||||
set ignorecase
|
" AutoComplPop
|
||||||
set smartcase
|
inoremap <expr> <Tab> pumvisible() ? "<C-y>" : "<Tab>"
|
||||||
set hlsearch
|
set completeopt=menuone,longest
|
||||||
set swapfile
|
set complete+=kspell
|
||||||
set undofile
|
|
||||||
set mouse=a
|
" Airline
|
||||||
set showcmd
|
let g:airline#extensions#tabline#buffer_min_count = 1
|
||||||
set number
|
let g:airline#extensions#tabline#enabled = 1
|
||||||
set hidden
|
let g:airline_powerline_fonts = 1
|
||||||
set nowrap
|
set ttimeout ttimeoutlen=0
|
||||||
set colorcolumn=81
|
set laststatus=2
|
||||||
|
set noshowmode
|
||||||
|
|
||||||
|
" NERDTree
|
||||||
|
nnoremap <C-f> :NERDTreeToggle<CR>
|
||||||
|
|
||||||
|
" IndentLine
|
||||||
|
let g:indentLine_enabled = 1
|
||||||
|
let g:indentLine_char = '⎸'
|
||||||
|
|
||||||
|
" fzf-lua
|
||||||
|
noremap <A-b> :FzfLua git_branches<CR>
|
||||||
|
noremap <A-c> :FzfLua git_commits<CR>
|
||||||
|
noremap <A-s> :FzfLua git_status<CR>
|
||||||
|
noremap <A-f> :FzfLua files<CR>
|
||||||
|
noremap gb :FzfLua git_branches<CR>
|
||||||
|
noremap gs :FzfLua git_status<CR>
|
||||||
|
noremap gf :FzfLua files<CR>
|
||||||
|
|
||||||
|
" git-gutter
|
||||||
|
highlight GitGutterChange guifg=#7daea3 ctermfg=3
|
||||||
|
highlight GitGutterDelete guifg=#ea6962 ctermfg=1
|
||||||
|
highlight GitGutterAdd guifg=#a9b665 ctermfg=2
|
||||||
|
highlight SignColumn guibg=NONE ctermbg=NONE
|
||||||
|
let g:gitgutter_set_sign_backgrounds = 1
|
||||||
|
noremap gd :GitGutterToggle<CR>
|
||||||
|
set signcolumn=yes
|
||||||
|
set updatetime=100
|
||||||
|
|
||||||
|
" vim-clang-format
|
||||||
|
let g:clang_format#code_style = 'llvm'
|
||||||
|
|
10
qt5ct/qt5ct.conf
Normal file
10
qt5ct/qt5ct.conf
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
[Appearance]
|
||||||
|
color_scheme_path=/usr/share/qt5ct/colors/darker.conf
|
||||||
|
custom_palette=true
|
||||||
|
icon_theme=breeze-dark
|
||||||
|
standard_dialogs=default
|
||||||
|
style=Breeze
|
||||||
|
|
||||||
|
[Fonts]
|
||||||
|
fixed=@Variant(\0\0\0@\0\0\0\x12\0N\0o\0t\0o\0 \0S\0\x61\0n\0s@$\0\0\0\0\0\0\xff\xff\xff\xff\x5\x1\0\x32\x10)
|
||||||
|
general=@Variant(\0\0\0@\0\0\0\x12\0N\0o\0t\0o\0 \0S\0\x61\0n\0s@$\0\0\0\0\0\0\xff\xff\xff\xff\x5\x1\0\x32\x10)
|
|
@ -42,6 +42,7 @@ alias \
|
||||||
calc="bc -l" \
|
calc="bc -l" \
|
||||||
cp="cp -iv" \
|
cp="cp -iv" \
|
||||||
mv="mv -iv" \
|
mv="mv -iv" \
|
||||||
|
vim="nvim" \
|
||||||
df-short="df -h | grep -v '\s/dev.*$\|\s/run.*$\|\s/boot.*$'" \
|
df-short="df -h | grep -v '\s/dev.*$\|\s/run.*$\|\s/boot.*$'" \
|
||||||
qr-png="qrencode -s 16 -o qr.png" \
|
qr-png="qrencode -s 16 -o qr.png" \
|
||||||
qr="qrencode -t ansiutf8" \
|
qr="qrencode -t ansiutf8" \
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
export \
|
export \
|
||||||
TERM="xterm-256color" \
|
TERM="xterm-256color" \
|
||||||
BROWSER="firefox-hardened" \
|
BROWSER="firefox-hardened" \
|
||||||
EDITOR="cvim" \
|
EDITOR="lvim" \
|
||||||
VISUAL="cvim"
|
VISUAL="lvim"
|
||||||
|
|
147
vim/vimrc
147
vim/vimrc
|
@ -1,14 +1,137 @@
|
||||||
let g:customrtp = expand('~/.config/vim')
|
" XDG Specifications
|
||||||
|
let rtp=&runtimepath
|
||||||
|
set runtimepath=~/.config/vim
|
||||||
|
let &runtimepath.=','.rtp.',~/.config/vim/after'
|
||||||
|
set directory=~/.config/vim/swap//,.,~/tmp,/var/tmp,/tmp
|
||||||
|
set backupdir=~/.config/vim/backup//,.,~/tmp,~/
|
||||||
|
set spellfile=~/.config/vim/spell/en.utf-8.add
|
||||||
|
set viminfo+=n~/.config/vim/viminfo
|
||||||
|
set viewdir=~/.config/vim/view/
|
||||||
|
set undodir=~/.config/vim/undo//,.
|
||||||
|
|
||||||
let rtp = &runtimepath
|
" Preferences
|
||||||
let &runtimepath = g:customrtp . ',' . rtp . ',' . g:customrtp . '/after'
|
let mapleader = "\<Space>"
|
||||||
execute 'set directory=' . g:customrtp . '/swap//,.,~/tmp,/var/tmp,/tmp'
|
set list listchars=tab:⎸\ ,trail:~
|
||||||
execute 'set backupdir=' . g:customrtp . '/backup//,.,~/tmp,~/'
|
set clipboard=unnamedplus
|
||||||
execute 'set spellfile=' . g:customrtp . '/spell/en.utf-8.add'
|
set gp=git\ grep\ -n
|
||||||
execute 'set viminfo+=n' . g:customrtp . '/viminfo'
|
set shellcmdflag=-c
|
||||||
execute 'set viewdir=' . g:customrtp . '/view/'
|
set encoding=utf-8
|
||||||
execute 'set undodir=' . g:customrtp . '/undo//,.'
|
set relativenumber
|
||||||
|
filetype plugin on
|
||||||
|
set shiftwidth=4
|
||||||
|
set nocompatible
|
||||||
|
set cursorline
|
||||||
|
set ignorecase
|
||||||
|
set smartcase
|
||||||
|
set expandtab
|
||||||
|
set autoread
|
||||||
|
set wildmenu
|
||||||
|
set hlsearch
|
||||||
|
set swapfile
|
||||||
|
set undofile
|
||||||
|
set mouse=a
|
||||||
|
set showcmd
|
||||||
|
set number
|
||||||
|
syntax on
|
||||||
|
|
||||||
for dir in ['swap', 'backup', 'spell', 'view', 'undo', 'after']
|
if (empty($TMUX) && getenv('TERM_PROGRAM') != 'Apple_Terminal')
|
||||||
call mkdir(g:customrtp . '/' . dir, 'p', 0700)
|
if (has("nvim"))
|
||||||
endfor
|
let $NVIM_TUI_ENABLE_TRUE_COLOR=1
|
||||||
|
endif
|
||||||
|
if (has("termguicolors"))
|
||||||
|
set termguicolors
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Keybinds
|
||||||
|
noremap <F5> :setlocal spell! spelllang=en<CR>
|
||||||
|
noremap <F6> :setlocal spell! spelllang=es<CR>
|
||||||
|
noremap <F8> :TagbarToggle<CR>
|
||||||
|
noremap <C-e> !!$SHELL<CR>
|
||||||
|
noremap <tab> :bn<CR>
|
||||||
|
noremap <C-c> :bd<CR>
|
||||||
|
noremap <C-s> :w<CR>
|
||||||
|
noremap <A-h> 5<C-w><
|
||||||
|
noremap <A-j> 5<C-w>-
|
||||||
|
noremap <A-k> 5<C-w>+
|
||||||
|
noremap <A-l> 5<C-w>>
|
||||||
|
noremap H :nohl<CR>
|
||||||
|
noremap <leader><Space> za
|
||||||
|
|
||||||
|
autocmd BufWinLeave *.* mkview
|
||||||
|
|
||||||
|
" QuickFix
|
||||||
|
autocmd QuickFixCmdPost [^l]* nested cwindow
|
||||||
|
autocmd QuickFixCmdPost l* nested lwindow
|
||||||
|
autocmd QuickFixCmdPost * if &ft ==# 'qf' | wincmd J | endif
|
||||||
|
|
||||||
|
function! WrapQuickfixNext()
|
||||||
|
try
|
||||||
|
execute 'cnext'
|
||||||
|
catch /^Vim\%((\a\+)\)\=:E553/
|
||||||
|
cfirst
|
||||||
|
endtry
|
||||||
|
endfunction
|
||||||
|
function! WrapQuickfixPrev()
|
||||||
|
try
|
||||||
|
execute 'cprevious'
|
||||||
|
catch /^Vim\%((\a\+)\)\=:E553/
|
||||||
|
clast
|
||||||
|
endtry
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
nnoremap <silent> <Leader>n :call WrapQuickfixNext()<CR>
|
||||||
|
nnoremap <silent> <Leader>p :call WrapQuickfixPrev()<CR>
|
||||||
|
nnoremap <leader>m :make<CR><CR>
|
||||||
|
nnoremap <F9> :make<CR><CR>
|
||||||
|
|
||||||
|
" c/c++
|
||||||
|
autocmd FileType c :compiler gcc | setlocal makeprg=gcc\ -Wall\ -c\ %
|
||||||
|
autocmd FileType cpp :compiler gcc | setlocal makeprg=g++\ -Wall\ -c\ %
|
||||||
|
|
||||||
|
" groff
|
||||||
|
autocmd FileType troff noremap <buffer> <silent> <F9> :!zathura --fork %:r.pdf<CR> & disown
|
||||||
|
autocmd FileType troff noremap <buffer> <C-s> :w<CR> :!grofftex %<CR><CR>
|
||||||
|
|
||||||
|
" Python
|
||||||
|
autocmd FileType python noremap <buffer> <F9> :!python %<CR>
|
||||||
|
|
||||||
|
function! SetMakeprg()
|
||||||
|
if filereadable('Makefile')
|
||||||
|
set makeprg=make
|
||||||
|
else
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
autocmd VimEnter * call SetMakeprg()
|
||||||
|
|
||||||
|
" Functions
|
||||||
|
|
||||||
|
"Open a shell on a vertical split
|
||||||
|
set splitright
|
||||||
|
function OpenTerminal()
|
||||||
|
execute "normal \<C-l>"
|
||||||
|
execute "normal \<C-l>"
|
||||||
|
execute "normal \<C-l>"
|
||||||
|
execute "normal \<C-l>"
|
||||||
|
|
||||||
|
let bufNum = bufnr("%")
|
||||||
|
let bufType = getbufvar(bufNum, "&buftype", "not found")
|
||||||
|
|
||||||
|
if bufType == "terminal"
|
||||||
|
execute "q"
|
||||||
|
else
|
||||||
|
execute "bot sp term://bash"
|
||||||
|
execute "resize -8"
|
||||||
|
execute "set nonu"
|
||||||
|
execute "set nornu"
|
||||||
|
silent au BufLeave <buffer> stopinsert!
|
||||||
|
silent au BufWinEnter,WinEnter <buffer> startinsert!
|
||||||
|
execute "tnoremap <buffer> <C-h> <C-\\><C-n><C-w><C-h>"
|
||||||
|
execute "tnoremap <buffer> <C-t> <C-\\><C-n>:q<CR>"
|
||||||
|
execute "tnoremap <buffer> <C-\\><C-\\> <C-\\><C-n>"
|
||||||
|
execute "IndentLinesDisable"
|
||||||
|
|
||||||
|
startinsert!
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
nnoremap <C-t> :call OpenTerminal()<CR>
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
VIMINIT="source $HOME/.config/cvim/vimrc" vim $@
|
VIMINIT="source $HOME/.config/cvim/vimrc" nvim $@
|
||||||
|
|
80
wrappers/tsc
80
wrappers/tsc
|
@ -1,80 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
TS_GITHUB="https://github.com/microsoft/TypeScript"
|
|
||||||
TS_DIR="${TS_DIR:=$HOME/.local/share/typescript}"
|
|
||||||
TS_BIN="$TS_DIR/package/bin/tsc"
|
|
||||||
|
|
||||||
_prompt() {
|
|
||||||
printf "[TS] \033[34m%s\033[0m \033[1m[y/n]:\033[0m " "$1"
|
|
||||||
read -r opt
|
|
||||||
|
|
||||||
case "$opt" in
|
|
||||||
[Yy]) return 0;;
|
|
||||||
[Nn]) return 1;;
|
|
||||||
*) return 1;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
_msg() {
|
|
||||||
printf "[TS] \033[0m%s\033[0m\n" "$1"
|
|
||||||
}
|
|
||||||
|
|
||||||
_error() {
|
|
||||||
printf "[TS] \033[31m%s\033[0m\n" "$1"
|
|
||||||
}
|
|
||||||
|
|
||||||
_latest_ts_version() {
|
|
||||||
release_url="$(curl -Ls -o /dev/null -w %{url_effective} "$TS_GITHUB"/releases/latest)"
|
|
||||||
echo "${release_url##*/v}"
|
|
||||||
}
|
|
||||||
|
|
||||||
_update_ts() {
|
|
||||||
if ! [ -d "$TS_DIR" ]; then
|
|
||||||
_prompt "Installation directory '$TS_DIR' does not exist, create?"
|
|
||||||
if [ "$?" -eq 1 ]; then
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
mkdir -p "$TS_DIR"
|
|
||||||
fi
|
|
||||||
|
|
||||||
_msg "getting latest version..."
|
|
||||||
version="$(_latest_ts_version)"
|
|
||||||
if [ "$?" -eq 1 ]; then
|
|
||||||
_error "failed to get version"
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
download_url="$TS_GITHUB/releases/download/v$version/typescript-$version.tgz"
|
|
||||||
rm -rf "$TS_DIR"
|
|
||||||
mkdir -p "$TS_DIR"
|
|
||||||
|
|
||||||
_msg "downloading ts v$version..."
|
|
||||||
curl -sLo "$TS_DIR/ts-$version.tgz" "$download_url"
|
|
||||||
if [ "$?" -eq 1 ]; then
|
|
||||||
_error "failed to download"
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
_msg "extracting..."
|
|
||||||
tar xzf "$TS_DIR/ts-$version.tgz" -C "$TS_DIR"
|
|
||||||
if [ "$?" -eq 1 ]; then
|
|
||||||
_error "failed to extract"
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
rm -f "$TS_DIR/ts-$version.tgz"
|
|
||||||
|
|
||||||
_msg "done!"
|
|
||||||
}
|
|
||||||
|
|
||||||
if [ -x "$TS_BIN" ]; then
|
|
||||||
case "$1" in
|
|
||||||
update) _update_ts ;;
|
|
||||||
*) $TS_BIN $@ ;;
|
|
||||||
esac
|
|
||||||
else
|
|
||||||
_prompt "tsc not installed, download?"
|
|
||||||
if [ "$?" -eq 1 ]; then
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
_update_ts
|
|
||||||
fi
|
|
Loading…
Reference in a new issue