+ SessionMan
This commit is contained in:
parent
f21f555b03
commit
2247fbf691
3
.gitmodules
vendored
3
.gitmodules
vendored
@ -65,3 +65,6 @@
|
|||||||
[submodule "pack/asyncrun/opt/asyncrun"]
|
[submodule "pack/asyncrun/opt/asyncrun"]
|
||||||
path = pack/asyncrun/opt/asyncrun
|
path = pack/asyncrun/opt/asyncrun
|
||||||
url = https://github.com/skywind3000/asyncrun.vim.git
|
url = https://github.com/skywind3000/asyncrun.vim.git
|
||||||
|
[submodule "pack/sessionman/opt/sessionman"]
|
||||||
|
path = pack/sessionman/opt/sessionman
|
||||||
|
url = https://github.com/vim-scripts/sessionman.vim.git
|
||||||
|
1
pack/sessionman/opt/sessionman
Submodule
1
pack/sessionman/opt/sessionman
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit 845d35b84c5c51f631d8bfa4afe3edc126102ba9
|
@ -4,457 +4,13 @@
|
|||||||
" Description: some usefull tools
|
" Description: some usefull tools
|
||||||
" ===========================================================================
|
" ===========================================================================
|
||||||
|
|
||||||
" ----------------
|
|
||||||
" Project settings
|
|
||||||
" ----------------
|
|
||||||
if !exists("basedir")
|
|
||||||
let g:basedir = getcwd()
|
|
||||||
endif
|
|
||||||
|
|
||||||
let s:projectFileNames = [
|
|
||||||
\ 'project.vim',
|
|
||||||
\ 'makefile',
|
|
||||||
\ 'Makefile',
|
|
||||||
\ 'makefile.mak',
|
|
||||||
\ 'Makefile.mak',
|
|
||||||
\ 'make.bat',
|
|
||||||
\ 'make_fsw.bat']
|
|
||||||
let g:projectsFile = fnamemodify($VIMRUNTIME . '/../projects.txt', ':p')
|
|
||||||
|
|
||||||
" ----------
|
|
||||||
" SetProject
|
|
||||||
" ----------
|
|
||||||
command -complete=customlist,GetAllProjectFiles -nargs=? SetProject call s:SetProject('<args>')
|
|
||||||
"function GetAllProjectFiles(ArgLead, CmdLine, CursorPos)
|
|
||||||
function GetAllProjectFiles(...)
|
|
||||||
let makefilePaths = []
|
|
||||||
|
|
||||||
" Get Makefiles from g:WA or ArgLead
|
|
||||||
if exists('g:WA')
|
|
||||||
let path = g:WA
|
|
||||||
if a:0 == 3
|
|
||||||
let ArgLead = a:1
|
|
||||||
let CmdLine = a:2
|
|
||||||
let CursorPos = a:3
|
|
||||||
if ArgLead != ''
|
|
||||||
let path = expand(ArgLead)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
let makefilePaths += s:GetAllProjectFilesInPath(path)
|
|
||||||
endif
|
|
||||||
|
|
||||||
if makefilePaths == []
|
|
||||||
" Get Projects from project.txt
|
|
||||||
let projectPaths = s:GetProjectPaths(g:projectsFile)
|
|
||||||
for projectPath in projectPaths
|
|
||||||
let makefilePaths += s:GetAllProjectFilesInPath(projectPath)
|
|
||||||
endfor
|
|
||||||
endif
|
|
||||||
|
|
||||||
return makefilePaths
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" Get all Makefiles defined in s:projectFileNames contained in path
|
|
||||||
function s:GetAllProjectFilesInPath(path)
|
|
||||||
let files = []
|
|
||||||
if isdirectory(a:path)
|
|
||||||
let path = a:path
|
|
||||||
else
|
|
||||||
let path = a:path . '*'
|
|
||||||
endif
|
|
||||||
for makefileName in s:projectFileNames
|
|
||||||
let pathlist = path . ',' . path . '/*,' . path . '/*/*,' . path . '/*/*/*'
|
|
||||||
let newfiles = split(globpath(pathlist, makefileName))
|
|
||||||
let files += newfiles
|
|
||||||
" echo files
|
|
||||||
endfor
|
|
||||||
return files
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" Get Project-Paths from project.txt
|
|
||||||
function s:GetProjectPaths(projectsFile)
|
|
||||||
let paths = []
|
|
||||||
if filereadable(a:projectsFile)
|
|
||||||
let paths = split(system('more ' . a:projectsFile))
|
|
||||||
endif
|
|
||||||
return paths
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" Find projectfile and set some options
|
|
||||||
" -------------------------------------
|
|
||||||
function s:SetProject(projectfile)
|
|
||||||
if ((a:projectfile == '') && has('browse'))
|
|
||||||
" Browse for projectfile
|
|
||||||
if exists('g:WA')
|
|
||||||
let l:WA = g:WA
|
|
||||||
else
|
|
||||||
let l:WA = ''
|
|
||||||
endif
|
|
||||||
|
|
||||||
let b:browsefilter =
|
|
||||||
\ "All Project Files\t" . join(s:projectFileNames, ';') . "\n"
|
|
||||||
\ . "Vim-Files\t*.vim\n"
|
|
||||||
\ . "Batch-Files\t*.bat\n"
|
|
||||||
\ . "Makefiles\tmakefile;*.mak\n"
|
|
||||||
\ . "All\ Files\t*\n"
|
|
||||||
let projectfilePath = fnamemodify(browse(0, 'Select projectfile', l:WA, ''), ':p')
|
|
||||||
if !filereadable(projectfilePath)
|
|
||||||
echoerr 'File not readable: ' . projectfilePath
|
|
||||||
" Cancel
|
|
||||||
return
|
|
||||||
endif
|
|
||||||
else
|
|
||||||
" set Workarea and basedir
|
|
||||||
if filereadable(a:projectfile)
|
|
||||||
let projectfilePath = fnamemodify(a:projectfile, ':p')
|
|
||||||
else
|
|
||||||
echoerr 'No projectfile' a:projectfile
|
|
||||||
return
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
" split file name and path
|
|
||||||
let g:basedir = fnamemodify(projectfilePath, ':p:h')
|
|
||||||
let projectfileName = fnamemodify(projectfilePath, ':t')
|
|
||||||
|
|
||||||
let ext = fnamemodify(projectfileName, ':e')
|
|
||||||
if ext == 'vim'
|
|
||||||
" Projectfile is a vimscript. Execute and end
|
|
||||||
try
|
|
||||||
execute 'source ' . projectfilePath
|
|
||||||
catch
|
|
||||||
echom v:exception
|
|
||||||
endtry
|
|
||||||
else
|
|
||||||
" Projectfile is a makefile or a batchfile
|
|
||||||
if ext == 'bat'
|
|
||||||
let g:makeCommand = projectfilePath
|
|
||||||
else
|
|
||||||
let g:makeCommand = 'make -f ' . projectfilePath
|
|
||||||
endif
|
|
||||||
let &makeprg = g:makeCommand . ' $*'
|
|
||||||
|
|
||||||
" set directories
|
|
||||||
execute 'cd ' . g:basedir
|
|
||||||
" cd path
|
|
||||||
let &cdpath = g:basedir
|
|
||||||
" browse-dir
|
|
||||||
set browsedir=buffer
|
|
||||||
|
|
||||||
" search path
|
|
||||||
set path&
|
|
||||||
|
|
||||||
call s:GetProjectVariables()
|
|
||||||
call s:EvalProjectVariables()
|
|
||||||
endif
|
|
||||||
|
|
||||||
if exists('g:did_load_sessionfile')
|
|
||||||
echom 'Sessionfile not loaded again'
|
|
||||||
else
|
|
||||||
let g:did_load_sessionfile=1
|
|
||||||
if exists('g:sessionfile')
|
|
||||||
" Vim-Session load
|
|
||||||
try
|
|
||||||
execute 'source' g:sessionfile
|
|
||||||
catch /^Vim\%((\a\+)\)\=:E484/ " file not found
|
|
||||||
catch " other error
|
|
||||||
echom 'Fehler in' g:sessionfile ':' v:exception
|
|
||||||
endtry
|
|
||||||
" Vim-Session autowrite
|
|
||||||
autocmd VimLeavePre * execute 'mksession!' g:sessionfile
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" Get Project Specific Variables
|
|
||||||
function s:GetProjectVariables()
|
|
||||||
let varnames = [
|
|
||||||
\ 'VIM_PROJECTFILE',
|
|
||||||
\]
|
|
||||||
let s:Variables = GetMakeVars(varnames)
|
|
||||||
|
|
||||||
echo 'Reading variables from makefile'
|
|
||||||
echo '-------------------------------'
|
|
||||||
for varname in keys(s:Variables)
|
|
||||||
echo printf('%-15s = %s', varname, s:Variables[varname])
|
|
||||||
endfor
|
|
||||||
echo '-------------------------------'
|
|
||||||
echo ''
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" Evaluate Project Specific Variables
|
|
||||||
function s:EvalProjectVariables()
|
|
||||||
try
|
|
||||||
" evaluate path variable
|
|
||||||
if s:Variables['VIM_PROJECTFILE'] != ''
|
|
||||||
if !filereadable(s:Variables['VIM_PROJECTFILE'])
|
|
||||||
" try to create config-file
|
|
||||||
make vim-config
|
|
||||||
endif
|
|
||||||
try
|
|
||||||
execute 'source ' . s:Variables['VIM_PROJECTFILE']
|
|
||||||
catch
|
|
||||||
echoerr 'cant source "' . s:Variables['VIM_PROJECTFILE'] . '"'
|
|
||||||
echoerr 'check the make variable VIM_PROJECTFILE'
|
|
||||||
endtry
|
|
||||||
else
|
|
||||||
echomsg 'set the make-variable VIM_PROJECTFILE to the project-config file for vim'
|
|
||||||
echomsg 'For old BMSK-Projects try :SetBmskProject'
|
|
||||||
endif
|
|
||||||
catch /E716/ " Schlüssel nicht vorhanden
|
|
||||||
echomsg v:exception
|
|
||||||
echomsg 'For old BMSK-Projects try :SetBmskProject'
|
|
||||||
catch
|
|
||||||
echoerr 'Error while reading make-variables: ' . v:exception
|
|
||||||
endtry
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" Get values for a list of variables as dictionary
|
|
||||||
function GetMakeVars(varNameList)
|
|
||||||
let varlist = {}
|
|
||||||
try
|
|
||||||
let vars = join(a:varNameList, ' ')
|
|
||||||
let command = g:makeCommand . ' getvar name="' . vars . '"'
|
|
||||||
"echomsg command
|
|
||||||
let output = system(command)
|
|
||||||
let lines = split(output, "\n")
|
|
||||||
if len(lines) == 1 && len(a:varNameList) == 1 && match(lines[0], '=') < 0
|
|
||||||
" make output: value
|
|
||||||
let RE = '\(.*\)'
|
|
||||||
let SU = "let varlist['" . vars . "']='\\1'"
|
|
||||||
else
|
|
||||||
" make output: var=value
|
|
||||||
let RE = '^\(\w\+\)=\(.*\)\s*'
|
|
||||||
let SU = "let varlist['\\1']='\\2'"
|
|
||||||
endif
|
|
||||||
"echomsg 'getvars:'
|
|
||||||
for line in lines
|
|
||||||
"echomsg line
|
|
||||||
if match(line, RE) >= 0
|
|
||||||
let command = substitute(line, RE, SU, '')
|
|
||||||
"echomsg command
|
|
||||||
execute command
|
|
||||||
endif
|
|
||||||
endfor
|
|
||||||
"echomsg ''
|
|
||||||
catch
|
|
||||||
echomsg 'Could not read make variables'
|
|
||||||
endtry
|
|
||||||
|
|
||||||
if varlist == {}
|
|
||||||
echomsg 'Could not read any variables from makefile'
|
|
||||||
echo 'Command:' command
|
|
||||||
echo 'Make output is:'
|
|
||||||
for line in lines
|
|
||||||
echo line
|
|
||||||
endfor
|
|
||||||
echo '---'
|
|
||||||
endif
|
|
||||||
return varlist
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function GetMakeVar(varName)
|
|
||||||
let var = GetMakeVars([a:varName])
|
|
||||||
try
|
|
||||||
let varValue = var[a:varName]
|
|
||||||
catch
|
|
||||||
let varValue = ''
|
|
||||||
echomsg 'Could not read make-variable "' . a:varName . '"'
|
|
||||||
endtry
|
|
||||||
return varValue
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
|
|
||||||
" ------------------
|
" ------------------
|
||||||
" Draw Vimsuite-Menu
|
" Draw Vimsuite-Menu
|
||||||
" ------------------
|
" ------------------
|
||||||
let s:VimSuiteMenuLocation = 70
|
let s:VimSuiteMenuLocation = 70
|
||||||
let s:VimSuiteMenuName = '&VimSuite.'
|
let s:VimSuiteMenuName = '&VimSuite.'
|
||||||
|
|
||||||
function s:AddFileToProjectMenu(makefilePath, submenu, priority)
|
|
||||||
exec 'anoremenu '
|
|
||||||
\ . s:VimSuiteMenuLocation
|
|
||||||
\ . a:priority' '
|
|
||||||
\ . s:VimSuiteMenuName.'&Project'
|
|
||||||
\ . a:submenu . '.'
|
|
||||||
\ . escape(a:makefilePath, '.\') . '<tab>'
|
|
||||||
\ . ' :SetProject ' . a:makefilePath . '<CR>'
|
|
||||||
endfunction
|
|
||||||
"
|
|
||||||
function s:AddAllKnownProjectsToMenu()
|
|
||||||
" Projects in project.txt
|
|
||||||
exec 'anoremenu ..50 '. s:VimSuiteMenuName.
|
|
||||||
\'&Project.-sep2- :'
|
|
||||||
let projectPaths = s:GetProjectPaths(g:projectsFile)
|
|
||||||
let makefilePaths = []
|
|
||||||
for projectPath in projectPaths
|
|
||||||
let makefilePaths += s:GetAllProjectFilesInPath(projectPath)
|
|
||||||
endfor
|
|
||||||
for makefilePath in makefilePaths
|
|
||||||
call s:AddFileToProjectMenu(makefilePath, '.Makefiles\ in\ project\.txt', '..60')
|
|
||||||
endfor
|
|
||||||
|
|
||||||
" Projects in g:WA
|
|
||||||
if exists('g:WA')
|
|
||||||
for makefilePath in s:GetAllProjectFilesInPath(g:WA)
|
|
||||||
if fnamemodify(makefilePath, ':e') == 'vim'
|
|
||||||
let submenu = ''
|
|
||||||
let prio = '..30'
|
|
||||||
else
|
|
||||||
let submenu = '.Makefiles\ in\ WA'
|
|
||||||
let prio = '..70'
|
|
||||||
endif
|
|
||||||
call s:AddFileToProjectMenu(makefilePath, submenu, prio)
|
|
||||||
endfor
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
"
|
|
||||||
function s:InitProjectMenu()
|
|
||||||
exec 'silent! aunmenu '.s:VimSuiteMenuName.'&Project'
|
|
||||||
exec 'anoremenu '.s:VimSuiteMenuLocation.'.10.10 '.s:VimSuiteMenuName.
|
|
||||||
\'&Project.&Browse\ for\ projectfile<tab>:SetProject'.
|
|
||||||
\' :SetProject<CR>'
|
|
||||||
exec 'anoremenu ..20 '. s:VimSuiteMenuName.
|
|
||||||
\'&Project.-sep1- :'
|
|
||||||
endfunction
|
|
||||||
"
|
|
||||||
function s:RedrawProjectMenu()
|
|
||||||
call s:InitProjectMenu()
|
|
||||||
call s:AddAllKnownProjectsToMenu()
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" -------
|
|
||||||
" Session
|
|
||||||
" -------
|
|
||||||
command -complete=custom,GetAllSessions -nargs=? SessionLoad call s:SessionLoad('<args>')
|
|
||||||
function s:SessionLoad(SessionFile)
|
|
||||||
if ((a:SessionFile == '') && has('browse'))
|
|
||||||
" Browse for session-file
|
|
||||||
if exists('b:browsefilter')
|
|
||||||
let l:browsefilter = b:browsefilter
|
|
||||||
endif
|
|
||||||
let b:browsefilter = "Vim Sessions (*.vim)\t*.vim\nAll Files (*.*)\t*.*"
|
|
||||||
let SessionFile = browse(0, 'Select Session', '.', '')
|
|
||||||
if exists('l:browsefilter')
|
|
||||||
let b:browsefilter = l:browsefilter
|
|
||||||
endif
|
|
||||||
else
|
|
||||||
let SessionFile = a:SessionFile
|
|
||||||
endif
|
|
||||||
if filereadable(SessionFile)
|
|
||||||
let g:sessionfile = SessionFile
|
|
||||||
" load session
|
|
||||||
execute('source ' . g:sessionfile)
|
|
||||||
" set autocmd to save session on exit
|
|
||||||
autocmd VimLeavePre * execute 'mksession!' g:sessionfile
|
|
||||||
" reset search path to session folder
|
|
||||||
set path+=./**
|
|
||||||
else
|
|
||||||
echo 'No such File:' SessionFile
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" Load .session.vim, if available in current directory and save on exit
|
|
||||||
if argc() == 0 " skip, if command-line-parameters were given
|
|
||||||
if !exists('g:sessionfile') && filereadable('.session.vim')
|
|
||||||
let g:sessionfile = '.session.vim'
|
|
||||||
endif
|
|
||||||
if exists('g:sessionfile') && filereadable(g:sessionfile)
|
|
||||||
call s:SessionLoad(g:sessionfile)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
command -nargs=? SessionSave call s:SessionSave('<args>')
|
|
||||||
command -nargs=? Exit SessionSave <args>|exit
|
|
||||||
function s:SessionSave(SessionName)
|
|
||||||
if (a:SessionName == '')
|
|
||||||
if ((v:this_session == '') && has('browse'))
|
|
||||||
" Browse for session-file
|
|
||||||
if exists('b:browsefilter')
|
|
||||||
let l:browsefilter = b:browsefilter
|
|
||||||
endif
|
|
||||||
let b:browsefilter = "Vim Sessions (*.vim)\t*.vim\nAll Files (*.*)\t*.*"
|
|
||||||
let SessionName = browse(1, 'Select Session File', '.', '.session.vim')
|
|
||||||
if exists('l:browsefilter')
|
|
||||||
let b:browsefilter = l:browsefilter
|
|
||||||
endif
|
|
||||||
else
|
|
||||||
let SessionName = v:this_session
|
|
||||||
endif
|
|
||||||
else
|
|
||||||
let SessionName = a:SessionName
|
|
||||||
endif
|
|
||||||
execute('mksession! ' . SessionName)
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function GetAllSessions(ArgLead, CmdLine, CursorPos)
|
|
||||||
let sessions_txt = $VIMRUNTIME . '/../sessions.txt'
|
|
||||||
let sessions = ''
|
|
||||||
let sessions = sessions . GlobLong($VIMRUNTIME . '/../*.vim')
|
|
||||||
if filereadable(sessions_txt)
|
|
||||||
let sessions = sessions . system("cat " . sessions_txt)
|
|
||||||
endif
|
|
||||||
return sessions
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
|
|
||||||
function s:DelSessions()
|
|
||||||
exec 'silent! aunmenu '.s:VimSuiteMenuName.'&Session'
|
|
||||||
exec 'anoremenu '.s:VimSuiteMenuLocation.'.10 '.s:VimSuiteMenuName.
|
|
||||||
\'&Session.&Browse\ for\ Sessionfile<tab>:SessionLoad'.
|
|
||||||
\' :SessionLoad<CR>'
|
|
||||||
exec 'anoremenu '.s:VimSuiteMenuLocation.'.20 '.s:VimSuiteMenuName.
|
|
||||||
\'&Session.&Save<tab>:SessionSave'.
|
|
||||||
\' :SessionSave<CR>'
|
|
||||||
exec 'anoremenu '.s:VimSuiteMenuLocation.'.30 '.s:VimSuiteMenuName.
|
|
||||||
\'&Session.Save\ &As<tab>:SessionSave'.
|
|
||||||
\' :let v:this_session = ""<CR>:SessionSave<CR>'
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function s:RedrawSessionMenu()
|
|
||||||
call s:DelSessions()
|
|
||||||
call s:AddAllKnownSessionsToMenu()
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function s:AddAllKnownSessionsToMenu()
|
|
||||||
" set path from g:WAs
|
|
||||||
if exists('g:WAs')
|
|
||||||
for wa in g:WAs
|
|
||||||
" echom 'wa:' . wa . ':'
|
|
||||||
execute 'set path+=' . wa
|
|
||||||
endfor
|
|
||||||
endif
|
|
||||||
|
|
||||||
" search all session files in path
|
|
||||||
if !exists('g:SessionFileNames')
|
|
||||||
let g:SessionFileNames = [
|
|
||||||
\ '.session.vim',
|
|
||||||
\ 'Session.vim',
|
|
||||||
\]
|
|
||||||
endif
|
|
||||||
" echom 'SessionFileNames:' . join(g:SessionFileNames, ', ') . ':'
|
|
||||||
let sessionfiles_wa = []
|
|
||||||
for SessionFileName in g:SessionFileNames
|
|
||||||
let sessionfiles_wa += findfile('.session.vim', &path, -1)
|
|
||||||
" echom 'sessions:' . join(sessionfiles_wa, ', ') . ':'
|
|
||||||
endfor
|
|
||||||
|
|
||||||
" Add sessions to Gvim menu
|
|
||||||
for sessionfile in sessionfiles_wa
|
|
||||||
let cmd = 'anoremenu '.s:VimSuiteMenuLocation.'.40 '.s:VimSuiteMenuName.
|
|
||||||
\'Session.Load\ '. escape(sessionfile, '.') . '<tab>:SessionLoad'.
|
|
||||||
\' :SessionLoad ' . sessionfile . '<CR>'
|
|
||||||
" echom 'Command:' . cmd . ':'
|
|
||||||
exec cmd
|
|
||||||
endfor
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function s:RedrawMenu()
|
function s:RedrawMenu()
|
||||||
" Project
|
|
||||||
call s:RedrawProjectMenu()
|
|
||||||
" Session
|
|
||||||
call s:RedrawSessionMenu()
|
|
||||||
" Compile
|
" Compile
|
||||||
exec 'anoremenu '.s:VimSuiteMenuLocation.'.30 '.s:VimSuiteMenuName.
|
exec 'anoremenu '.s:VimSuiteMenuLocation.'.30 '.s:VimSuiteMenuName.
|
||||||
\'&Compile.&Build<tab>:Make'.
|
\'&Compile.&Build<tab>:Make'.
|
||||||
@ -627,6 +183,26 @@ func GitGrep(...)
|
|||||||
endfun
|
endfun
|
||||||
command -nargs=? GitGrep call GitGrep(<f-args>)
|
command -nargs=? GitGrep call GitGrep(<f-args>)
|
||||||
|
|
||||||
|
" Remove all buffers which are not found by findfile()
|
||||||
|
" ----------------------------------------------------
|
||||||
|
command BuffersCleanup call s:BuffersCleanup()
|
||||||
|
function s:BuffersCleanup()
|
||||||
|
let buffers = getbufinfo()
|
||||||
|
for buffer in buffers
|
||||||
|
if buffer['listed']
|
||||||
|
let path = fnamemodify(buffer['name'], ':p')
|
||||||
|
let name = fnamemodify(path, ':t')
|
||||||
|
let found = fnamemodify(findfile(name), ':p')
|
||||||
|
if found != path && buffer['listed']
|
||||||
|
echo 'delete buffer '.path
|
||||||
|
execute 'bdelete ' buffer['bufnr']
|
||||||
|
else
|
||||||
|
echo 'keep buffer '.path
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
endfunction
|
||||||
|
|
||||||
" Formatting Functions
|
" Formatting Functions
|
||||||
" --------------------
|
" --------------------
|
||||||
|
|
||||||
@ -896,32 +472,6 @@ function FindUglyC()
|
|||||||
execute '/' . UglyCstring
|
execute '/' . UglyCstring
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" ------------
|
|
||||||
" diff options
|
|
||||||
" ------------
|
|
||||||
set diffopt=filler,vertical
|
|
||||||
|
|
||||||
|
|
||||||
" turn diff off
|
|
||||||
command DiffClose call DiffClose()
|
|
||||||
function DiffClose()
|
|
||||||
diffoff!
|
|
||||||
:quit
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" options for DirDiff
|
|
||||||
let g:DirDiffCommand = expand($VIMRUNTIME . '/diff')
|
|
||||||
let g:DirDiffExcludes = '*.log,*.pyc,.svn,.git*,.asc,_ccmwaid.inf,.static_wa,out,Build,build,tags,cscope.out'
|
|
||||||
"let g:DirDiffDynamicDiffText = 1
|
|
||||||
|
|
||||||
" settings for diff mode
|
|
||||||
if &diff
|
|
||||||
" turn off csv ftplugin in diff mode
|
|
||||||
au! filetypedetect * *.csv,*.dat,*.tsv,*.tab
|
|
||||||
endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
" options for Vimball
|
" options for Vimball
|
||||||
let g:vimball_home = expand(g:vimsuite . '/vimfiles')
|
let g:vimball_home = expand(g:vimsuite . '/vimfiles')
|
||||||
|
|
||||||
|
@ -114,13 +114,34 @@ set listchars+=precedes:
|
|||||||
" special characters for keywords
|
" special characters for keywords
|
||||||
" set iskeyword+=
|
" set iskeyword+=
|
||||||
|
|
||||||
" horizontal scrollbar in diff-mode
|
" ------------
|
||||||
|
" diff options
|
||||||
|
" ------------
|
||||||
if &diff
|
if &diff
|
||||||
set guioptions+=b
|
set guioptions+=b
|
||||||
|
" turn off csv ftplugin in diff mode
|
||||||
|
au! filetypedetect * *.csv,*.dat,*.tsv,*.tab
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
" horizontal scrollbar in diff-mode
|
||||||
|
set diffopt=filler,vertical
|
||||||
" don't switch on DiffChar by default
|
" don't switch on DiffChar by default
|
||||||
let g:DiffExpr = ''
|
let g:DiffExpr = ''
|
||||||
|
|
||||||
|
" turn diff off
|
||||||
|
command DiffClose call DiffClose()
|
||||||
|
function DiffClose()
|
||||||
|
diffoff!
|
||||||
|
:quit
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" options for DirDiff
|
||||||
|
let g:DirDiffCommand = expand($VIMRUNTIME . '/diff')
|
||||||
|
let g:DirDiffExcludes = '*.log,*.pyc,.svn,.git*,.asc,_ccmwaid.inf,.static_wa,out,Build,build,tags,cscope.out'
|
||||||
|
"let g:DirDiffDynamicDiffText = 1
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
" ------
|
" ------
|
||||||
" Moving
|
" Moving
|
||||||
" ------
|
" ------
|
||||||
@ -250,6 +271,11 @@ let g:DoxygenToolkit_authorName = "Stefan Liebl"
|
|||||||
" Add sa to Dox if you want
|
" Add sa to Dox if you want
|
||||||
"let g:DoxygenToolkit_dox_sa = "yes"
|
"let g:DoxygenToolkit_dox_sa = "yes"
|
||||||
|
|
||||||
|
" -----
|
||||||
|
" netrw
|
||||||
|
" -----
|
||||||
|
"let g:netrw_keepdir = 0
|
||||||
|
|
||||||
" ---------
|
" ---------
|
||||||
" T-Comment
|
" T-Comment
|
||||||
" ---------
|
" ---------
|
||||||
@ -279,6 +305,7 @@ packadd linediff
|
|||||||
packadd merginal
|
packadd merginal
|
||||||
packadd pyclewn
|
packadd pyclewn
|
||||||
packadd rtags
|
packadd rtags
|
||||||
|
packadd sessionman
|
||||||
packadd SrchRplcHiGrp
|
packadd SrchRplcHiGrp
|
||||||
packadd tagbar
|
packadd tagbar
|
||||||
packadd tcomment
|
packadd tcomment
|
||||||
|
Loading…
x
Reference in New Issue
Block a user