vimrc cleanup (move templates, remove static scopes)
This commit is contained in:
		
							parent
							
								
									9e07b24cf7
								
							
						
					
					
						commit
						cef7886859
					
				
							
								
								
									
										157
									
								
								vimrc
									
									
									
									
									
								
							
							
						
						
									
										157
									
								
								vimrc
									
									
									
									
									
								
							| 
						 | 
					@ -435,9 +435,10 @@ augroup campoCmds
 | 
				
			||||||
    autocmd BufWritePost .vimrc silent! source $MYVIMRC
 | 
					    autocmd BufWritePost .vimrc silent! source $MYVIMRC
 | 
				
			||||||
    autocmd BufWritePost *.vim silent! source $MYVIMRC
 | 
					    autocmd BufWritePost *.vim silent! source $MYVIMRC
 | 
				
			||||||
    autocmd BufWritePost ~/.vimrc.private silent! source $MYVIMRC
 | 
					    autocmd BufWritePost ~/.vimrc.private silent! source $MYVIMRC
 | 
				
			||||||
 | 
					    autocmd BufWritePost ~/.vimrc_templates.private silent! source $MYVIMRC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    " Remove trailing whitespace when saving any file.
 | 
					    " Remove trailing whitespace when saving any file.
 | 
				
			||||||
    function! s:StripTrailingWhitespaces()
 | 
					    function! StripTrailingWhitespaces()
 | 
				
			||||||
        if g:campo_strip_trailing_whitespace == 1
 | 
					        if g:campo_strip_trailing_whitespace == 1
 | 
				
			||||||
            if len(g:campo_directories_to_ignore_when_stripping_trailing_whitespace)
 | 
					            if len(g:campo_directories_to_ignore_when_stripping_trailing_whitespace)
 | 
				
			||||||
                for path in g:campo_directories_to_ignore_when_stripping_trailing_whitespace
 | 
					                for path in g:campo_directories_to_ignore_when_stripping_trailing_whitespace
 | 
				
			||||||
| 
						 | 
					@ -484,127 +485,8 @@ augroup campoCmds
 | 
				
			||||||
        %s/\s\+$//e
 | 
					        %s/\s\+$//e
 | 
				
			||||||
        call cursor(l, c)
 | 
					        call cursor(l, c)
 | 
				
			||||||
    endfun
 | 
					    endfun
 | 
				
			||||||
    autocmd BufWritePre * call s:StripTrailingWhitespaces()
 | 
					    autocmd BufWritePre * call StripTrailingWhitespaces()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    "////////////////////////////////////////////////////////////////
 | 
					 | 
				
			||||||
    " FILE TEMPLATES
 | 
					 | 
				
			||||||
    "////////////////////////////////////////////////////////////////
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    " C/C++ template.
 | 
					 | 
				
			||||||
    function! s:CFileTemplate()
 | 
					 | 
				
			||||||
        let s:env = {
 | 
					 | 
				
			||||||
            \ 'filename': expand('%:t'),
 | 
					 | 
				
			||||||
            \ 'creation_date': strftime('%Y-%m-%d'),
 | 
					 | 
				
			||||||
            \ 'year': strftime('%Y'),
 | 
					 | 
				
			||||||
            \ 'copyright_owner': 'Jelly Pixel, Inc. All Rights Reserved.'
 | 
					 | 
				
			||||||
            \}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
         let l:template =<< trim EOS
 | 
					 | 
				
			||||||
            /*==================================================================================================
 | 
					 | 
				
			||||||
            File: ${filename}
 | 
					 | 
				
			||||||
            Creation Date: ${creation_date}
 | 
					 | 
				
			||||||
            Creator: Michael Campagnaro
 | 
					 | 
				
			||||||
            Notice!: (C) Copyright ${year} by ${copyright_owner}
 | 
					 | 
				
			||||||
            ================================================================================================*/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            ////////////////////////////////////////////////////////////////////////////////////////////////////
 | 
					 | 
				
			||||||
            // # Defines
 | 
					 | 
				
			||||||
            ////////////////////////////////////////////////////////////////////////////////////////////////////
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            ////////////////////////////////////////////////////////////////////////////////////////////////////
 | 
					 | 
				
			||||||
            // # Globals
 | 
					 | 
				
			||||||
            ////////////////////////////////////////////////////////////////////////////////////////////////////
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            ////////////////////////////////////////////////////////////////////////////////////////////////////
 | 
					 | 
				
			||||||
            // # Structs
 | 
					 | 
				
			||||||
            ////////////////////////////////////////////////////////////////////////////////////////////////////
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            ////////////////////////////////////////////////////////////////////////////////////////////////////
 | 
					 | 
				
			||||||
            // # Macros
 | 
					 | 
				
			||||||
            ////////////////////////////////////////////////////////////////////////////////////////////////////
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            ////////////////////////////////////////////////////////////////////////////////////////////////////
 | 
					 | 
				
			||||||
            // # Private API
 | 
					 | 
				
			||||||
            ////////////////////////////////////////////////////////////////////////////////////////////////////
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            ////////////////////////////////////////////////////////////////////////////////////////////////////
 | 
					 | 
				
			||||||
            // # Public API
 | 
					 | 
				
			||||||
            ////////////////////////////////////////////////////////////////////////////////////////////////////
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
EOS
 | 
					 | 
				
			||||||
        return map(l:template, { _, line -> substitute(line, '${\(.\{-}\)}', '\=get(s:env, submatch(1), submatch(1))', 'g') } )
 | 
					 | 
				
			||||||
    endfunction
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    function! s:InsertCHeaderGates()
 | 
					 | 
				
			||||||
        call append(0, '#pragma once')
 | 
					 | 
				
			||||||
        "let l:gatename = substitute(toupper(expand("%:t")), '\\.', '_', 'g')
 | 
					 | 
				
			||||||
        "call append(0, '#ifndef '. l:gatename)
 | 
					 | 
				
			||||||
        "call append(line('$'), '#define '. l:gatename)
 | 
					 | 
				
			||||||
        "call append(line('$'), '#endif')
 | 
					 | 
				
			||||||
    endfunction
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    " sh template
 | 
					 | 
				
			||||||
    function! s:ShellScriptTemplate()
 | 
					 | 
				
			||||||
         let l:template =<< trim EOS
 | 
					 | 
				
			||||||
            #!/usr/bin/env bash
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            if which tput >/dev/null 2>&1; then
 | 
					 | 
				
			||||||
              ncolors=$(tput colors)
 | 
					 | 
				
			||||||
            fi
 | 
					 | 
				
			||||||
            if [ -t 1 ] && [ -n "$ncolors" ] && [ "$ncolors" -ge 8 ]; then
 | 
					 | 
				
			||||||
                RED="$(tput setaf 1)"
 | 
					 | 
				
			||||||
                GREEN="$(tput setaf 2)"
 | 
					 | 
				
			||||||
                YELLOW="$(tput setaf 3)"
 | 
					 | 
				
			||||||
                BLUE="$(tput setaf 4)"
 | 
					 | 
				
			||||||
                MAGENTA="$(tput setaf 5)"
 | 
					 | 
				
			||||||
                CYAN="$(tput setaf 6)"
 | 
					 | 
				
			||||||
                BOLD="$(tput bold)"
 | 
					 | 
				
			||||||
                DIM="\e[2m"
 | 
					 | 
				
			||||||
                NORMAL="$(tput sgr0)"
 | 
					 | 
				
			||||||
            else
 | 
					 | 
				
			||||||
                RED=""
 | 
					 | 
				
			||||||
                GREEN=""
 | 
					 | 
				
			||||||
                YELLOW=""
 | 
					 | 
				
			||||||
                BLUE=""
 | 
					 | 
				
			||||||
                MAGENTA=""
 | 
					 | 
				
			||||||
                CYAN=""
 | 
					 | 
				
			||||||
                BOLD=""
 | 
					 | 
				
			||||||
                NORMAL=""
 | 
					 | 
				
			||||||
            fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            error() {
 | 
					 | 
				
			||||||
                printf "${BOLD}${RED}$1${NORMAL}\n"
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            abort() {
 | 
					 | 
				
			||||||
                error "\nAborting..."
 | 
					 | 
				
			||||||
                exit 1
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            set -e
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            cwd=$PWD
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            uname_s="$(uname -s)"
 | 
					 | 
				
			||||||
            case "${uname_s}" in
 | 
					 | 
				
			||||||
                Linux*)   machine=Linux;;
 | 
					 | 
				
			||||||
                Darwin*)  machine=MacOS;;
 | 
					 | 
				
			||||||
                CYGWIN*)  machine=Cygwin;;
 | 
					 | 
				
			||||||
                MINGW*)   machine=MinGw;;
 | 
					 | 
				
			||||||
                *)        machine="UNKNOWN:${uname_s}"
 | 
					 | 
				
			||||||
            esac
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            printf "${YELLOW}Platform: $machine${NORMAL}\n"
 | 
					 | 
				
			||||||
EOS
 | 
					 | 
				
			||||||
        return l:template
 | 
					 | 
				
			||||||
    endfunction
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    " Shell script template.
 | 
					 | 
				
			||||||
    autocmd BufNewFile *.sh call append(0, s:ShellScriptTemplate())
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    " C/C++ file.
 | 
					 | 
				
			||||||
    autocmd BufNewFile *.{c,cc,cpp,h,hpp,inl} call append(0, s:CFileTemplate())
 | 
					 | 
				
			||||||
    autocmd BufNewFile *.{h,hpp,inl} call s:InsertCHeaderGates()
 | 
					 | 
				
			||||||
augroup END
 | 
					augroup END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 | 
					"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 | 
				
			||||||
| 
						 | 
					@ -641,7 +523,7 @@ cmap %/ %:p:h/
 | 
				
			||||||
" order to only call it once for a group of saves I've had to remap the
 | 
					" order to only call it once for a group of saves I've had to remap the
 | 
				
			||||||
" various save commands to a function call.
 | 
					" various save commands to a function call.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function! s:CreateCtags()
 | 
					function! CreateCtags()
 | 
				
			||||||
    " Only allow one instance of ctags to run in this directory at any given time.
 | 
					    " Only allow one instance of ctags to run in this directory at any given time.
 | 
				
			||||||
    let l:lock_file = "ctags.lock"
 | 
					    let l:lock_file = "ctags.lock"
 | 
				
			||||||
    if filereadable(l:lock_file) || filereadable("newtags")
 | 
					    if filereadable(l:lock_file) || filereadable("newtags")
 | 
				
			||||||
| 
						 | 
					@ -697,12 +579,12 @@ endfun
 | 
				
			||||||
" file using <leader>rv or whatever. :ReloadVimrcError
 | 
					" file using <leader>rv or whatever. :ReloadVimrcError
 | 
				
			||||||
function! DoSingleWrite()
 | 
					function! DoSingleWrite()
 | 
				
			||||||
    write!
 | 
					    write!
 | 
				
			||||||
    call s:CreateCtags()
 | 
					    call CreateCtags()
 | 
				
			||||||
endfunction
 | 
					endfunction
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function! DoSingleWriteThenQuit()
 | 
					function! DoSingleWriteThenQuit()
 | 
				
			||||||
    write!
 | 
					    write!
 | 
				
			||||||
    call s:CreateCtags()
 | 
					    call CreateCtags()
 | 
				
			||||||
    quit
 | 
					    quit
 | 
				
			||||||
endfunction
 | 
					endfunction
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -713,7 +595,7 @@ function! DoMultiWrite()
 | 
				
			||||||
    bufdo wa
 | 
					    bufdo wa
 | 
				
			||||||
    " Restore the last buffer because it may have changed.
 | 
					    " Restore the last buffer because it may have changed.
 | 
				
			||||||
    exec "buffer " . l:current_buffer
 | 
					    exec "buffer " . l:current_buffer
 | 
				
			||||||
    call s:CreateCtags()
 | 
					    call CreateCtags()
 | 
				
			||||||
endfunction
 | 
					endfunction
 | 
				
			||||||
 | 
					
 | 
				
			||||||
cnoreabbrev w  :call DoSingleWrite()
 | 
					cnoreabbrev w  :call DoSingleWrite()
 | 
				
			||||||
| 
						 | 
					@ -800,29 +682,6 @@ noremap <leader>v :e %:p:s,.h$,.X123X,:s,.cpp$,.h,:s,.X123X$,.cpp,<CR>
 | 
				
			||||||
" Replace all instances of the highlighted text with whatever you enter.
 | 
					" Replace all instances of the highlighted text with whatever you enter.
 | 
				
			||||||
nnoremap <c-g> :%s///g<left><left>
 | 
					nnoremap <c-g> :%s///g<left><left>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
"////////////////////////////////////////////////////////////////
 | 
					 | 
				
			||||||
" QUICKLY OPEN C++ SOURCE OR HEADER FILE
 | 
					 | 
				
			||||||
"////////////////////////////////////////////////////////////////
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function! s:CompleteFilenameWithoutExtension(ArgLead, CmdLine, CursorPos)
 | 
					 | 
				
			||||||
    " Returns a matching filename without the period that separates the name
 | 
					 | 
				
			||||||
    " from the extension.
 | 
					 | 
				
			||||||
    let l:file = substitute(glob(a:ArgLead.'*', 0, 0), "[\.].*", "", "*")
 | 
					 | 
				
			||||||
    return l:file
 | 
					 | 
				
			||||||
endfunction
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
" Custom command to open cpp and h files without typing an extension
 | 
					 | 
				
			||||||
"command! -nargs=+ -complete=custom,s:CompleteFilenameWithoutExtension "OpenCppSource exec ':e <args>.cpp'
 | 
					 | 
				
			||||||
":ca c OpenCppSource
 | 
					 | 
				
			||||||
":ca C OpenCppSource
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
"command! -nargs=+ -complete=custom,s:CompleteFilenameWithoutExtension "OpenCppHeader exec ':e <args>.h'
 | 
					 | 
				
			||||||
":ca h OpenCppHeader
 | 
					 | 
				
			||||||
":ca H OpenCppHeader
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
"command! -nargs=+ -complete=custom,s:CompleteFilenameWithoutExtension "OpenCppSourceAndHeader exec ':vsp | :e <args>.h | :sp <args>.cpp'
 | 
					 | 
				
			||||||
":ca b OpenCppSourceAndHeader
 | 
					 | 
				
			||||||
":ca B OpenCppSourceAndHeader
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
"////////////////////////////////////////////////////////////////
 | 
					"////////////////////////////////////////////////////////////////
 | 
				
			||||||
" MULTIPURPOSE TAB KEY
 | 
					" MULTIPURPOSE TAB KEY
 | 
				
			||||||
| 
						 | 
					@ -1533,7 +1392,7 @@ function! GlobalReplaceIt(confirm_replacement) range
 | 
				
			||||||
            silent! exec 'source _replace_session.vim | !rm _replace_session.vim &>/dev/null'
 | 
					            silent! exec 'source _replace_session.vim | !rm _replace_session.vim &>/dev/null'
 | 
				
			||||||
        endif
 | 
					        endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        call s:CreateCtags()
 | 
					        call CreateCtags()
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
        call PrintError("Unable to search since you're not in a git repo!")
 | 
					        call PrintError("Unable to search since you're not in a git repo!")
 | 
				
			||||||
    endif
 | 
					    endif
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user