mirror of
https://github.com/amix/vimrc
synced 2024-12-11 20:52:28 +00:00
Added vim-lastplace
This commit is contained in:
parent
3aefdbd21a
commit
96e10ed101
5 changed files with 244 additions and 0 deletions
1
sources_non_forked/vim-lastplace/.gitignore
vendored
Normal file
1
sources_non_forked/vim-lastplace/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
doc/tags
|
22
sources_non_forked/vim-lastplace/LICENSE
Normal file
22
sources_non_forked/vim-lastplace/LICENSE
Normal file
|
@ -0,0 +1,22 @@
|
|||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2015 - 2017 Greg Dietsche
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
105
sources_non_forked/vim-lastplace/README.md
Normal file
105
sources_non_forked/vim-lastplace/README.md
Normal file
|
@ -0,0 +1,105 @@
|
|||
# vim-lastplace v3.1.1
|
||||
|
||||
Intelligently reopen files at your last edit position. By default git,
|
||||
svn, and mercurial commit messages are ignored because you
|
||||
probably want to type a new message and not re-edit the previous
|
||||
one.
|
||||
|
||||
## Advantages
|
||||
Advantages over the snippets that can be found around the net include:
|
||||
* Commit messages automatically start at the beginning of a file. This is important because many version control systems re-use the same file for commit message editing.
|
||||
* Maximizes Available Context
|
||||
- Center the cursor vertically after restoring last edit position.
|
||||
- Keep as much of the file on screen as possible when last edit position is at the end of the file.
|
||||
* Opens folds if the last edit position is inside a fold.
|
||||
* Works properly with new file templates and scripts that jump to a specific line in them.
|
||||
|
||||
## Installation
|
||||
You can use [pathogen.vim](https://github.com/tpope/vim-pathogen) or other plugin managers to install and use vim-lastplace.
|
||||
|
||||
cd ~/.vim/bundle
|
||||
git clone git://github.com/farmergreg/vim-lastplace.git
|
||||
|
||||
Depending on which Vim package you're using, Vim may be preconfigured with
|
||||
last-edit-position logic that doesn't work quite as well as vim-lastplace.
|
||||
If so, you may want to disable that in favor of vim-lastplace. For example,
|
||||
for Vim as packaged with Git for Windows, you can edit
|
||||
`C:\Program Files\Git\etc\vimrc` and comment out the "Remember positions in files"
|
||||
`autocmd BufReadPost *` block.
|
||||
|
||||
## Configuration
|
||||
You can configure what file types to ignore by setting
|
||||
g:lastplace_ignore in your vimrc. This is a comma separated list.
|
||||
By default it is set to:
|
||||
|
||||
let g:lastplace_ignore = "gitcommit,gitrebase,svn,hgcommit"
|
||||
|
||||
You can configure buffer types to ignore by setting
|
||||
g:lastplace_ignore_buftype in your vimrc. This is a comma separated list.
|
||||
By default it is set to:
|
||||
|
||||
let g:lastplace_ignore_buftype = "quickfix,nofile,help"
|
||||
|
||||
Folds are automatically opened when jumping to the last edit position. If you
|
||||
do not like this behavior you can disable it by putting this in your vimrc:
|
||||
|
||||
let g:lastplace_open_folds = 0
|
||||
|
||||
## Miscellaneous
|
||||
This plugin is complete and stable. Please do not be afraid to try it even
|
||||
if there is very little recent activity in this repository. If you do find
|
||||
a bug, please submit a pull request that fixes whatever problem you're having.
|
||||
|
||||
## Version History
|
||||
vim-lastplace uses [semver](http://semver.org/) to manage version numbers.
|
||||
|
||||
### 3.1.1
|
||||
- Add 'nofile' and 'help' to lastplace_ignore_buftype. (Issue [#14](https://github.com/farmergreg/vim-lastplace/issues/14))
|
||||
- Do not jump when a new file is created (Issue [#15](https://github.com/farmergreg/vim-lastplace/issues/15), [#16](https://github.com/farmergreg/vim-lastplace/issues/16))
|
||||
|
||||
### 3.1.0
|
||||
- Add g:lastplace_ignore_buftype setting.
|
||||
- Update github links from username dietsche to farmergreg.
|
||||
|
||||
### 3.0.4
|
||||
- Add g:lastplace_open_folds option.
|
||||
|
||||
### 3.0.3
|
||||
- Point release for Debian packaging. Changes all http links to https. No code changes.
|
||||
|
||||
### 3.0.2
|
||||
- A fix for files that are smaller than the current screen size (issue #8)
|
||||
|
||||
### 3.0.1
|
||||
- A fix for files with modelines.
|
||||
|
||||
### 3.0.0
|
||||
|
||||
- Open folds if the last edited area is inside a closed fold.
|
||||
|
||||
### 2.0.1
|
||||
|
||||
- Add gitrebase filetype to the ignore list.
|
||||
|
||||
### 2.0.0
|
||||
|
||||
- Center the screen when restoring the cursor position.
|
||||
- When at the end of a file, keep as much of it on screen as possible.
|
||||
|
||||
### 1.0.0
|
||||
|
||||
- Initial version.
|
||||
|
||||
## About
|
||||
|
||||
- Author : Gregory L. Dietsche
|
||||
- Web Page: https://www.gregd.org/
|
||||
|
||||
Get the latest version, submit pull requests, and file bug reports
|
||||
on GitHub:
|
||||
- https://github.com/farmergreg/vim-lastplace
|
||||
|
||||
If you like this plugin, please star and rate it on these sites:
|
||||
|
||||
- [GitHub](https://github.com/farmergreg/vim-lastplace)
|
||||
- [Vim.org](http://www.vim.org/scripts/script.php?script_id=5090)
|
36
sources_non_forked/vim-lastplace/doc/vim-lastplace.txt
Normal file
36
sources_non_forked/vim-lastplace/doc/vim-lastplace.txt
Normal file
|
@ -0,0 +1,36 @@
|
|||
*vim-lastplace* Intelligently reopen files where you left off.
|
||||
|
||||
Author: Gregory L. Dietsche <https://www.gregd.org/>
|
||||
License: MIT
|
||||
Version: 3.1.1
|
||||
|
||||
INTRODUCTION *vim-lastplace-introduction*
|
||||
|
||||
Intelligently reopen files where you left off. By default git,
|
||||
svn, and mercurial commit messages are ignored because you
|
||||
probably want to type a new message and not re-edit the previous
|
||||
one.
|
||||
|
||||
You can configure what file types to ignore by setting
|
||||
g:lastplace_ignore in your vimrc. This is a comma separated list.
|
||||
By default it is set to:
|
||||
|
||||
let g:lastplace_ignore = "gitcommit,gitrebase,svn,hgcommit"
|
||||
|
||||
You can configure buffer types to ignore by setting
|
||||
g:lastplace_ignore_buftype in your vimrc. This is a comma separated list.
|
||||
By default it is set to:
|
||||
|
||||
let g:lastplace_ignore_buftype = "quickfix,nofile,help"
|
||||
|
||||
Folds are automatically opened when jumping to the last edit position. If you
|
||||
do not like this behavior you can disable it by putting this in your vimrc:
|
||||
|
||||
let g:lastplace_open_folds = 0
|
||||
|
||||
ABOUT *vim-lastplace-about*
|
||||
|
||||
Get the latest version and/or report a bug on GitHub:
|
||||
https://github.com/farmergreg/vim-lastplace
|
||||
|
||||
vim:tw=78:et:ft=help:norl:
|
80
sources_non_forked/vim-lastplace/plugin/vim-lastplace.vim
Normal file
80
sources_non_forked/vim-lastplace/plugin/vim-lastplace.vim
Normal file
|
@ -0,0 +1,80 @@
|
|||
" ============================================================================
|
||||
" File: vim-lastplace.vim
|
||||
" Description: Reopen files where you left off. Configurable.
|
||||
" Author: Gregory L. Dietsche <vim@gregd.org>
|
||||
" Licence: MIT
|
||||
" Website: https://www.gregd.org/
|
||||
" Version: 3.1.1
|
||||
" ============================================================================
|
||||
|
||||
if exists("b:loaded_lastplace_plugin") || &cp
|
||||
finish
|
||||
endif
|
||||
let b:loaded_lastplace_plugin = 1
|
||||
|
||||
scriptencoding utf-8
|
||||
|
||||
if !exists('g:lastplace_ignore')
|
||||
let g:lastplace_ignore = "gitcommit,gitrebase,svn,hgcommit"
|
||||
endif
|
||||
|
||||
if !exists('g:lastplace_open_folds')
|
||||
let g:lastplace_open_folds = 1
|
||||
endif
|
||||
|
||||
if !exists('g:lastplace_ignore_buftype')
|
||||
let g:lastplace_ignore_buftype = "quickfix,nofile,help"
|
||||
endif
|
||||
|
||||
fu! s:lastplace()
|
||||
if index(split(g:lastplace_ignore_buftype, ","), &buftype) != -1
|
||||
return
|
||||
endif
|
||||
|
||||
if index(split(g:lastplace_ignore, ","), &filetype) != -1
|
||||
return
|
||||
endif
|
||||
|
||||
try
|
||||
"if the file does not exist on disk (a new, unsaved file) then do nothing
|
||||
if empty(glob(@%))
|
||||
return
|
||||
endif
|
||||
catch
|
||||
return
|
||||
endtry
|
||||
|
||||
if line("'\"") > 0 && line("'\"") <= line("$")
|
||||
"if the last edit position is set and is less than the
|
||||
"number of lines in this buffer.
|
||||
|
||||
if line("w$") == line("$")
|
||||
"if the last line in the current buffer is
|
||||
"also the last line visible in this window
|
||||
execute "normal! g`\""
|
||||
|
||||
elseif line("$") - line("'\"") > ((line("w$") - line("w0")) / 2) - 1
|
||||
"if we're not at the bottom of the file, center the
|
||||
"cursor on the screen after we make the jump
|
||||
execute "normal! g`\"zz"
|
||||
|
||||
else
|
||||
"otherwise, show as much context as we can by jumping
|
||||
"to the end of the file and then to the mark. If we
|
||||
"pressed zz here, there would be blank lines at the
|
||||
"bottom of the screen. We intentionally leave the
|
||||
"last line blank by pressing <c-e> so the user has a
|
||||
"clue that they are near the end of the file.
|
||||
execute "normal! \G'\"\<c-e>"
|
||||
endif
|
||||
endif
|
||||
if foldclosed(".") != -1 && g:lastplace_open_folds
|
||||
"if we're in a fold, make the current line visible and recenter screen
|
||||
execute "normal! zvzz"
|
||||
endif
|
||||
endf
|
||||
|
||||
augroup lastplace_plugin
|
||||
autocmd!
|
||||
autocmd BufWinEnter * call s:lastplace()
|
||||
augroup END
|
Loading…
Reference in a new issue