Update vim init to lua

This commit is contained in:
Martin Pander
2023-02-07 07:40:31 +01:00
committed by Martin Pander
parent 9748f419f0
commit ba753ce503
5 changed files with 355 additions and 208 deletions

View File

@ -7,7 +7,7 @@
[merge] [merge]
tool = nvimdiff tool = nvimdiff
[mergetool "nvimdiff"] [mergetool "nvimdiff"]
cmd = nvim -d $BASE $LOCAL $REMOTE $MERGED -c '$wincmd w' -c 'wincmd J' cmd = nvim -d $LOCAL $MERGED $BASE $REMOTE -c 'wincmd w' -c 'wincmd J'
[diff] [diff]
tool = nvimdiff tool = nvimdiff
[difftool] [difftool]
@ -30,3 +30,5 @@
default = matching default = matching
[init] [init]
templatedir = ~/.git_template templatedir = ~/.git_template
[credential]
helper = store

View File

@ -14,6 +14,8 @@ set -g display-time 1500
#set-option -g default-shell /bin/zsh #set-option -g default-shell /bin/zsh
set -g allow-rename off
####################################### #######################################
# key bindings # key bindings
####################################### #######################################
@ -34,6 +36,10 @@ bind-key -n M-J switch-client -n
bind-key -n M-L next-window bind-key -n M-L next-window
bind-key -n M-H previous-window bind-key -n M-H previous-window
bind '"' split-window -c "#{pane_current_path}"
bind % split-window -h -c "#{pane_current_path}"
bind c new-window -a -c "#{pane_current_path}"
####################################### #######################################
# status line # status line
####################################### #######################################

View File

@ -22,7 +22,7 @@
" Plug 'SirVer/ultisnips' | Plug 'honza/vim-snippets' " Plug 'SirVer/ultisnips' | Plug 'honza/vim-snippets'
" "
" " On-demand loading " " On-demand loading
" Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' } " Plug 'preservim/nerdtree', { 'on': 'NERDTreeToggle' }
" Plug 'tpope/vim-fireplace', { 'for': 'clojure' } " Plug 'tpope/vim-fireplace', { 'for': 'clojure' }
" "
" " Using a non-default branch " " Using a non-default branch
@ -116,6 +116,10 @@ let s:TYPE = {
let s:loaded = get(s:, 'loaded', {}) let s:loaded = get(s:, 'loaded', {})
let s:triggers = get(s:, 'triggers', {}) let s:triggers = get(s:, 'triggers', {})
function! s:is_powershell(shell)
return a:shell =~# 'powershell\(\.exe\)\?$' || a:shell =~# 'pwsh\(\.exe\)\?$'
endfunction
function! s:isabsolute(dir) abort function! s:isabsolute(dir) abort
return a:dir =~# '^/' || (has('win32') && a:dir =~? '^\%(\\\|[A-Z]:\)') return a:dir =~# '^/' || (has('win32') && a:dir =~? '^\%(\\\|[A-Z]:\)')
endfunction endfunction
@ -238,6 +242,8 @@ function! plug#begin(...)
let home = s:path(s:plug_fnamemodify(s:plug_expand(a:1), ':p')) let home = s:path(s:plug_fnamemodify(s:plug_expand(a:1), ':p'))
elseif exists('g:plug_home') elseif exists('g:plug_home')
let home = s:path(g:plug_home) let home = s:path(g:plug_home)
elseif has('nvim')
let home = stdpath('data') . '/plugged'
elseif !empty(&rtp) elseif !empty(&rtp)
let home = s:path(split(&rtp, ',')[0]) . '/plugged' let home = s:path(split(&rtp, ',')[0]) . '/plugged'
else else
@ -263,7 +269,7 @@ function! s:define_commands()
endif endif
if has('win32') if has('win32')
\ && &shellslash \ && &shellslash
\ && (&shell =~# 'cmd\(\.exe\)\?$' || &shell =~# 'powershell\(\.exe\)\?$') \ && (&shell =~# 'cmd\(\.exe\)\?$' || s:is_powershell(&shell))
return s:err('vim-plug does not support shell, ' . &shell . ', when shellslash is set.') return s:err('vim-plug does not support shell, ' . &shell . ', when shellslash is set.')
endif endif
if !has('nvim') if !has('nvim')
@ -346,7 +352,7 @@ function! plug#end()
endif endif
let lod = { 'ft': {}, 'map': {}, 'cmd': {} } let lod = { 'ft': {}, 'map': {}, 'cmd': {} }
if exists('g:did_load_filetypes') if get(g:, 'did_load_filetypes', 0)
filetype off filetype off
endif endif
for name in g:plugs_order for name in g:plugs_order
@ -401,7 +407,7 @@ function! plug#end()
for [map, names] in items(lod.map) for [map, names] in items(lod.map)
for [mode, map_prefix, key_prefix] in for [mode, map_prefix, key_prefix] in
\ [['i', '<C-O>', ''], ['n', '', ''], ['v', '', 'gv'], ['o', '', '']] \ [['i', '<C-\><C-O>', ''], ['n', '', ''], ['v', '', 'gv'], ['o', '', '']]
execute printf( execute printf(
\ '%snoremap <silent> %s %s:<C-U>call <SID>lod_map(%s, %s, %s, "%s")<CR>', \ '%snoremap <silent> %s %s:<C-U>call <SID>lod_map(%s, %s, %s, "%s")<CR>',
\ mode, map, map_prefix, string(map), string(names), mode != 'i', key_prefix) \ mode, map, map_prefix, string(map), string(names), mode != 'i', key_prefix)
@ -503,7 +509,7 @@ if s:is_win
let batchfile = s:plug_tempname().'.bat' let batchfile = s:plug_tempname().'.bat'
call writefile(s:wrap_cmds(a:cmd), batchfile) call writefile(s:wrap_cmds(a:cmd), batchfile)
let cmd = plug#shellescape(batchfile, {'shell': &shell, 'script': 0}) let cmd = plug#shellescape(batchfile, {'shell': &shell, 'script': 0})
if &shell =~# 'powershell\(\.exe\)\?$' if s:is_powershell(&shell)
let cmd = '& ' . cmd let cmd = '& ' . cmd
endif endif
return [batchfile, cmd] return [batchfile, cmd]
@ -804,7 +810,7 @@ function! s:syntax()
syn match plugNumber /[0-9]\+[0-9.]*/ contained syn match plugNumber /[0-9]\+[0-9.]*/ contained
syn match plugBracket /[[\]]/ contained syn match plugBracket /[[\]]/ contained
syn match plugX /x/ contained syn match plugX /x/ contained
syn match plugDash /^-/ syn match plugDash /^-\{1}\ /
syn match plugPlus /^+/ syn match plugPlus /^+/
syn match plugStar /^*/ syn match plugStar /^*/
syn match plugMessage /\(^- \)\@<=.*/ syn match plugMessage /\(^- \)\@<=.*/
@ -822,6 +828,7 @@ function! s:syntax()
syn match plugError /^x.*/ syn match plugError /^x.*/
syn region plugDeleted start=/^\~ .*/ end=/^\ze\S/ syn region plugDeleted start=/^\~ .*/ end=/^\ze\S/
syn match plugH2 /^.*:\n-\+$/ syn match plugH2 /^.*:\n-\+$/
syn match plugH2 /^-\{2,}/
syn keyword Function PlugInstall PlugStatus PlugUpdate PlugClean syn keyword Function PlugInstall PlugStatus PlugUpdate PlugClean
hi def link plug1 Title hi def link plug1 Title
hi def link plug2 Repeat hi def link plug2 Repeat
@ -934,7 +941,7 @@ function! s:prepare(...)
call s:new_window() call s:new_window()
endif endif
nnoremap <silent> <buffer> q :if b:plug_preview==1<bar>pc<bar>endif<bar>bd<cr> nnoremap <silent> <buffer> q :call <SID>close_pane()<cr>
if a:0 == 0 if a:0 == 0
call s:finish_bindings() call s:finish_bindings()
endif endif
@ -956,6 +963,15 @@ function! s:prepare(...)
endif endif
endfunction endfunction
function! s:close_pane()
if b:plug_preview == 1
pc
let b:plug_preview = -1
else
bd
endif
endfunction
function! s:assign_name() function! s:assign_name()
" Assign buffer name " Assign buffer name
let prefix = '[Plugins]' let prefix = '[Plugins]'
@ -974,7 +990,7 @@ function! s:chsh(swap)
set shell=sh set shell=sh
endif endif
if a:swap if a:swap
if &shell =~# 'powershell\(\.exe\)\?$' || &shell =~# 'pwsh$' if s:is_powershell(&shell)
let &shellredir = '2>&1 | Out-File -Encoding UTF8 %s' let &shellredir = '2>&1 | Out-File -Encoding UTF8 %s'
elseif &shell =~# 'sh' || &shell =~# 'cmd\(\.exe\)\?$' elseif &shell =~# 'sh' || &shell =~# 'cmd\(\.exe\)\?$'
set shellredir=>%s\ 2>&1 set shellredir=>%s\ 2>&1
@ -1077,8 +1093,9 @@ function! s:checkout(spec)
let sha = a:spec.commit let sha = a:spec.commit
let output = s:git_revision(a:spec.dir) let output = s:git_revision(a:spec.dir)
if !empty(output) && !s:hash_match(sha, s:lines(output)[0]) if !empty(output) && !s:hash_match(sha, s:lines(output)[0])
let credential_helper = s:git_version_requirement(2) ? '-c credential.helper= ' : ''
let output = s:system( let output = s:system(
\ 'git fetch --depth 999999 && git checkout '.plug#shellescape(sha).' --', a:spec.dir) \ 'git '.credential_helper.'fetch --depth 999999 && git checkout '.plug#shellescape(sha).' --', a:spec.dir)
endif endif
return output return output
endfunction endfunction
@ -1193,7 +1210,8 @@ function! s:update_impl(pull, force, args) abort
normal! 2G normal! 2G
silent! redraw silent! redraw
let s:clone_opt = [] " Set remote name, overriding a possible user git config's clone.defaultRemoteName
let s:clone_opt = ['--origin', 'origin']
if get(g:, 'plug_shallow', 1) if get(g:, 'plug_shallow', 1)
call extend(s:clone_opt, ['--depth', '1']) call extend(s:clone_opt, ['--depth', '1'])
if s:git_version_requirement(1, 7, 10) if s:git_version_requirement(1, 7, 10)
@ -1530,7 +1548,7 @@ while 1 " Without TCO, Vim stack is bound to explode
let [error, _] = s:git_validate(spec, 0) let [error, _] = s:git_validate(spec, 0)
if empty(error) if empty(error)
if pull if pull
let cmd = ['git', 'fetch'] let cmd = s:git_version_requirement(2) ? ['git', '-c', 'credential.helper=', 'fetch'] : ['git', 'fetch']
if has_tag && !empty(globpath(spec.dir, '.git/shallow')) if has_tag && !empty(globpath(spec.dir, '.git/shallow'))
call extend(cmd, ['--depth', '99999999']) call extend(cmd, ['--depth', '99999999'])
endif endif
@ -2214,7 +2232,7 @@ function! plug#shellescape(arg, ...)
let script = get(opts, 'script', 1) let script = get(opts, 'script', 1)
if shell =~# 'cmd\(\.exe\)\?$' if shell =~# 'cmd\(\.exe\)\?$'
return s:shellesc_cmd(a:arg, script) return s:shellesc_cmd(a:arg, script)
elseif shell =~# 'powershell\(\.exe\)\?$' || shell =~# 'pwsh$' elseif s:is_powershell(shell)
return s:shellesc_ps1(a:arg) return s:shellesc_ps1(a:arg)
endif endif
return s:shellesc_sh(a:arg) return s:shellesc_sh(a:arg)
@ -2266,7 +2284,7 @@ function! s:system(cmd, ...)
return system(a:cmd) return system(a:cmd)
endif endif
let cmd = join(map(copy(a:cmd), 'plug#shellescape(v:val, {"shell": &shell, "script": 0})')) let cmd = join(map(copy(a:cmd), 'plug#shellescape(v:val, {"shell": &shell, "script": 0})'))
if &shell =~# 'powershell\(\.exe\)\?$' if s:is_powershell(&shell)
let cmd = '& ' . cmd let cmd = '& ' . cmd
endif endif
else else
@ -2603,26 +2621,34 @@ function! s:preview_commit()
let sha = matchstr(getline('.'), '^ \X*\zs[0-9a-f]\{7,9}') let sha = matchstr(getline('.'), '^ \X*\zs[0-9a-f]\{7,9}')
if empty(sha) if empty(sha)
return let name = matchstr(getline('.'), '^- \zs[^:]*\ze:$')
if empty(name)
return
endif
let title = 'HEAD@{1}..'
let command = 'git diff --no-color HEAD@{1}'
else
let title = sha
let command = 'git show --no-color --pretty=medium '.sha
let name = s:find_name(line('.'))
endif endif
let name = s:find_name(line('.'))
if empty(name) || !has_key(g:plugs, name) || !isdirectory(g:plugs[name].dir) if empty(name) || !has_key(g:plugs, name) || !isdirectory(g:plugs[name].dir)
return return
endif endif
if exists('g:plug_pwindow') && !s:is_preview_window_open() if exists('g:plug_pwindow') && !s:is_preview_window_open()
execute g:plug_pwindow execute g:plug_pwindow
execute 'e' sha execute 'e' title
else else
execute 'pedit' sha execute 'pedit' title
wincmd P wincmd P
endif endif
setlocal previewwindow filetype=git buftype=nofile nobuflisted modifiable setlocal previewwindow filetype=git buftype=nofile bufhidden=wipe nobuflisted modifiable
let batchfile = '' let batchfile = ''
try try
let [sh, shellcmdflag, shrd] = s:chsh(1) let [sh, shellcmdflag, shrd] = s:chsh(1)
let cmd = 'cd '.plug#shellescape(g:plugs[name].dir).' && git show --no-color --pretty=medium '.sha let cmd = 'cd '.plug#shellescape(g:plugs[name].dir).' && '.command
if s:is_win if s:is_win
let [batchfile, cmd] = s:batchfile(cmd) let [batchfile, cmd] = s:batchfile(cmd)
endif endif
@ -2748,9 +2774,9 @@ function! s:snapshot(force, ...) abort
1 1
let anchor = line('$') - 3 let anchor = line('$') - 3
let names = sort(keys(filter(copy(g:plugs), let names = sort(keys(filter(copy(g:plugs),
\'has_key(v:val, "uri") && !has_key(v:val, "commit") && isdirectory(v:val.dir)'))) \'has_key(v:val, "uri") && isdirectory(v:val.dir)')))
for name in reverse(names) for name in reverse(names)
let sha = s:git_revision(g:plugs[name].dir) let sha = has_key(g:plugs[name], 'commit') ? g:plugs[name].commit : s:git_revision(g:plugs[name].dir)
if !empty(sha) if !empty(sha)
call append(anchor, printf("silent! let g:plugs['%s'].commit = '%s'", name, sha)) call append(anchor, printf("silent! let g:plugs['%s'].commit = '%s'", name, sha))
redraw redraw

View File

@ -25,7 +25,7 @@
" Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' } " Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' }
" Plug 'tpope/vim-fireplace', { 'for': 'clojure' } " Plug 'tpope/vim-fireplace', { 'for': 'clojure' }
" "
" " Using a non-master branch " " Using a non-default branch
" Plug 'rdnetto/YCM-Generator', { 'branch': 'stable' } " Plug 'rdnetto/YCM-Generator', { 'branch': 'stable' }
" "
" " Using a tagged release; wildcard allowed (requires git 1.9.2 or above) " " Using a tagged release; wildcard allowed (requires git 1.9.2 or above)
@ -106,7 +106,7 @@ if s:is_win && &shellslash
else else
let s:me = resolve(expand('<sfile>:p')) let s:me = resolve(expand('<sfile>:p'))
endif endif
let s:base_spec = { 'branch': 'master', 'frozen': 0 } let s:base_spec = { 'branch': '', 'frozen': 0 }
let s:TYPE = { let s:TYPE = {
\ 'string': type(''), \ 'string': type(''),
\ 'list': type([]), \ 'list': type([]),
@ -116,6 +116,94 @@ let s:TYPE = {
let s:loaded = get(s:, 'loaded', {}) let s:loaded = get(s:, 'loaded', {})
let s:triggers = get(s:, 'triggers', {}) let s:triggers = get(s:, 'triggers', {})
function! s:is_powershell(shell)
return a:shell =~# 'powershell\(\.exe\)\?$' || a:shell =~# 'pwsh\(\.exe\)\?$'
endfunction
function! s:isabsolute(dir) abort
return a:dir =~# '^/' || (has('win32') && a:dir =~? '^\%(\\\|[A-Z]:\)')
endfunction
function! s:git_dir(dir) abort
let gitdir = s:trim(a:dir) . '/.git'
if isdirectory(gitdir)
return gitdir
endif
if !filereadable(gitdir)
return ''
endif
let gitdir = matchstr(get(readfile(gitdir), 0, ''), '^gitdir: \zs.*')
if len(gitdir) && !s:isabsolute(gitdir)
let gitdir = a:dir . '/' . gitdir
endif
return isdirectory(gitdir) ? gitdir : ''
endfunction
function! s:git_origin_url(dir) abort
let gitdir = s:git_dir(a:dir)
let config = gitdir . '/config'
if empty(gitdir) || !filereadable(config)
return ''
endif
return matchstr(join(readfile(config)), '\[remote "origin"\].\{-}url\s*=\s*\zs\S*\ze')
endfunction
function! s:git_revision(dir) abort
let gitdir = s:git_dir(a:dir)
let head = gitdir . '/HEAD'
if empty(gitdir) || !filereadable(head)
return ''
endif
let line = get(readfile(head), 0, '')
let ref = matchstr(line, '^ref: \zs.*')
if empty(ref)
return line
endif
if filereadable(gitdir . '/' . ref)
return get(readfile(gitdir . '/' . ref), 0, '')
endif
if filereadable(gitdir . '/packed-refs')
for line in readfile(gitdir . '/packed-refs')
if line =~# ' ' . ref
return matchstr(line, '^[0-9a-f]*')
endif
endfor
endif
return ''
endfunction
function! s:git_local_branch(dir) abort
let gitdir = s:git_dir(a:dir)
let head = gitdir . '/HEAD'
if empty(gitdir) || !filereadable(head)
return ''
endif
let branch = matchstr(get(readfile(head), 0, ''), '^ref: refs/heads/\zs.*')
return len(branch) ? branch : 'HEAD'
endfunction
function! s:git_origin_branch(spec)
if len(a:spec.branch)
return a:spec.branch
endif
" The file may not be present if this is a local repository
let gitdir = s:git_dir(a:spec.dir)
let origin_head = gitdir.'/refs/remotes/origin/HEAD'
if len(gitdir) && filereadable(origin_head)
return matchstr(get(readfile(origin_head), 0, ''),
\ '^ref: refs/remotes/origin/\zs.*')
endif
" The command may not return the name of a branch in detached HEAD state
let result = s:lines(s:system('git symbolic-ref --short HEAD', a:spec.dir))
return v:shell_error ? '' : result[-1]
endfunction
if s:is_win if s:is_win
function! s:plug_call(fn, ...) function! s:plug_call(fn, ...)
let shellslash = &shellslash let shellslash = &shellslash
@ -154,6 +242,8 @@ function! plug#begin(...)
let home = s:path(s:plug_fnamemodify(s:plug_expand(a:1), ':p')) let home = s:path(s:plug_fnamemodify(s:plug_expand(a:1), ':p'))
elseif exists('g:plug_home') elseif exists('g:plug_home')
let home = s:path(g:plug_home) let home = s:path(g:plug_home)
elseif has('nvim')
let home = stdpath('data') . '/plugged'
elseif !empty(&rtp) elseif !empty(&rtp)
let home = s:path(split(&rtp, ',')[0]) . '/plugged' let home = s:path(split(&rtp, ',')[0]) . '/plugged'
else else
@ -179,7 +269,7 @@ function! s:define_commands()
endif endif
if has('win32') if has('win32')
\ && &shellslash \ && &shellslash
\ && (&shell =~# 'cmd\(\.exe\)\?$' || &shell =~# 'powershell\(\.exe\)\?$') \ && (&shell =~# 'cmd\(\.exe\)\?$' || s:is_powershell(&shell))
return s:err('vim-plug does not support shell, ' . &shell . ', when shellslash is set.') return s:err('vim-plug does not support shell, ' . &shell . ', when shellslash is set.')
endif endif
if !has('nvim') if !has('nvim')
@ -262,7 +352,7 @@ function! plug#end()
endif endif
let lod = { 'ft': {}, 'map': {}, 'cmd': {} } let lod = { 'ft': {}, 'map': {}, 'cmd': {} }
if exists('g:did_load_filetypes') if get(g:, 'did_load_filetypes', 0)
filetype off filetype off
endif endif
for name in g:plugs_order for name in g:plugs_order
@ -317,7 +407,7 @@ function! plug#end()
for [map, names] in items(lod.map) for [map, names] in items(lod.map)
for [mode, map_prefix, key_prefix] in for [mode, map_prefix, key_prefix] in
\ [['i', '<C-O>', ''], ['n', '', ''], ['v', '', 'gv'], ['o', '', '']] \ [['i', '<C-\><C-O>', ''], ['n', '', ''], ['v', '', 'gv'], ['o', '', '']]
execute printf( execute printf(
\ '%snoremap <silent> %s %s:<C-U>call <SID>lod_map(%s, %s, %s, "%s")<CR>', \ '%snoremap <silent> %s %s:<C-U>call <SID>lod_map(%s, %s, %s, "%s")<CR>',
\ mode, map, map_prefix, string(map), string(names), mode != 'i', key_prefix) \ mode, map, map_prefix, string(map), string(names), mode != 'i', key_prefix)
@ -419,7 +509,7 @@ if s:is_win
let batchfile = s:plug_tempname().'.bat' let batchfile = s:plug_tempname().'.bat'
call writefile(s:wrap_cmds(a:cmd), batchfile) call writefile(s:wrap_cmds(a:cmd), batchfile)
let cmd = plug#shellescape(batchfile, {'shell': &shell, 'script': 0}) let cmd = plug#shellescape(batchfile, {'shell': &shell, 'script': 0})
if &shell =~# 'powershell\(\.exe\)\?$' if s:is_powershell(&shell)
let cmd = '& ' . cmd let cmd = '& ' . cmd
endif endif
return [batchfile, cmd] return [batchfile, cmd]
@ -646,25 +736,25 @@ function! s:parse_options(arg)
endif endif
let opts.tag = a:arg let opts.tag = a:arg
elseif type == s:TYPE.dict elseif type == s:TYPE.dict
call extend(opts, a:arg)
for opt in ['branch', 'tag', 'commit', 'rtp', 'dir', 'as'] for opt in ['branch', 'tag', 'commit', 'rtp', 'dir', 'as']
if has_key(opts, opt) if has_key(a:arg, opt)
\ && (type(opts[opt]) != s:TYPE.string || empty(opts[opt])) \ && (type(a:arg[opt]) != s:TYPE.string || empty(a:arg[opt]))
throw printf(opt_errfmt, opt, 'string') throw printf(opt_errfmt, opt, 'string')
endif endif
endfor endfor
for opt in ['on', 'for'] for opt in ['on', 'for']
if has_key(opts, opt) if has_key(a:arg, opt)
\ && type(opts[opt]) != s:TYPE.list \ && type(a:arg[opt]) != s:TYPE.list
\ && (type(opts[opt]) != s:TYPE.string || empty(opts[opt])) \ && (type(a:arg[opt]) != s:TYPE.string || empty(a:arg[opt]))
throw printf(opt_errfmt, opt, 'string or list') throw printf(opt_errfmt, opt, 'string or list')
endif endif
endfor endfor
if has_key(opts, 'do') if has_key(a:arg, 'do')
\ && type(opts.do) != s:TYPE.funcref \ && type(a:arg.do) != s:TYPE.funcref
\ && (type(opts.do) != s:TYPE.string || empty(opts.do)) \ && (type(a:arg.do) != s:TYPE.string || empty(a:arg.do))
throw printf(opt_errfmt, 'do', 'string or funcref') throw printf(opt_errfmt, 'do', 'string or funcref')
endif endif
call extend(opts, a:arg)
if has_key(opts, 'dir') if has_key(opts, 'dir')
let opts.dir = s:dirpath(s:plug_expand(opts.dir)) let opts.dir = s:dirpath(s:plug_expand(opts.dir))
endif endif
@ -720,7 +810,7 @@ function! s:syntax()
syn match plugNumber /[0-9]\+[0-9.]*/ contained syn match plugNumber /[0-9]\+[0-9.]*/ contained
syn match plugBracket /[[\]]/ contained syn match plugBracket /[[\]]/ contained
syn match plugX /x/ contained syn match plugX /x/ contained
syn match plugDash /^-/ syn match plugDash /^-\{1}\ /
syn match plugPlus /^+/ syn match plugPlus /^+/
syn match plugStar /^*/ syn match plugStar /^*/
syn match plugMessage /\(^- \)\@<=.*/ syn match plugMessage /\(^- \)\@<=.*/
@ -738,6 +828,7 @@ function! s:syntax()
syn match plugError /^x.*/ syn match plugError /^x.*/
syn region plugDeleted start=/^\~ .*/ end=/^\ze\S/ syn region plugDeleted start=/^\~ .*/ end=/^\ze\S/
syn match plugH2 /^.*:\n-\+$/ syn match plugH2 /^.*:\n-\+$/
syn match plugH2 /^-\{2,}/
syn keyword Function PlugInstall PlugStatus PlugUpdate PlugClean syn keyword Function PlugInstall PlugStatus PlugUpdate PlugClean
hi def link plug1 Title hi def link plug1 Title
hi def link plug2 Repeat hi def link plug2 Repeat
@ -850,7 +941,7 @@ function! s:prepare(...)
call s:new_window() call s:new_window()
endif endif
nnoremap <silent> <buffer> q :if b:plug_preview==1<bar>pc<bar>endif<bar>bd<cr> nnoremap <silent> <buffer> q :call <SID>close_pane()<cr>
if a:0 == 0 if a:0 == 0
call s:finish_bindings() call s:finish_bindings()
endif endif
@ -872,6 +963,15 @@ function! s:prepare(...)
endif endif
endfunction endfunction
function! s:close_pane()
if b:plug_preview == 1
pc
let b:plug_preview = -1
else
bd
endif
endfunction
function! s:assign_name() function! s:assign_name()
" Assign buffer name " Assign buffer name
let prefix = '[Plugins]' let prefix = '[Plugins]'
@ -890,7 +990,7 @@ function! s:chsh(swap)
set shell=sh set shell=sh
endif endif
if a:swap if a:swap
if &shell =~# 'powershell\(\.exe\)\?$' || &shell =~# 'pwsh$' if s:is_powershell(&shell)
let &shellredir = '2>&1 | Out-File -Encoding UTF8 %s' let &shellredir = '2>&1 | Out-File -Encoding UTF8 %s'
elseif &shell =~# 'sh' || &shell =~# 'cmd\(\.exe\)\?$' elseif &shell =~# 'sh' || &shell =~# 'cmd\(\.exe\)\?$'
set shellredir=>%s\ 2>&1 set shellredir=>%s\ 2>&1
@ -991,10 +1091,11 @@ endfunction
function! s:checkout(spec) function! s:checkout(spec)
let sha = a:spec.commit let sha = a:spec.commit
let output = s:system(['git', 'rev-parse', 'HEAD'], a:spec.dir) let output = s:git_revision(a:spec.dir)
if !v:shell_error && !s:hash_match(sha, s:lines(output)[0]) if !empty(output) && !s:hash_match(sha, s:lines(output)[0])
let credential_helper = s:git_version_requirement(2) ? '-c credential.helper= ' : ''
let output = s:system( let output = s:system(
\ 'git fetch --depth 999999 && git checkout '.plug#shellescape(sha).' --', a:spec.dir) \ 'git '.credential_helper.'fetch --depth 999999 && git checkout '.plug#shellescape(sha).' --', a:spec.dir)
endif endif
return output return output
endfunction endfunction
@ -1109,7 +1210,8 @@ function! s:update_impl(pull, force, args) abort
normal! 2G normal! 2G
silent! redraw silent! redraw
let s:clone_opt = [] " Set remote name, overriding a possible user git config's clone.defaultRemoteName
let s:clone_opt = ['--origin', 'origin']
if get(g:, 'plug_shallow', 1) if get(g:, 'plug_shallow', 1)
call extend(s:clone_opt, ['--depth', '1']) call extend(s:clone_opt, ['--depth', '1'])
if s:git_version_requirement(1, 7, 10) if s:git_version_requirement(1, 7, 10)
@ -1206,7 +1308,7 @@ function! s:update_finish()
call s:log4(name, 'Checking out '.tag) call s:log4(name, 'Checking out '.tag)
let out = s:system('git checkout -q '.plug#shellescape(tag).' -- 2>&1', spec.dir) let out = s:system('git checkout -q '.plug#shellescape(tag).' -- 2>&1', spec.dir)
else else
let branch = get(spec, 'branch', 'master') let branch = s:git_origin_branch(spec)
call s:log4(name, 'Merging origin/'.s:esc(branch)) call s:log4(name, 'Merging origin/'.s:esc(branch))
let out = s:system('git checkout -q '.plug#shellescape(branch).' -- 2>&1' let out = s:system('git checkout -q '.plug#shellescape(branch).' -- 2>&1'
\. (has_key(s:update.new, name) ? '' : ('&& git merge --ff-only '.plug#shellescape('origin/'.branch).' 2>&1')), spec.dir) \. (has_key(s:update.new, name) ? '' : ('&& git merge --ff-only '.plug#shellescape('origin/'.branch).' 2>&1')), spec.dir)
@ -1446,7 +1548,7 @@ while 1 " Without TCO, Vim stack is bound to explode
let [error, _] = s:git_validate(spec, 0) let [error, _] = s:git_validate(spec, 0)
if empty(error) if empty(error)
if pull if pull
let cmd = ['git', 'fetch'] let cmd = s:git_version_requirement(2) ? ['git', '-c', 'credential.helper=', 'fetch'] : ['git', 'fetch']
if has_tag && !empty(globpath(spec.dir, '.git/shallow')) if has_tag && !empty(globpath(spec.dir, '.git/shallow'))
call extend(cmd, ['--depth', '99999999']) call extend(cmd, ['--depth', '99999999'])
endif endif
@ -2130,7 +2232,7 @@ function! plug#shellescape(arg, ...)
let script = get(opts, 'script', 1) let script = get(opts, 'script', 1)
if shell =~# 'cmd\(\.exe\)\?$' if shell =~# 'cmd\(\.exe\)\?$'
return s:shellesc_cmd(a:arg, script) return s:shellesc_cmd(a:arg, script)
elseif shell =~# 'powershell\(\.exe\)\?$' || shell =~# 'pwsh$' elseif s:is_powershell(shell)
return s:shellesc_ps1(a:arg) return s:shellesc_ps1(a:arg)
endif endif
return s:shellesc_sh(a:arg) return s:shellesc_sh(a:arg)
@ -2182,7 +2284,7 @@ function! s:system(cmd, ...)
return system(a:cmd) return system(a:cmd)
endif endif
let cmd = join(map(copy(a:cmd), 'plug#shellescape(v:val, {"shell": &shell, "script": 0})')) let cmd = join(map(copy(a:cmd), 'plug#shellescape(v:val, {"shell": &shell, "script": 0})'))
if &shell =~# 'powershell\(\.exe\)\?$' if s:is_powershell(&shell)
let cmd = '& ' . cmd let cmd = '& ' . cmd
endif endif
else else
@ -2211,18 +2313,17 @@ endfunction
function! s:git_validate(spec, check_branch) function! s:git_validate(spec, check_branch)
let err = '' let err = ''
if isdirectory(a:spec.dir) if isdirectory(a:spec.dir)
let result = s:lines(s:system('git rev-parse --abbrev-ref HEAD 2>&1 && git config -f .git/config remote.origin.url', a:spec.dir)) let result = [s:git_local_branch(a:spec.dir), s:git_origin_url(a:spec.dir)]
let remote = result[-1] let remote = result[-1]
if v:shell_error if empty(remote)
let err = join([remote, 'PlugClean required.'], "\n") let err = join([remote, 'PlugClean required.'], "\n")
elseif !s:compare_git_uri(remote, a:spec.uri) elseif !s:compare_git_uri(remote, a:spec.uri)
let err = join(['Invalid URI: '.remote, let err = join(['Invalid URI: '.remote,
\ 'Expected: '.a:spec.uri, \ 'Expected: '.a:spec.uri,
\ 'PlugClean required.'], "\n") \ 'PlugClean required.'], "\n")
elseif a:check_branch && has_key(a:spec, 'commit') elseif a:check_branch && has_key(a:spec, 'commit')
let result = s:lines(s:system('git rev-parse HEAD 2>&1', a:spec.dir)) let sha = s:git_revision(a:spec.dir)
let sha = result[-1] if empty(sha)
if v:shell_error
let err = join(add(result, 'PlugClean required.'), "\n") let err = join(add(result, 'PlugClean required.'), "\n")
elseif !s:hash_match(sha, a:spec.commit) elseif !s:hash_match(sha, a:spec.commit)
let err = join([printf('Invalid HEAD (expected: %s, actual: %s)', let err = join([printf('Invalid HEAD (expected: %s, actual: %s)',
@ -2230,8 +2331,9 @@ function! s:git_validate(spec, check_branch)
\ 'PlugUpdate required.'], "\n") \ 'PlugUpdate required.'], "\n")
endif endif
elseif a:check_branch elseif a:check_branch
let branch = result[0] let current_branch = result[0]
" Check tag " Check tag
let origin_branch = s:git_origin_branch(a:spec)
if has_key(a:spec, 'tag') if has_key(a:spec, 'tag')
let tag = s:system_chomp('git describe --exact-match --tags HEAD 2>&1', a:spec.dir) let tag = s:system_chomp('git describe --exact-match --tags HEAD 2>&1', a:spec.dir)
if a:spec.tag !=# tag && a:spec.tag !~ '\*' if a:spec.tag !=# tag && a:spec.tag !~ '\*'
@ -2239,14 +2341,14 @@ function! s:git_validate(spec, check_branch)
\ (empty(tag) ? 'N/A' : tag), a:spec.tag) \ (empty(tag) ? 'N/A' : tag), a:spec.tag)
endif endif
" Check branch " Check branch
elseif a:spec.branch !=# branch elseif origin_branch !=# current_branch
let err = printf('Invalid branch: %s (expected: %s). Try PlugUpdate.', let err = printf('Invalid branch: %s (expected: %s). Try PlugUpdate.',
\ branch, a:spec.branch) \ current_branch, origin_branch)
endif endif
if empty(err) if empty(err)
let [ahead, behind] = split(s:lastline(s:system([ let [ahead, behind] = split(s:lastline(s:system([
\ 'git', 'rev-list', '--count', '--left-right', \ 'git', 'rev-list', '--count', '--left-right',
\ printf('HEAD...origin/%s', a:spec.branch) \ printf('HEAD...origin/%s', origin_branch)
\ ], a:spec.dir)), '\t') \ ], a:spec.dir)), '\t')
if !v:shell_error && ahead if !v:shell_error && ahead
if behind if behind
@ -2254,11 +2356,11 @@ function! s:git_validate(spec, check_branch)
" pushable (and probably not that messed up). " pushable (and probably not that messed up).
let err = printf( let err = printf(
\ "Diverged from origin/%s (%d commit(s) ahead and %d commit(s) behind!\n" \ "Diverged from origin/%s (%d commit(s) ahead and %d commit(s) behind!\n"
\ .'Backup local changes and run PlugClean and PlugUpdate to reinstall it.', a:spec.branch, ahead, behind) \ .'Backup local changes and run PlugClean and PlugUpdate to reinstall it.', origin_branch, ahead, behind)
else else
let err = printf("Ahead of origin/%s by %d commit(s).\n" let err = printf("Ahead of origin/%s by %d commit(s).\n"
\ .'Cannot update until local changes are pushed.', \ .'Cannot update until local changes are pushed.',
\ a:spec.branch, ahead) \ origin_branch, ahead)
endif endif
endif endif
endif endif
@ -2519,26 +2621,34 @@ function! s:preview_commit()
let sha = matchstr(getline('.'), '^ \X*\zs[0-9a-f]\{7,9}') let sha = matchstr(getline('.'), '^ \X*\zs[0-9a-f]\{7,9}')
if empty(sha) if empty(sha)
return let name = matchstr(getline('.'), '^- \zs[^:]*\ze:$')
if empty(name)
return
endif
let title = 'HEAD@{1}..'
let command = 'git diff --no-color HEAD@{1}'
else
let title = sha
let command = 'git show --no-color --pretty=medium '.sha
let name = s:find_name(line('.'))
endif endif
let name = s:find_name(line('.'))
if empty(name) || !has_key(g:plugs, name) || !isdirectory(g:plugs[name].dir) if empty(name) || !has_key(g:plugs, name) || !isdirectory(g:plugs[name].dir)
return return
endif endif
if exists('g:plug_pwindow') && !s:is_preview_window_open() if exists('g:plug_pwindow') && !s:is_preview_window_open()
execute g:plug_pwindow execute g:plug_pwindow
execute 'e' sha execute 'e' title
else else
execute 'pedit' sha execute 'pedit' title
wincmd P wincmd P
endif endif
setlocal previewwindow filetype=git buftype=nofile nobuflisted modifiable setlocal previewwindow filetype=git buftype=nofile bufhidden=wipe nobuflisted modifiable
let batchfile = '' let batchfile = ''
try try
let [sh, shellcmdflag, shrd] = s:chsh(1) let [sh, shellcmdflag, shrd] = s:chsh(1)
let cmd = 'cd '.plug#shellescape(g:plugs[name].dir).' && git show --no-color --pretty=medium '.sha let cmd = 'cd '.plug#shellescape(g:plugs[name].dir).' && '.command
if s:is_win if s:is_win
let [batchfile, cmd] = s:batchfile(cmd) let [batchfile, cmd] = s:batchfile(cmd)
endif endif
@ -2588,20 +2698,23 @@ function! s:diff()
endif endif
call s:append_ul(2, origin ? 'Pending updates:' : 'Last update:') call s:append_ul(2, origin ? 'Pending updates:' : 'Last update:')
for [k, v] in plugs for [k, v] in plugs
let range = origin ? '..origin/'.v.branch : 'HEAD@{1}..' let branch = s:git_origin_branch(v)
let cmd = ['git', 'log', '--graph', '--color=never'] if len(branch)
if s:git_version_requirement(2, 10, 0) let range = origin ? '..origin/'.branch : 'HEAD@{1}..'
call add(cmd, '--no-show-signature') let cmd = ['git', 'log', '--graph', '--color=never']
endif if s:git_version_requirement(2, 10, 0)
call extend(cmd, ['--pretty=format:%x01%h%x01%d%x01%s%x01%cr', range]) call add(cmd, '--no-show-signature')
if has_key(v, 'rtp') endif
call extend(cmd, ['--', v.rtp]) call extend(cmd, ['--pretty=format:%x01%h%x01%d%x01%s%x01%cr', range])
endif if has_key(v, 'rtp')
let diff = s:system_chomp(cmd, v.dir) call extend(cmd, ['--', v.rtp])
if !empty(diff) endif
let ref = has_key(v, 'tag') ? (' (tag: '.v.tag.')') : has_key(v, 'commit') ? (' '.v.commit) : '' let diff = s:system_chomp(cmd, v.dir)
call append(5, extend(['', '- '.k.':'.ref], map(s:lines(diff), 's:format_git_log(v:val)'))) if !empty(diff)
let cnts[origin] += 1 let ref = has_key(v, 'tag') ? (' (tag: '.v.tag.')') : has_key(v, 'commit') ? (' '.v.commit) : ''
call append(5, extend(['', '- '.k.':'.ref], map(s:lines(diff), 's:format_git_log(v:val)')))
let cnts[origin] += 1
endif
endif endif
let bar .= '=' let bar .= '='
call s:progress_bar(2, bar, len(total)) call s:progress_bar(2, bar, len(total))
@ -2661,9 +2774,9 @@ function! s:snapshot(force, ...) abort
1 1
let anchor = line('$') - 3 let anchor = line('$') - 3
let names = sort(keys(filter(copy(g:plugs), let names = sort(keys(filter(copy(g:plugs),
\'has_key(v:val, "uri") && !has_key(v:val, "commit") && isdirectory(v:val.dir)'))) \'has_key(v:val, "uri") && isdirectory(v:val.dir)')))
for name in reverse(names) for name in reverse(names)
let sha = s:system_chomp(['git', 'rev-parse', '--short', 'HEAD'], g:plugs[name].dir) let sha = has_key(g:plugs[name], 'commit') ? g:plugs[name].commit : s:git_revision(g:plugs[name].dir)
if !empty(sha) if !empty(sha)
call append(anchor, printf("silent! let g:plugs['%s'].commit = '%s'", name, sha)) call append(anchor, printf("silent! let g:plugs['%s'].commit = '%s'", name, sha))
redraw redraw

View File

@ -1,119 +1,121 @@
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" vim " vim
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set nocompatible lua require('basic_vim')
set mouse=a lua require('plugins_vim')
set history=1000 lua require('mappings_vim')
set ruler " set nocompatible
set number " set mouse=a
set showcmd " set history=1000
set ttimeoutlen=100 " set ruler
set backspace=indent,eol,start " set number
set tabstop=4 " set showcmd
set expandtab " set ttimeoutlen=100
set shiftwidth=4 " set backspace=indent,eol,start
set softtabstop=4 " set tabstop=4
set autoindent " set expandtab
set showmatch " set shiftwidth=4
set incsearch " set softtabstop=4
set hlsearch " set autoindent
set wrapscan " set showmatch
set ignorecase " set incsearch
set smartcase " set hlsearch
set hidden " set wrapscan
set splitright " set ignorecase
set splitbelow " set smartcase
" set hidden
" set splitright
" set splitbelow
" set backupdir=~/.config/nvim/backup,/tmp " set backupdir=~/.config/nvim/backup,/tmp
" set backup " set backup
set noswapfile " set noswapfile
set wildmode=longest,list " set wildmode=longest,list
set nospell " set nospell
set foldmethod=syntax " set foldmethod=syntax
set foldopen-=block " set foldopen-=block
set foldlevel=99 " set foldlevel=99
set lazyredraw " set lazyredraw
set listchars=eol,tab:\ \ ,trail " set listchars=eol:¬,tab:\ \ ,trail:·
set fillchars=vert:\|,fold:\ " set fillchars=vert:\|,fold:\
set list " set list
set laststatus=2 " set laststatus=2
set scrolloff=8 " set scrolloff=8
set background=light " set background=light
" set colorcolumn=100 " " set colorcolumn=100
set wrap " set wrap
set showbreak=.. " set showbreak=..
set clipboard+=unnamedplus " set clipboard+=unnamedplus
" set formatoptions+=l " " set formatoptions+=l
set noerrorbells " set noerrorbells
set visualbell " set visualbell
set t_vb= set t_vb=
set title " set title
set autoread " set autoread
syntax on " syntax on
let g:tex_flavor="latex" " let g:tex_flavor="latex"
" set listchars=eol:¬,tab:▸\ ,trail:· " set listchars=eol:¬,tab:▸\ ,trail:·
" set listchars=eol:¬,tab:>\ ,trail:· " set listchars=eol:¬,tab:>\ ,trail:·
if !has('nvim') | set encoding=utf-8 | endif " if !has('nvim') | set encoding=utf-8 | endif
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" plugins " plugins
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
call plug#begin('~/.local/share/nvim/site/plugins') " call plug#begin('~/.local/share/nvim/site/plugins')
Plug 'kien/ctrlp.vim' | Plug 'sgur/ctrlp-extensions.vim' " Plug 'kien/ctrlp.vim' | Plug 'sgur/ctrlp-extensions.vim'
Plug 'scrooloose/nerdtree' " Plug 'scrooloose/nerdtree'
" Plug 'scrooloose/syntastic' " Plug 'scrooloose/syntastic'
Plug 'vim-scripts/bufexplorer.zip' " Plug 'vim-scripts/bufexplorer.zip'
Plug 'majutsushi/tagbar' " Plug 'majutsushi/tagbar'
Plug 'Shougo/deoplete.nvim' " Plug 'Shougo/deoplete.nvim'
Plug 'SirVer/ultisnips' " Plug 'SirVer/ultisnips'
Plug 'Raimondi/delimitMate' " Plug 'Raimondi/delimitMate'
Plug 'tpope/vim-surround' " Plug 'tpope/vim-surround'
Plug 'tpope/vim-commentary' " Plug 'tpope/vim-commentary'
Plug 'junegunn/vim-easy-align' " Plug 'junegunn/vim-easy-align'
Plug 'maxbrunsfeld/vim-yankstack' " Plug 'maxbrunsfeld/vim-yankstack'
Plug 'tpope/vim-repeat' " Plug 'tpope/vim-repeat'
Plug 'wellle/targets.vim' " Plug 'wellle/targets.vim'
Plug 'benekastah/neomake' " Plug 'benekastah/neomake'
Plug 'tpope/vim-fugitive' " Plug 'tpope/vim-fugitive'
Plug 'tpope/vim-dispatch' " Plug 'tpope/vim-dispatch'
Plug 'lervag/vimtex' " Plug 'lervag/vimtex'
Plug 'vim-scripts/MatlabFilesEdition' " Plug 'vim-scripts/LanguageTool'
Plug 'vim-scripts/LanguageTool'
" Plug 'mhinz/neovim-remote' " Plug 'mhinz/neovim-remote'
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' } | Plug 'junegunn/fzf.vim' " Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' } | Plug 'junegunn/fzf.vim'
Plug 'rking/ag.vim' " Plug 'rking/ag.vim'
"
" Plug 'tpope/vim-obsession'
" Plug 'mhinz/vim-startify'
" Plug 'wesQ3/vim-windowswap'
"
" Plug 'bling/vim-airline' | Plug 'vim-airline/vim-airline-themes' |Plug 'jonathanfilip/vim-lucius'
" Plug 'altercation/vim-colors-solarized'
Plug 'tpope/vim-obsession' " call plug#end()
Plug 'mhinz/vim-startify'
Plug 'wesQ3/vim-windowswap'
Plug 'bling/vim-airline' | Plug 'vim-airline/vim-airline-themes' |Plug 'jonathanfilip/vim-lucius'
Plug 'altercation/vim-colors-solarized'
call plug#end()
filetype plugin indent on filetype plugin indent on
set omnifunc=syntaxcomplete#Complete set omnifunc=syntaxcomplete#Complete
set completeopt=menu " set completeopt=menu
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" plugin specific " plugin specific
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" NerdTree " NerdTree
let NERDTreeQuitOnOpen=1 "let NERDTreeQuitOnOpen=1
let NERDTreeHijackNetrw=1 "let NERDTreeHijackNetrw=1
" syntastic " syntastic
" set statusline+=%#warningmsg# " set statusline+=%#warningmsg#
@ -125,11 +127,11 @@ let NERDTreeHijackNetrw=1
" let g:syntastic_check_on_wq = 0 " let g:syntastic_check_on_wq = 0
" CtrlP " CtrlP
set wildignore+=main,*.o,*.d,*.aux,*.bbl,*.lof,*.loa,*.blg,*.fdb_latexmk,*.fls,*.tdo,*.pdf,*.pyc " set wildignore+=main,*.o,*.d,*.aux,*.bbl,*.lof,*.loa,*.blg,*.fdb_latexmk,*.fls,*.tdo,*.pdf,*.pyc
let g:ctrlp_switch_buffer = 'e' " let g:ctrlp_switch_buffer = 'e'
let g:ctrlp_working_path_mode = 'ra' " let g:ctrlp_working_path_mode = 'ra'
let g:ctrlp_extensions = [ 'tag', 'buffertag', 'mixed' ] " let g:ctrlp_extensions = [ 'tag', 'buffertag', 'mixed' ]
let g:ctrlp_map = '' " let g:ctrlp_map = ''
" let g:ctrlp_prompt_mappings = { " let g:ctrlp_prompt_mappings = {
" \ 'PrtSelectMove("j")': ['<c-n>', '<down>'], " \ 'PrtSelectMove("j")': ['<c-n>', '<down>'],
" \ 'PrtSelectMove("k")': ['<c-p>', '<up>'], " \ 'PrtSelectMove("k")': ['<c-p>', '<up>'],
@ -140,31 +142,25 @@ let g:tagbar_left=1
let g:tagbar_autoclose=1 let g:tagbar_autoclose=1
let g:tagbar_autofocus=1 let g:tagbar_autofocus=1
" deoplete
let g:deoplete#enable_at_startup=1
" if !exists('g:deoplete#omni#input_patterns')
" let g:deoplete#omni#input_patterns = {}
" endif
" DelimitMate " DelimitMate
let delimitMate_expand_space=1 let delimitMate_expand_space=1
let delimitMate_expand_cr=1 let delimitMate_expand_cr=1
" UltiSnips " UltiSnips
let g:UltiSnipsSnippetsDir='~/.config/nvim/UltiSnips' " let g:UltiSnipsSnippetsDir='~/.config/nvim/UltiSnips'
let g:UltiSnipsSnippetsDirectories=["UltiSnips"] " let g:UltiSnipsSnippetsDirectories=["UltiSnips"]
let g:UltiSnipsExpandTrigger="<C-j>" " let g:UltiSnipsExpandTrigger="<C-j>"
let g:UltiSnipsJumpForwardTrigger="<C-j>" " let g:UltiSnipsJumpForwardTrigger="<C-j>"
let g:UltiSnipsJumpBackwardTrigger="<C-k>" " let g:UltiSnipsJumpBackwardTrigger="<C-k>"
" YankStack " YankStack
let g:yankstack_map_keys=0 "let g:yankstack_map_keys=0
call yankstack#setup() "call yankstack#setup()
" vimtex " vimtex
let g:vimtex_fold_enabled = 1 " let g:vimtex_fold_enabled = 1
let g:vimtex_view_method = 'zathura' " let g:vimtex_view_method = 'zathura'
let g:vimtex_quickfix_mode = 2 " let g:vimtex_quickfix_mode = 2
" let g:deoplete#omni#input_patterns.tex = " let g:deoplete#omni#input_patterns.tex =
" \ '\v\\%(' " \ '\v\\%('
" \ . '\a*cite\a*%(\s*\[[^]]*\]){0,2}\s*\{[^}]*' " \ . '\a*cite\a*%(\s*\[[^]]*\]){0,2}\s*\{[^}]*'
@ -236,13 +232,16 @@ vnoremap j gj
vnoremap k gk vnoremap k gk
" file navigation " file navigation
nnoremap <silent> <leader>f :Files ~<CR> nnoremap <silent> <leader>ff <cmd>Telescope find_files<CR>
nnoremap <silent> <leader>fg <cmd>Telescope live_grep<CR>
nnoremap <silent> <leader>o <cmd>Telescope buffers<CR>
nnoremap <silent> <leader>fh <cmd>Telescope help_tags<CR>
nnoremap <silent> <leader>F :e.<CR> nnoremap <silent> <leader>F :e.<CR>
nnoremap <silent> <leader>o :CtrlPBuffer<CR>
nnoremap <silent> <leader>O :BufExplorer<CR> nnoremap <silent> <leader>O :BufExplorer<CR>
nnoremap <silent> <leader>t :CtrlPBufTagAll<CR> nnoremap <silent> <leader>t :CtrlPBufTagAll<CR>
nnoremap <silent> <leader>T :TagbarToggle<CR> nnoremap <silent> <leader>T :TagbarToggle<CR>
nnoremap <leader>p :CtrlPYankring<CR> nnoremap <leader>p :CtrlPYankring<CR>
nnoremap <C-p> <Plug>yankstack_substitute_newer_paste nnoremap <C-p> <Plug>yankstack_substitute_newer_paste
nnoremap <C-n> <Plug>yankstack_substitute_older_paste nnoremap <C-n> <Plug>yankstack_substitute_older_paste
@ -253,9 +252,9 @@ cnoremap <C-n> <Down>
cnoremap w!! w !sudo tee > /dev/null % cnoremap w!! w !sudo tee > /dev/null %
" quickfix mappings " quickfix mappings
nnoremap <silent> <leader>q :call ToggleList("Quickfix List", 'c')<CR> " nnoremap <silent> <leader>q :call ToggleList("Quickfix List", 'c')<CR>
nnoremap <silent> [q :cprevious<CR> " nnoremap <silent> [q :cprevious<CR>
nnoremap <silent> ]q :cnext<CR> " nnoremap <silent> ]q :cnext<CR>
" split movement " split movement
nnoremap <C-h> <C-w>h nnoremap <C-h> <C-w>h
@ -281,7 +280,7 @@ nmap ga <Plug>(EasyAlign)
augroup Terminal augroup Terminal
autocmd! autocmd!
au BufWinEnter,WinEnter term://* startinsert au BufWinEnter,WinEnter term://* startinsert
au TermOpen * call SetMatlabMaps() " au TermOpen * call SetMatlabMaps()
augroup END augroup END
" no folding on open bracket " no folding on open bracket
@ -291,10 +290,10 @@ augroup Folding
au InsertLeave,WinLeave * if exists('w:last_fdm') | let &l:foldmethod=w:last_fdm | unlet w:last_fdm | endif au InsertLeave,WinLeave * if exists('w:last_fdm') | let &l:foldmethod=w:last_fdm | unlet w:last_fdm | endif
augroup END augroup END
" Source init.vim on write
augroup VimIntern augroup VimIntern
autocmd! autocmd!
au BufWritePost ~/Documents/setup/nvim/init.vim source % " Source init.vim on write
au BufWritePost $MYVIMRC source %
" check for file change " check for file change
au FocusGained,BufEnter,CursorMoved,CursorMovedI,CursorHold,CursorHoldI * :silent! checktime au FocusGained,BufEnter,CursorMoved,CursorMovedI,CursorHold,CursorHoldI * :silent! checktime
" change working directory to current files directory " change working directory to current files directory
@ -329,16 +328,16 @@ augroup Cpp
" au FileType c,cpp inoremap <silent> = =<Esc>:call <SID>ealign()<CR>a " au FileType c,cpp inoremap <silent> = =<Esc>:call <SID>ealign()<CR>a
augroup END augroup END
" tex " " tex
augroup Tex " augroup Tex
autocmd! " autocmd!
au Filetype tex,latex setlocal foldmethod=expr " au Filetype tex,latex setlocal foldmethod=expr
au Filetype tex,latex setlocal foldlevel=0 " au Filetype tex,latex setlocal foldlevel=0
au Filetype tex,latex setlocal spell " au Filetype tex,latex setlocal spell
" au Filetype tex,latex setlocal textwidth=80 " " au Filetype tex,latex setlocal textwidth=80
au Filetype tex,latex inoremap $ $$<Left> " au Filetype tex,latex inoremap $ $$<Left>
au BufWritePost *.tex Neomake " au BufWritePost *.tex Neomake
augroup END " augroup END
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" custom functions " custom functions
@ -351,14 +350,14 @@ function! OpenMatlabInTerminal()
call SetMatlabMaps() call SetMatlabMaps()
endfunction endfunction
function! SetMatlabMaps() " function! SetMatlabMaps()
if bufname('') =~? "mlnd" " if bufname('') =~? "mlnd"
tnoremap <buffer> <leader><leader>mc close all<CR> " tnoremap <buffer> <leader><leader>mc close all<CR>
tnoremap <buffer> <leader><leader>mw clear<CR> " tnoremap <buffer> <leader><leader>mw clear<CR>
tnoremap <buffer> <leader><leader>mf clear functions<CR> " tnoremap <buffer> <leader><leader>mf clear functions<CR>
nnoremap <buffer> <C-c> i<C-c> " nnoremap <buffer> <C-c> i<C-c>
endif " endif
endfunction " endfunction
" change tmux window name to session " change tmux window name to session
function! ChangeTmuxToSessionName() function! ChangeTmuxToSessionName()
@ -373,6 +372,7 @@ endfunction
function! SaveTmuxWindowName() function! SaveTmuxWindowName()
let g:tmuxWindowName = system("tmux display-message -p '#W'") let g:tmuxWindowName = system("tmux display-message -p '#W'")
let g:tmuxWindowName = substitute(g:tmuxWindowName, '\n\+$', '', '')
call system("tmux rename-window 'nvim'") call system("tmux rename-window 'nvim'")
endfunction endfunction