[vim] moving functions/plugins to separate files

This commit is contained in:
Nick Nisi
2013-07-11 20:27:57 -05:00
parent c932c540fd
commit 54260705d5
3 changed files with 132 additions and 122 deletions

View File

@@ -0,0 +1,87 @@
" Window movement shortcuts
" move to the window in the direction shown, or create a new window
function! WinMove(key)
let t:curwin = winnr()
exec "wincmd ".a:key
if (t:curwin == winnr())
if (match(a:key,'[jk]'))
wincmd v
else
wincmd s
endif
exec "wincmd ".a:key
endif
endfunction
" toggle relative line numbers
function! ToggleNuMode()
if (&rnu == 1)
setlocal nu
else
setlocal rnu
endif
endfunction
" tell me what syntax group the word below the cursor belongs to
function! <SID>SynStack()
if !exists("*synstack")
return
endif
echo map(synstack(line('.'), col('.')), 'synIDattr(v:val, "name")')
endfunction
" recursively search up from dirname, sourcing all .vimrc.local files along the way
function! ApplyLocalSettings(dirname)
" convert windows paths to unix style
let l:curDir = substitute(a:dirname, "\\", "/", "g")
" walk to the top of the dir tree
let l:parentDir = strpart(l:curDir, 0, strridx(l:curDir, "/"))
if isdirectory(l:parentDir)
call ApplyLocalSettings(l:parentDir)
endif
" now walk back down the path and source .vimsettings as you find them.
" child directories can inherit from their parents
let l:settingsFile = a:dirname . "/.vimrc.local"
if filereadable(l:settingsFile)
exec ":source" . l:settingsFile
endif
endfunction
" smart tab completion
function! Smart_TabComplete()
let line = getline('.') " current line
let substr = strpart(line, -1, col('.')+1) " from the start of the current
" line to one character right
" of the cursor
let substr = matchstr(substr, "[^ \t]*$") " word till cursor
if (strlen(substr)==0) " nothing to match on empty string
return "\<tab>"
endif
let has_period = match(substr, '\.') != -1 " position of period, if any
let has_slash = match(substr, '\/') != -1 " position of slash, if any
if (!has_period && !has_slash)
return "\<C-X>\<C-P>" " existing text matching
elseif ( has_slash )
return "\<C-X>\<C-F>" " file matching
else
return "\<C-X>\<C-O>" " plugin matching
endif
endfunction
" execute a custom command
function! RunCustomCommand()
up
if g:silent_custom_command
execute 'silent !' . s:customcommand
else
execute '!' . s:customcommand
endif
endfunction
function! SetCustomCommand()
let s:customcommand = input('Enter Custom Command$ ')
endfunction

View File

@@ -0,0 +1,39 @@
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()
" let vundle manage vundle
Bundle 'gmarik/vundle'
" my vim plugins
Bundle 'kien/ctrlp.vim'
Bundle 'scrooloose/nerdtree'
Bundle 'mileszs/ack.vim'
Bundle 'Raimondi/delimitMate'
Bundle 'tpope/vim-commentary'
Bundle 'tpope/vim-unimpaired'
Bundle 'tpope/vim-endwise'
Bundle 'tpope/vim-fugitive'
Bundle 'othree/html5.vim'
Bundle 'pangloss/vim-javascript'
Bundle 'itspriddle/vim-jquery'
Bundle 'tpope/vim-markdown'
Bundle 'mmalecki/vim-node.js'
" Bundle 'Lokaltog/vim-powerline'
Bundle 'tpope/vim-ragtag'
Bundle 'tpope/vim-surround'
Bundle 'duff/vim-scratch'
" Bundle 'sjl/vitality.vim'
Bundle 'cakebaker/scss-syntax.vim'
Bundle 'kchmck/vim-coffee-script'
Bundle 'groenewege/vim-less'
Bundle 'tsaleh/vim-matchit'
Bundle 'benmills/vimux'
Bundle 'mattn/zencoding-vim'
Bundle 'ap/vim-css-color'
" Bundle 'nicknisi/ir-whack'
Bundle 'flazz/vim-colorschemes'
Bundle 'editorconfig/editorconfig-vim'
Bundle 'juvenn/mustache.vim'
Bundle 'tclem/vim-arduino'
Bundle 'bling/vim-airline'
" Bundle 'scrooloose/syntastic'

View File

@@ -2,46 +2,7 @@
if (!exists('vimrc_already_sourced'))
filetype off
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()
" let vundle manage vundle
Bundle 'gmarik/vundle'
" my vim plugins
Bundle 'kien/ctrlp.vim'
Bundle 'scrooloose/nerdtree'
Bundle 'mileszs/ack.vim'
Bundle 'Raimondi/delimitMate'
Bundle 'tpope/vim-commentary'
Bundle 'tpope/vim-unimpaired'
Bundle 'tpope/vim-endwise'
Bundle 'tpope/vim-fugitive'
Bundle 'othree/html5.vim'
Bundle 'pangloss/vim-javascript'
Bundle 'itspriddle/vim-jquery'
Bundle 'tpope/vim-markdown'
Bundle 'mmalecki/vim-node.js'
" Bundle 'Lokaltog/vim-powerline'
Bundle 'tpope/vim-ragtag'
Bundle 'tpope/vim-surround'
Bundle 'duff/vim-scratch'
" Bundle 'sjl/vitality.vim'
Bundle 'cakebaker/scss-syntax.vim'
Bundle 'kchmck/vim-coffee-script'
Bundle 'groenewege/vim-less'
Bundle 'tsaleh/vim-matchit'
Bundle 'benmills/vimux'
Bundle 'mattn/zencoding-vim'
Bundle 'ap/vim-css-color'
" Bundle 'nicknisi/ir-whack'
Bundle 'flazz/vim-colorschemes'
Bundle 'editorconfig/editorconfig-vim'
Bundle 'juvenn/mustache.vim'
Bundle 'tclem/vim-arduino'
Bundle 'bling/vim-airline'
" Bundle 'scrooloose/syntastic'
source ~/.vim/plugins.vim
filetype plugin indent on
endif
@@ -50,6 +11,9 @@ endif
" => General
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" load functions
source ~/.vim/functions.vim
"""" Abbreviations
abbr funciton function
abbr teh the
@@ -94,7 +58,8 @@ set ttyfast
match ErrorMsg '^\(<\|=\|>\)\{7\}\([^=].\+\)\?$'
" file type specific settings
if has("autocmd")
if has("autocmd") && !exists("autocommands_loaded")
let autocommands_loaded = 1
autocmd FileType yaml setlocal ts=2 sts=2 sw=2 expandtab
autocmd FileType make setlocal ts=8 sts=8 sw=8 noexpandtab
autocmd FileType ruby setlocal ts=2 sts=2 sw=2 expandtab
@@ -250,21 +215,6 @@ nmap <leader>. <c-^>
" enable . command in visual mode
vnoremap . :normal .<cr>
" Window movement shortcuts
" move to the window in the direction shown, or create a new window
function! WinMove(key)
let t:curwin = winnr()
exec "wincmd ".a:key
if (t:curwin == winnr())
if (match(a:key,'[jk]'))
wincmd v
else
wincmd s
endif
exec "wincmd ".a:key
endif
endfunction
map <silent> <C-h> :call WinMove('h')<cr>
map <silent> <C-j> :call WinMove('j')<cr>
map <silent> <C-k> :call WinMove('k')<cr>
@@ -286,84 +236,18 @@ nnoremap <C-y> 3<C-y>
nnoremap <silent> j gj
nnoremap <silent> k gk
function! ToggleNuMode()
if (&rnu == 1)
setlocal nu
else
setlocal rnu
endif
endfunction
nnoremap <leader>/ :call ToggleNuMode()<cr>
" find out what syntax stack a statement belongs to
nmap <leader>s :call <SID>SynStack()<cr>
function! <SID>SynStack()
if !exists("*synstack")
return
endif
echo map(synstack(line('.'), col('.')), 'synIDattr(v:val, "name")')
endfunction
function! ApplyLocalSettings(dirname)
" convert windows paths to unix style
let l:curDir = substitute(a:dirname, "\\", "/", "g")
" walk to the top of the dir tree
let l:parentDir = strpart(l:curDir, 0, strridx(l:curDir, "/"))
if isdirectory(l:parentDir)
call ApplyLocalSettings(l:parentDir)
endif
" now walk back down the path and source .vimsettings as you find them.
" child directories can inherit from their parents
let l:settingsFile = a:dirname . "/.vimrc.local"
if filereadable(l:settingsFile)
exec ":source" . l:settingsFile
endif
endfunction
autocmd! BufEnter * call ApplyLocalSettings(expand("<afile>:p:h"))
" smart tab completion
function! Smart_TabComplete()
let line = getline('.') " current line
let substr = strpart(line, -1, col('.')+1) " from the start of the current
" line to one character right
" of the cursor
let substr = matchstr(substr, "[^ \t]*$") " word till cursor
if (strlen(substr)==0) " nothing to match on empty string
return "\<tab>"
endif
let has_period = match(substr, '\.') != -1 " position of period, if any
let has_slash = match(substr, '\/') != -1 " position of slash, if any
if (!has_period && !has_slash)
return "\<C-X>\<C-P>" " existing text matching
elseif ( has_slash )
return "\<C-X>\<C-F>" " file matching
else
return "\<C-X>\<C-O>" " plugin matching
endif
endfunction
inoremap <tab> <c-r>=Smart_TabComplete()<CR>
map <leader>r :call RunCustomCommand()<cr>
map <leader>s :call SetCustomCommand()<cr>
let g:silent_custom_command = 0
function! RunCustomCommand()
up
if g:silent_custom_command
execute 'silent !' . s:customcommand
else
execute '!' . s:customcommand
endif
endfunction
function! SetCustomCommand()
let s:customcommand = input('Enter Custom Command$ ')
endfunction
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => Plugins
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""