Tip 613 Printable Monobook Previous Next
created December 10, 2003 · complexity basic · author Adam Monsen · version 5.7
The starting.txt help file (:help starting.txt) tells you how to open the last edited file in csh. In bash, do it like so:
alias lvim='vim -c "normal '\''0"'
Comments
With this in vimrc, invoking Vim without arguments will open the last file (it will get the last file and position from .viminfo).
" Go to last file if invoked without arguments. autocmd VimEnter * nested if \ argc() == 0 && \ bufname("%") == "" && \ bufname("2" + 0) != "" | \ exe "normal! `0" | \ endif " From vimrc_example.vim distributed with Vim 7. " When editing a file, always jump to the last known cursor position. " Don't do it when the position is invalid or when inside an event handler " (happens when dropping a file on gvim). autocmd BufReadPost * \ if line("'\"") > 1 && line("'\"") <= line("$") | \ exe "normal! g`\"" | \ endif
TO DO
In the above, bufname("2" + 0) is a confused way of saying bufname(2). But what has buffer 2 got to do with it?
These make sure all your tabs are restored (VIM 7.x and higher).
" Open last active file(s) if VIM is invoked without arguments. autocmd VimLeave * nested let buffernr = bufnr("$") | \ let buflist = [] | \ while buffernr > 0 | \ if buflisted(buffernr) | \ let buflist += [ bufname(buffernr) ] | \ endif | \ let buffernr -= 1 | \ endwhile | \ if (!isdirectory($HOME . "/.vim")) | \ call mkdir($HOME . "/.vim") | \ endif | \ call writefile(reverse(buflist), $HOME . "/.vim/buflist.txt") autocmd VimEnter * nested if argc() == 0 && filereadable($HOME . "/.vim/buflist.txt") | \ for line in readfile($HOME . "/.vim/buflist.txt") | \ if filereadable(line) | \ execute "tabedit " . line | \ set bufhidden=delete | \ endif | \ endfor | \ tabclose 1 | \ endif
- Am I missing something? Why can't you just use :mksession? :help :mksession --Fritzophrenic 02:00, 6 April 2009 (UTC)