Formatting changes in vimrc
This commit is contained in:
parent
816a0be564
commit
7e586d284d
527
vimrc
527
vimrc
|
@ -1,31 +1,27 @@
|
|||
" @incomplete Move all leader definitions to the bottom, so that it's easier to see them.
|
||||
" @incomplete Add setup steps (plugins, cache setup, search tool, etc).
|
||||
|
||||
"###################################################################################################
|
||||
"-----------------------------------------------------------------------------------------------------------------------
|
||||
" The config is chopped up into sections. Search for these headings to quickly jump to a particular section.
|
||||
"
|
||||
" The config is chopped up into sections. These are the headings, which you
|
||||
" can use to quickly jump to a particular section:
|
||||
|
||||
" #0 GLOBALS
|
||||
" #1 PLUGINS
|
||||
" #2 BASE CONFIG
|
||||
" #3 PLUGIN CONFIGS
|
||||
" #4 VISUALS
|
||||
" #5 CUSTOM FUNCTIONS / COMMANDS
|
||||
" #3 CUSTOM AUTOCMDS
|
||||
" #4 KEY MAPPINGS
|
||||
" #5 PLUGIN CONFIGS
|
||||
" #6 VISUALS (COLORS, HIGHLIGHTING)
|
||||
" #7 CUSTOM FUNCTIONS & COMMANDS
|
||||
"
|
||||
"###################################################################################################
|
||||
" @incomplete Add setup steps (plugins, cache setup, search tool, etc).
|
||||
"-----------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
let g:campo_vimrc_initialized = 0 " Will be set to 1 at the end of the file. Can be used to avoid changes on subsequent vimrc reloads.
|
||||
|
||||
scriptencoding utf-8
|
||||
" @note If the file contains a BOM then vim will automatically set `bomb` for
|
||||
" the buffer so that the BOM is written out again.
|
||||
" @note If the file contains a BOM then vim will automatically set `bomb` for the buffer so that the BOM is written out again.
|
||||
set encoding=utf-8 fileencoding=utf-8 fileencodings=ucs-bom,utf8,prc
|
||||
set nocompatible
|
||||
filetype off
|
||||
|
||||
" Store the current system name so that we can conditionally set configs for
|
||||
" different platforms
|
||||
" Store the current system name so that we can conditionally set configs for different platforms.
|
||||
let s:uname = system("echo -n \"$(uname)\"")
|
||||
let g:vim_dir = $HOME . "/.vim"
|
||||
let mapleader=","
|
||||
|
@ -39,7 +35,7 @@ endfunction
|
|||
|
||||
if has('termguicolors')
|
||||
set termguicolors
|
||||
" Set Vim-specific sequences for RGB colors
|
||||
" Set Vim-specific sequences for RGB colors.
|
||||
let &t_8f = "\<Esc>[38;2;%lu;%lu;%lum"
|
||||
let &t_8b = "\<Esc>[48;2;%lu;%lu;%lum"
|
||||
endif
|
||||
|
@ -51,26 +47,27 @@ function! PrintError(msg) abort
|
|||
echohl None
|
||||
endfunction
|
||||
|
||||
"################################################################
|
||||
"################################################################
|
||||
"################################################################
|
||||
"#0 GLOBALS
|
||||
"################################################################
|
||||
"################################################################
|
||||
"################################################################
|
||||
|
||||
"|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||
"|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||
" #0 GLOBALS
|
||||
"|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||
"|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||
|
||||
|
||||
"-----------------------------------------------------------------------------------------------------------------------
|
||||
" @note The following globals can be used to customize various functions in
|
||||
" this file. The easiest way to set them is in ~/.vimrc.private or an .lvimrc
|
||||
" file in the root folder that you want it applied to.
|
||||
"
|
||||
" Some variables cannot be customized in an .lvimrc because their value is used
|
||||
" by settings in this file when it's sourced. These have been flagged with the
|
||||
" note :unsupported-in-lvimrc.
|
||||
" Some variables cannot be customized in an .lvimrc because their value is
|
||||
" used by settings in this file when it's sourced. These have been flagged
|
||||
" with the note :unsupported-in-lvimrc.
|
||||
"
|
||||
" Also take note that an .lvimrc has precedence because it's loaded after this
|
||||
" and the private vimrc.
|
||||
"-----------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
" --------------------------------------------------------------------------------------------------
|
||||
|
||||
" @note :unsupported-in-lvimrc
|
||||
let g:campo_max_line_length = 120 " Display a vertical bar at x=<n>.
|
||||
|
@ -79,17 +76,19 @@ let g:campo_max_line_length = 120 " Display a vertical bar at x=<n>.
|
|||
" from various plugins (like ctrlp, ripgrep, compilation errors, etc), in rows
|
||||
let g:quickfix_pane_height = 20
|
||||
|
||||
""""""""""""""
|
||||
|
||||
"##################################################################################
|
||||
" COLORS
|
||||
""""""""""""""
|
||||
"##################################################################################
|
||||
let g:campo_light_dark_mode = 'dark' " Start vim with the dark theme. Set to 'light' for the light theme.
|
||||
let g:campo_dark_theme = 'campo-dark-simple' "'campo-dark-blue'
|
||||
let g:campo_light_theme = 'campo-light-simple' "'campo-light'
|
||||
let g:campo_theme_use_rainbow_parens = 1
|
||||
|
||||
""""""""""""""
|
||||
|
||||
"##################################################################################
|
||||
" FORMATTING
|
||||
""""""""""""""
|
||||
"##################################################################################
|
||||
" When set to 1, all files will be stripped of trailing whitespace when the
|
||||
" file is saved. Set to 0 to disable. You can customize which files are
|
||||
" ignored or always stripped; see below.
|
||||
|
@ -129,9 +128,10 @@ let g:campo_directories_to_force_stripping_trailing_whitespace = []
|
|||
" e.g. let g:campo_files_to_force_stripping_trailing_whitespace = ['/z/modules/test.h', '/d/build/config.h']
|
||||
let g:campo_files_to_force_stripping_trailing_whitespace = []
|
||||
|
||||
""""""""""""""
|
||||
|
||||
"##################################################################################
|
||||
" SEARCH
|
||||
""""""""""""""
|
||||
"##################################################################################
|
||||
" This is included in the ripgrep args. You can use this to do things like
|
||||
" ignore folders in your project or limit the search to specific file types.
|
||||
" For example, if you want to ignore the 3rd_party dir and only search C files
|
||||
|
@ -140,12 +140,13 @@ let g:campo_files_to_force_stripping_trailing_whitespace = []
|
|||
" let g:campo_custom_search_args = \"-g \"!3rd_party/*\" -tc"
|
||||
let g:campo_custom_search_args = ""
|
||||
|
||||
""""""""""""""
|
||||
|
||||
"##################################################################################
|
||||
" CTAGS
|
||||
""""""""""""""
|
||||
"##################################################################################
|
||||
" I use the ctags executable from https://github.com/universal-ctags/ctags-win32/releases
|
||||
"
|
||||
" Be sure to check out the ctags plugin config in section #3 for additional API functions.
|
||||
" Be sure to check out the ctags plugin config in section #5 for additional API functions.
|
||||
|
||||
" If != 0 then ctag generation will always happen on a file save, otherwise
|
||||
" it'll only be triggered if the file being saved has an extension in the
|
||||
|
@ -173,9 +174,10 @@ let g:campo_ctags_exclude = ['*.txt', '*.config', '.cache']
|
|||
" * Exclude a directory with `let g:campo_custom_ctags_args = '--exclude=3rd_party'`
|
||||
let g:campo_custom_ctags_args = ""
|
||||
|
||||
""""""""""""""
|
||||
|
||||
"##################################################################################
|
||||
" JAI
|
||||
""""""""""""""
|
||||
"##################################################################################
|
||||
" Set to your Jai install path. Used for various commands, like for example
|
||||
" searching the modules and how_to directories with CtrlP
|
||||
let g:campo_jai_path = ''
|
||||
|
@ -183,19 +185,18 @@ let g:campo_jai_path = ''
|
|||
" Args to include when compiling a Jai file.
|
||||
let g:campo_jai_build_args = ''
|
||||
|
||||
"################################################################
|
||||
"################################################################
|
||||
"################################################################
|
||||
|
||||
"|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||
"|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||
" #1 PLUGINS
|
||||
"################################################################
|
||||
"################################################################
|
||||
"################################################################
|
||||
"|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||
"|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||
|
||||
call plug#begin('~/.vim/plugged')
|
||||
|
||||
"////////////////////////////////////////////////////////////////
|
||||
"##################################################################################
|
||||
" MISC
|
||||
"////////////////////////////////////////////////////////////////
|
||||
"##################################################################################
|
||||
|
||||
Plug 'vim-airline/vim-airline' " Enhanced status/tabline.
|
||||
Plug 'embear/vim-localvimrc' " Add a .lvimrc to a folder to override .vimrc config.
|
||||
|
@ -217,9 +218,9 @@ if IsWindows()
|
|||
Plug 'suxpert/vimcaps' " Disable capslock (useful if the OS isn't configured to do so).
|
||||
endif
|
||||
|
||||
"////////////////////////////////////////////////////////////////
|
||||
"##################################################################################
|
||||
" COLORS
|
||||
"////////////////////////////////////////////////////////////////
|
||||
"##################################################################################
|
||||
|
||||
Plug 'luochen1990/rainbow', { 'commit': '1c45e0f' } " Rainbow parens. Locked to an older commit that still works fine on my PC.
|
||||
Plug 'vim-airline/vim-airline-themes'
|
||||
|
@ -230,9 +231,9 @@ endif
|
|||
|
||||
Plug 'dracula/vim', { 'as': 'dracula' }
|
||||
|
||||
"//////////////////////////////
|
||||
"/////////////////////////////////////////////////
|
||||
" SYNTAX HIGHLIGHTING
|
||||
"//////////////////////////////
|
||||
"/////////////////////////////////////////////////
|
||||
|
||||
Plug 'rluba/jai.vim' " Jai
|
||||
Plug 'bfrg/vim-cpp-modern' " C/C++
|
||||
|
@ -245,24 +246,20 @@ Plug 'tpope/vim-markdown' " Markdown
|
|||
"Plug 'rust-lang/rust.vim' " Rust
|
||||
"Plug 'jdonaldson/vaxe' " Haxe
|
||||
|
||||
"//////////////////////////////
|
||||
"
|
||||
"
|
||||
"
|
||||
|
||||
call plug#end()
|
||||
filetype plugin indent on
|
||||
|
||||
"---------------------------------------------------------------------------------------------------
|
||||
|
||||
"################################################################
|
||||
"################################################################
|
||||
"################################################################
|
||||
"|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||
"|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||
" #2 BASE CONFIG
|
||||
"################################################################
|
||||
"################################################################
|
||||
"################################################################
|
||||
"|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||
"|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
" BASIC EDITING CONFIGURATION
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
set hidden
|
||||
set history=10000
|
||||
set expandtab
|
||||
|
@ -308,7 +305,6 @@ set scrolloff=3 " keep more context when scrolling off the end
|
|||
set cursorline
|
||||
set cursorcolumn
|
||||
|
||||
"
|
||||
" Store swap, backup and undo files in a central spot. I have my settings in a
|
||||
" `vimrc.private` so that my drive paths aren't in this config. If you want to
|
||||
" set them here then add:
|
||||
|
@ -329,7 +325,6 @@ augroup backupCmds
|
|||
augroup END
|
||||
set writebackup " Make buckup before overwriting the current buffer.
|
||||
|
||||
"
|
||||
" Keep undo history across sessions by storing it in a file. The undo save
|
||||
" location is set in the vimrc.private file. You can also set it here with:
|
||||
" set undodir=<path>
|
||||
|
@ -374,6 +369,9 @@ if &term =~ '256color'
|
|||
set t_ut=
|
||||
endif
|
||||
|
||||
" Status line
|
||||
set statusline=%<%f\ (%{&ft})\ %-4(%m%)%=%-19(%3l,%02c%03V%)
|
||||
|
||||
" Disable arrow keys.
|
||||
noremap <up> <nop>
|
||||
noremap <down> <nop>
|
||||
|
@ -384,8 +382,11 @@ inoremap <down> <nop>
|
|||
inoremap <left> <nop>
|
||||
inoremap <right> <nop>
|
||||
|
||||
"---------------------------------------------------------------
|
||||
" Load vimrc.private
|
||||
|
||||
"/////////////////////////////////////////////////
|
||||
" LOAD PRIVATE VIMRC
|
||||
"/////////////////////////////////////////////////
|
||||
|
||||
" This should be done after above base settings that don't use the global
|
||||
" campo variables.
|
||||
"
|
||||
|
@ -395,12 +396,17 @@ if filereadable($HOME . "/.vimrc.private")
|
|||
source $HOME/.vimrc.private
|
||||
endif
|
||||
|
||||
" Settings that use the global campo variables.
|
||||
|
||||
" Settings that use the global campo variables:
|
||||
let &colorcolumn=g:campo_max_line_length
|
||||
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
" CUSTOM AUTOCMDS
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
"|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||
"|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||
" #3 CUSTOM AUTOCMDS
|
||||
"|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||
"|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||
|
||||
augroup campoCmds
|
||||
" Clear all autocmds in the group.
|
||||
autocmd!
|
||||
|
@ -489,9 +495,17 @@ augroup campoCmds
|
|||
|
||||
augroup END
|
||||
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
" MISC KEY MAPS
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
"|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||
"|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||
" #4 KEY MAPPINGS
|
||||
"|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||
"|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||
|
||||
|
||||
"##################################################################################
|
||||
" MISC
|
||||
"##################################################################################
|
||||
|
||||
" Lowercase the e (have a habit of making it uppercase).
|
||||
:ca E e
|
||||
|
@ -515,9 +529,75 @@ nnoremap <silent> <leader>rv :source $MYVIMRC<cr>
|
|||
" the full %/ quickly otherwise it won't replace it.
|
||||
cmap %/ %:p:h/
|
||||
|
||||
"------------------------------------------------------------
|
||||
" Remap saving and quiting.
|
||||
"
|
||||
" Open a terminal within vim. Use `exit` to close it.
|
||||
" DISABLING because I don't use this and I want to use the <leader>t for opening my todo file.
|
||||
"if exists(':terminal')
|
||||
" noremap <leader>t :terminal<cr>
|
||||
" tnoremap <leader>te <C-\><C-n>
|
||||
" tnoremap <A-h> <C-\><C-n><C-w>h
|
||||
" tnoremap <A-j> <C-\><C-n><C-w>j
|
||||
" tnoremap <A-k> <C-\><C-n><C-w>k
|
||||
" tnoremap <A-l> <C-\><C-n><C-w>l
|
||||
" nnoremap <A-h> <C-w>h
|
||||
" nnoremap <A-j> <C-w>j
|
||||
" nnoremap <A-k> <C-w>k
|
||||
" nnoremap <A-l> <C-w>l
|
||||
"endif
|
||||
|
||||
" Jump to other buffers.
|
||||
noremap <c-k> <c-w><Up>
|
||||
noremap <c-j> <c-w><Down>
|
||||
noremap <c-l> <c-w><Right>
|
||||
noremap <c-h> <c-w><Left>
|
||||
|
||||
" Make it easier to jump around the command line. The default behaviour is
|
||||
" using the arrow keys with or without shift.
|
||||
:cnoremap <C-J> <S-Left>
|
||||
:cnoremap <C-K> <S-Right>
|
||||
|
||||
" Window splitting - couldn't figure out how to remap <c-w>v & <c-w>n to <c-m>
|
||||
" & <c-n>
|
||||
noremap <leader>m :vsplit<cr>
|
||||
noremap <leader>mm :split<cr>
|
||||
|
||||
" Forward delete and replace a word.
|
||||
noremap <leader>d ciw
|
||||
|
||||
" Allow fast pasting by accessing the system clipboard register.
|
||||
noremap <leader>p "+p
|
||||
" Likely won't need to use this if pasting with <leader>p, but just in case here ya go.
|
||||
noremap <leader>pp :set paste! paste?<cr>
|
||||
|
||||
" Toggle line numbers.
|
||||
noremap <leader>o :set number! number?<cr>
|
||||
|
||||
" Show spell checking.
|
||||
" You can add new entries to the dict by moving the cursor over the word and pressing `zg`.
|
||||
noremap <leader>j :exec &spell==&spell? "se spell! spelllang=en_us" : "se spell!"<cr>
|
||||
noremap <leader>= z=
|
||||
|
||||
" Clear the search buffer (highlighting) when hitting return.
|
||||
nnoremap <cr> :nohlsearch<cr>
|
||||
|
||||
" Switch to the previous file.
|
||||
nnoremap <leader><leader> <c-^>
|
||||
|
||||
" Replace currently selected text with default register without yanking it.
|
||||
vnoremap p "_dP
|
||||
|
||||
" Switch between C++ source and header files.
|
||||
noremap <leader>v :e %:p:s,.h$,.X123X,:s,.cpp$,.h,:s,.X123X$,.cpp,<CR>
|
||||
"noremap <leader>vv :e %:p:s,.h$,.X123X,:s,.c$,.h,:s,.X123X$,.c,<CR>
|
||||
"noremap <leader>vvv :e %:p:s,.h$,.X123X,:s,.cc$,.h,:s,.X123X$,.cc,<CR>
|
||||
|
||||
" Replace all instances of the highlighted text with whatever you enter.
|
||||
nnoremap <c-g> :%s///g<left><left>
|
||||
|
||||
|
||||
"##################################################################################
|
||||
" SAVING AND QUITING
|
||||
"##################################################################################
|
||||
|
||||
" I used to have a BufWritePost autocommand that ran the ctags generator but
|
||||
" it ends up running multiple times when saving multiple buffers at once. In
|
||||
" order to only call it once for a group of saves I've had to remap the
|
||||
|
@ -617,76 +697,10 @@ command! Qa qall
|
|||
" Disable Ex mode.
|
||||
noremap Q <Nop>
|
||||
|
||||
"------------------------------------------------------------
|
||||
|
||||
" Open a terminal within vim. Use `exit` to close it.
|
||||
" DISABLING because I don't use this and I want to use the <leader>t for opening my todo file.
|
||||
"if exists(':terminal')
|
||||
" noremap <leader>t :terminal<cr>
|
||||
" tnoremap <leader>te <C-\><C-n>
|
||||
" tnoremap <A-h> <C-\><C-n><C-w>h
|
||||
" tnoremap <A-j> <C-\><C-n><C-w>j
|
||||
" tnoremap <A-k> <C-\><C-n><C-w>k
|
||||
" tnoremap <A-l> <C-\><C-n><C-w>l
|
||||
" nnoremap <A-h> <C-w>h
|
||||
" nnoremap <A-j> <C-w>j
|
||||
" nnoremap <A-k> <C-w>k
|
||||
" nnoremap <A-l> <C-w>l
|
||||
"endif
|
||||
|
||||
" Jump to other buffers.
|
||||
noremap <c-k> <c-w><Up>
|
||||
noremap <c-j> <c-w><Down>
|
||||
noremap <c-l> <c-w><Right>
|
||||
noremap <c-h> <c-w><Left>
|
||||
|
||||
" Make it easier to jump around the command line. The default behaviour is
|
||||
" using the arrow keys with or without shift.
|
||||
:cnoremap <C-J> <S-Left>
|
||||
:cnoremap <C-K> <S-Right>
|
||||
|
||||
" Window splitting - couldn't figure out how to remap <c-w>v & <c-w>n to <c-m>
|
||||
" & <c-n>
|
||||
noremap <leader>m :vsplit<cr>
|
||||
noremap <leader>mm :split<cr>
|
||||
|
||||
" Forward delete and replace a word.
|
||||
noremap <leader>d ciw
|
||||
|
||||
" Allow fast pasting by accessing the system clipboard register.
|
||||
noremap <leader>p "+p
|
||||
" Likely won't need to use this if pasting with <leader>p, but just in case here ya go.
|
||||
noremap <leader>pp :set paste! paste?<cr>
|
||||
|
||||
" Toggle line numbers.
|
||||
noremap <leader>o :set number! number?<cr>
|
||||
|
||||
" Show spell checking.
|
||||
" You can add new entries to the dict by moving the cursor over the word and pressing `zg`.
|
||||
noremap <leader>j :exec &spell==&spell? "se spell! spelllang=en_us" : "se spell!"<cr>
|
||||
noremap <leader>= z=
|
||||
|
||||
" Clear the search buffer (highlighting) when hitting return.
|
||||
nnoremap <cr> :nohlsearch<cr>
|
||||
|
||||
" Switch to the previous file.
|
||||
nnoremap <leader><leader> <c-^>
|
||||
|
||||
" Replace currently selected text with default register without yanking it.
|
||||
vnoremap p "_dP
|
||||
|
||||
" Switch between C++ source and header files.
|
||||
noremap <leader>v :e %:p:s,.h$,.X123X,:s,.cpp$,.h,:s,.X123X$,.cpp,<CR>
|
||||
"noremap <leader>vv :e %:p:s,.h$,.X123X,:s,.c$,.h,:s,.X123X$,.c,<CR>
|
||||
"noremap <leader>vvv :e %:p:s,.h$,.X123X,:s,.cc$,.h,:s,.X123X$,.cc,<CR>
|
||||
|
||||
" Replace all instances of the highlighted text with whatever you enter.
|
||||
nnoremap <c-g> :%s///g<left><left>
|
||||
|
||||
|
||||
"////////////////////////////////////////////////////////////////
|
||||
"##################################################################################
|
||||
" MULTIPURPOSE TAB KEY
|
||||
"////////////////////////////////////////////////////////////////
|
||||
"##################################################################################
|
||||
function! InsertTabWrapper()
|
||||
let l:col = col('.') - 1
|
||||
if !l:col || getline('.')[l:col - 1] !~ '\k'
|
||||
|
@ -699,32 +713,34 @@ inoremap <tab> <c-r>=InsertTabWrapper()<cr>
|
|||
inoremap <s-tab> <c-n>
|
||||
|
||||
|
||||
"---------------------------------------------------------------------------------------------------
|
||||
"|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||
"|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||
" #5 PLUGIN CONFIGS
|
||||
"|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||
"|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||
|
||||
"################################################################
|
||||
"################################################################
|
||||
"################################################################
|
||||
"#3 PLUGIN CONFIGS
|
||||
"################################################################
|
||||
"################################################################
|
||||
"################################################################
|
||||
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
"##################################################################################
|
||||
" LOCAL VIMRC
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
"##################################################################################
|
||||
let g:localvimrc_sandbox = 0
|
||||
let g:localvimrc_ask = 0
|
||||
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
"##################################################################################
|
||||
" LION (TEXT ALIGNMENT)
|
||||
"##################################################################################
|
||||
let b:lion_squeeze_spaces = 1
|
||||
|
||||
"##################################################################################
|
||||
" TAGBAR
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
"##################################################################################
|
||||
noremap <F12> :TagbarToggle<cr>
|
||||
" Sort tags by their order in the source file. Press 's' to sort them alphabetically.
|
||||
let g:tagbar_sort = 0
|
||||
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
"##################################################################################
|
||||
" GITGUTTER
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
"##################################################################################
|
||||
let g:gitgutter_enabled = 1
|
||||
let g:gitgutter_highlight_lines = 0
|
||||
nnoremap <leader>hh :GitGutterToggle<cr>
|
||||
|
@ -738,9 +754,9 @@ augroup gitGutterPluginCmds
|
|||
autocmd BufWritePost * GitGutter
|
||||
augroup END
|
||||
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
"##################################################################################
|
||||
" SYNTASTIC
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
"##################################################################################
|
||||
" NOTE: there is a status line config in the status line section
|
||||
let g:syntastic_always_populate_loc_list = 1
|
||||
let g:syntastic_auto_loc_list = 1
|
||||
|
@ -754,16 +770,15 @@ let g:syntastic_check_on_wq = 0
|
|||
"let g:syntastic_rust_rustc_fname = ''
|
||||
"let g:syntastic_rust_checkers = ['rustc']
|
||||
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
"##################################################################################
|
||||
" RIPGREP
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
"##################################################################################
|
||||
let g:rg_highlight = 1
|
||||
let g:rg_window_height = g:quickfix_pane_height
|
||||
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
"##################################################################################
|
||||
" C-TAGS
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
"##################################################################################
|
||||
" Set extra paths to use when searching for ctags files. By default the current
|
||||
" directory is always checked. You can use this to combine tag lookups from
|
||||
" different projects, e.g. set it to the Jai directory and you can look up
|
||||
|
@ -783,9 +798,9 @@ function! g:SetExtraCtagsPaths(paths_array)
|
|||
let &tags=l:list
|
||||
endfunction
|
||||
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
"##################################################################################
|
||||
" CTRL-P
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
"##################################################################################
|
||||
" keybindings:
|
||||
"
|
||||
" leader-f = open CtrlP in tag searching mode.
|
||||
|
@ -850,40 +865,39 @@ let g:ctrlp_switch_buffer = 'et' " If a file is already open, open it again in a
|
|||
let g:ctrlp_custom_ignore = '\v[\/]\.(git|hg|svn)$'
|
||||
let g:ctrlp_user_command = ['.git', 'cd %s && git ls-files -co --exclude-standard'] " If a git repo, use checked in files (ignore things in .gitignore); fallback to globpath()
|
||||
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
"##################################################################################
|
||||
" GIT
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
"##################################################################################
|
||||
noremap <leader>gb :Git blame -w<cr>
|
||||
" Ignore whitespace changes; follow renames and copies.
|
||||
command! -bar -bang -nargs=* Blame :Git blame<bang> -wCM <args>
|
||||
command! -bar -bang -nargs=* Gblame :Git blame<bang> -wCM <args>
|
||||
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
"##################################################################################
|
||||
" GIST VIM
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
"##################################################################################
|
||||
let g:gist_detect_filetype = 1
|
||||
let g:gist_open_browser_after_post = 1
|
||||
let g:gist_show_privates = 1
|
||||
let g:gist_post_private = 1
|
||||
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
"##################################################################################
|
||||
" VIM-CLOJURE-STATIC
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
"##################################################################################
|
||||
" Default
|
||||
let g:clojure_fuzzy_indent = 1
|
||||
let g:clojure_align_multiline_strings = 1
|
||||
let g:clojure_fuzzy_indent_patterns = ['^match', '^with', '^def', '^let']
|
||||
let g:clojure_fuzzy_indent_blacklist = ['-fn$', '\v^with-%(meta|out-str|loading-context)$']
|
||||
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
"##################################################################################
|
||||
" RUST.VIM
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
"##################################################################################
|
||||
"let g:rustfmt_autosave = 1 " auto run rust formatter when saving
|
||||
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
"##################################################################################
|
||||
" RAINBOW
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
"##################################################################################
|
||||
let g:rainbow_active = 1 " Always on
|
||||
let s:light_rainbow = ['red', 'green', 'magenta', 'cyan', 'yellow', 'white', 'gray', 'blue']
|
||||
let s:dark_rainbow = ['darkblue', 'red', 'black', 'darkgreen', 'darkyellow', 'darkred', 'darkgray']
|
||||
|
@ -916,57 +930,17 @@ function! ReloadRainbow()
|
|||
endif
|
||||
endfunction
|
||||
|
||||
"---------------------------------------------------------------------------------------------------
|
||||
|
||||
"################################################################
|
||||
"################################################################
|
||||
"################################################################
|
||||
"#4 VISUALS
|
||||
"################################################################
|
||||
"################################################################
|
||||
"################################################################
|
||||
"|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||
"|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||
" #6 VISUALS (COLORS, HIGHLIGHTING)
|
||||
"|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||
"|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||
|
||||
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
" LAYOUT
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
"////////////////////////////////////////////////////////////////
|
||||
" CENTER THE BUFFER
|
||||
"////////////////////////////////////////////////////////////////
|
||||
|
||||
function! CenterPane()
|
||||
" centers the current pane as the middle 2 of 4 imaginary columns
|
||||
" should be called in a window with a single pane
|
||||
" Taken from https://dev.to/vinneycavallo/easily-center-content-in-vim
|
||||
lefta vnew
|
||||
wincmd w
|
||||
exec 'vertical resize' string(&columns * 0.65)
|
||||
endfunction
|
||||
nnoremap <leader>c :call CenterPane()<cr>
|
||||
|
||||
function! RemoveCenterPane()
|
||||
wincmd w
|
||||
close
|
||||
endfunction
|
||||
nnoremap <leader>cw :call RemoveCenterPane()<cr>
|
||||
|
||||
|
||||
"////////////////////////////////////////////////////////////////
|
||||
" TEXT ALIGNMENT PLUGIN
|
||||
"////////////////////////////////////////////////////////////////
|
||||
let b:lion_squeeze_spaces = 1
|
||||
|
||||
|
||||
"////////////////////////////////////////////////////////////////
|
||||
" STATUS LINE
|
||||
"////////////////////////////////////////////////////////////////
|
||||
set statusline=%<%f\ (%{&ft})\ %-4(%m%)%=%-19(%3l,%02c%03V%)
|
||||
|
||||
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
"###########################################################################
|
||||
" COLORS
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
"###########################################################################
|
||||
|
||||
exec "autocmd ColorScheme " . g:campo_dark_theme . " call ReloadRainbow()"
|
||||
exec "autocmd ColorScheme " . g:campo_light_theme . " call ReloadRainbow()"
|
||||
|
@ -1014,7 +988,6 @@ else
|
|||
call ChangeLightDarkMode('dark', 1)
|
||||
endif
|
||||
|
||||
|
||||
" Open the current color scheme for editing.
|
||||
function! EditColorScheme()
|
||||
let l:path = g:vim_dir . '/colors/' . s:theme . '.vim'
|
||||
|
@ -1027,9 +1000,9 @@ endfunction
|
|||
|
||||
command -nargs=0 EditColorScheme call EditColorScheme()
|
||||
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
"##################################################################################
|
||||
" HIGHLIGHTS - TODO, NOTE, FIXME, etc
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
"##################################################################################
|
||||
|
||||
" NOTE: These depend on custom color names (Bugs, Notes and Notices) defined
|
||||
" in the campo color themes. Since most themes won't define these, you can
|
||||
|
@ -1072,19 +1045,18 @@ augroup vimrc_annotated_notes
|
|||
\ containedin=.*Comment,vimCommentTitle
|
||||
augroup END
|
||||
|
||||
"---------------------------------------------------------------------------------------------------
|
||||
|
||||
"################################################################
|
||||
"################################################################
|
||||
"################################################################
|
||||
"#5 CUSTOM FUNCTIONS / COMMANDS
|
||||
"################################################################
|
||||
"################################################################
|
||||
"################################################################
|
||||
"|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||
"|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||
" #7 CUSTOM FUNCTIONS & COMMANDS
|
||||
"|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||
"|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||
|
||||
|
||||
"##################################################################################
|
||||
" COMPILING CODE
|
||||
"##################################################################################
|
||||
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
" BUILD COMMANDS
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
" AsyncRun status line
|
||||
let g:airline_section_error = airline#section#create_right(['%{g:asyncrun_status}'])
|
||||
|
||||
|
@ -1108,9 +1080,9 @@ let errormarker_warninggroup = "BuildWarn"
|
|||
let errormarker_infogroup = "BuildInfo"
|
||||
|
||||
|
||||
"""""""""""""""""""""""""
|
||||
" Custom error formats
|
||||
"""""""""""""""""""""""""
|
||||
"/////////////////////////////////////////////////
|
||||
" CUSTOM ERROR FORMATS
|
||||
"/////////////////////////////////////////////////
|
||||
|
||||
" @note: You can debug the error parsing by running :ShowErrorEntries
|
||||
" This will print the valid entries. You'll know parsing is correct when the
|
||||
|
@ -1127,17 +1099,18 @@ function! ShowErrorEntries()
|
|||
endfunction
|
||||
command -nargs=0 ShowErrorEntries call ShowErrorEntries()
|
||||
|
||||
|
||||
" Jai
|
||||
"
|
||||
" Z:\path\main.jai:100,10: Error: Undeclared identifier 's1'.
|
||||
set errorformat=\\\ %#%f:%l\\,%c:\ %t%[A-z]%#:\ %m
|
||||
|
||||
|
||||
" Microsoft compiler: cl.exe
|
||||
"
|
||||
" Z:\path\main.cpp(2808): error C2220: the following warning is treated as an error
|
||||
set errorformat+=\\\ %#%f(%l):\ %#%t%[A-z]%#\ %[A-z]%#%n:\ %m
|
||||
|
||||
|
||||
" Microsoft MSBuild errors
|
||||
"
|
||||
" @note I got this off the Internet and haven't tested it yet.
|
||||
|
@ -1145,15 +1118,17 @@ set errorformat+=\\\ %#%f(%l):\ %#%t%[A-z]%#\ %[A-z]%#%n:\ %m
|
|||
" Z:\path\main.cpp(2808): error C2220: the following warning is treated as an error
|
||||
set errorformat+=\\\ %#%f(%l\\,%c):\ %m
|
||||
|
||||
|
||||
" Microsoft HLSL compiler: fxc.exe
|
||||
"
|
||||
" @note I got this off the Internet and haven't tested it yet.
|
||||
" @todo Add an example
|
||||
set errorformat+=\\\ %#%f(%l\\\,%c-%*[0-9]):\ %#%t%[A-z]%#\ %m
|
||||
|
||||
"""""""""""""""""""""""""
|
||||
" Build functions
|
||||
"""""""""""""""""""""""""
|
||||
|
||||
"/////////////////////////////////////////////////
|
||||
" BUILD FUNCTIONS
|
||||
"/////////////////////////////////////////////////
|
||||
|
||||
function! HideBuildResultsAndClearErrors()
|
||||
RemoveErrorMarkers
|
||||
|
@ -1269,9 +1244,9 @@ nnoremap <F6> :cp<CR>
|
|||
nnoremap <C-p> :cp<CR>
|
||||
|
||||
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
" SEARCH
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
"##################################################################################
|
||||
" TEXT SEARCH
|
||||
"##################################################################################
|
||||
|
||||
" Search using ripgrep (first install with Rust: cargo install ripgrep).
|
||||
function! Search(path, search_args, case_insensitive=0)
|
||||
|
@ -1297,25 +1272,28 @@ function! Search(path, search_args, case_insensitive=0)
|
|||
exec l:cmd
|
||||
endfunction
|
||||
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
" Search in current directory.
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
"/////////////////////////////////////////////////
|
||||
" SEARCH IN CURRENT DIRECTORY
|
||||
"/////////////////////////////////////////////////
|
||||
|
||||
" Case insensitive:
|
||||
noremap <leader>s :call Search('.', g:campo_custom_search_args, 1)<cr>
|
||||
" Case sensitive:
|
||||
noremap <leader>ss :call Search('.', g:campo_custom_search_args)<cr>
|
||||
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
" # Search in directory containing the active file.
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
"/////////////////////////////////////////////////
|
||||
" SEARCH IN DIRECTORY CONTAINING THE ACTIVE FILE
|
||||
"/////////////////////////////////////////////////
|
||||
|
||||
" Case insensitive:
|
||||
noremap <leader>sf :call Search(expand('%:p:h'), g:campo_custom_search_args, 1)<cr>
|
||||
" Case sensitive:
|
||||
noremap <leader>ssf :call Search(expand('%:p:h'), g:campo_custom_search_args)<cr>
|
||||
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
" Search in Jai folders
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
"/////////////////////////////////////////////////
|
||||
" SEARCH IN JAI FOLDERS
|
||||
"/////////////////////////////////////////////////
|
||||
|
||||
" Case insensitive:
|
||||
noremap <leader>sg :call Search(g:campo_jai_path, g:campo_custom_search_args, 1)<cr>
|
||||
noremap <leader>sm :call Search(g:campo_jai_path . '/modules', g:campo_custom_search_args, 1)<cr>
|
||||
|
@ -1333,9 +1311,10 @@ noremap <leader>sse :call Search(g:campo_jai_path . '/examples', g:campo_custom_
|
|||
nnoremap <expr> o (&buftype is# "quickfix" ? "<CR>\|:lopen<CR>" : "o")
|
||||
nnoremap <expr> p (&buftype is# "quickfix" ? "<CR>\|:copen<CR>" : "p")
|
||||
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
" SEARCH & REPLACE
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
"##################################################################################
|
||||
" TEXT SEARCH & REPLACE
|
||||
"##################################################################################
|
||||
|
||||
" @warning I've stopped using this because it sometimes locks up vim and I
|
||||
" have to force exit the process then clean up the swap files.
|
||||
|
@ -1402,9 +1381,10 @@ noremap <leader>r :call GlobalReplaceIt(0)<cr>
|
|||
noremap <leader>rr :call GlobalReplaceIt(1)<cr>
|
||||
|
||||
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
"##################################################################################
|
||||
" RENAME CURRENT FILE
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
"##################################################################################
|
||||
|
||||
function! RenameFile()
|
||||
let l:old_name = expand('%')
|
||||
let l:new_name = input('New file name: ', expand('%'), 'file')
|
||||
|
@ -1419,6 +1399,27 @@ function! RenameFile()
|
|||
endfunction
|
||||
noremap <leader>n :call RenameFile()<cr>
|
||||
|
||||
"---------------------------------------------------------------------------------------------------
|
||||
|
||||
"##################################################################################
|
||||
" CENTER THE BUFFER
|
||||
"##################################################################################
|
||||
|
||||
function! CenterPane()
|
||||
" centers the current pane as the middle 2 of 4 imaginary columns
|
||||
" should be called in a window with a single pane
|
||||
" Taken from https://dev.to/vinneycavallo/easily-center-content-in-vim
|
||||
lefta vnew
|
||||
wincmd w
|
||||
exec 'vertical resize' string(&columns * 0.65)
|
||||
endfunction
|
||||
nnoremap <leader>c :call CenterPane()<cr>
|
||||
|
||||
function! RemoveCenterPane()
|
||||
wincmd w
|
||||
close
|
||||
endfunction
|
||||
nnoremap <leader>cw :call RemoveCenterPane()<cr>
|
||||
|
||||
"-----------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
let g:campo_vimrc_initialized = 1
|
||||
|
|
Loading…
Reference in New Issue
Block a user