From 96e10ed1017754dd074fe11f533e5069a770b3c1 Mon Sep 17 00:00:00 2001 From: Amir Salihefendic Date: Fri, 23 Aug 2019 10:02:26 +0200 Subject: [PATCH] Added vim-lastplace --- sources_non_forked/vim-lastplace/.gitignore | 1 + sources_non_forked/vim-lastplace/LICENSE | 22 ++++ sources_non_forked/vim-lastplace/README.md | 105 ++++++++++++++++++ .../vim-lastplace/doc/vim-lastplace.txt | 36 ++++++ .../vim-lastplace/plugin/vim-lastplace.vim | 80 +++++++++++++ 5 files changed, 244 insertions(+) create mode 100644 sources_non_forked/vim-lastplace/.gitignore create mode 100644 sources_non_forked/vim-lastplace/LICENSE create mode 100644 sources_non_forked/vim-lastplace/README.md create mode 100644 sources_non_forked/vim-lastplace/doc/vim-lastplace.txt create mode 100644 sources_non_forked/vim-lastplace/plugin/vim-lastplace.vim diff --git a/sources_non_forked/vim-lastplace/.gitignore b/sources_non_forked/vim-lastplace/.gitignore new file mode 100644 index 00000000..926ccaaf --- /dev/null +++ b/sources_non_forked/vim-lastplace/.gitignore @@ -0,0 +1 @@ +doc/tags diff --git a/sources_non_forked/vim-lastplace/LICENSE b/sources_non_forked/vim-lastplace/LICENSE new file mode 100644 index 00000000..9717040c --- /dev/null +++ b/sources_non_forked/vim-lastplace/LICENSE @@ -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. + diff --git a/sources_non_forked/vim-lastplace/README.md b/sources_non_forked/vim-lastplace/README.md new file mode 100644 index 00000000..507b215c --- /dev/null +++ b/sources_non_forked/vim-lastplace/README.md @@ -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) diff --git a/sources_non_forked/vim-lastplace/doc/vim-lastplace.txt b/sources_non_forked/vim-lastplace/doc/vim-lastplace.txt new file mode 100644 index 00000000..3105c27c --- /dev/null +++ b/sources_non_forked/vim-lastplace/doc/vim-lastplace.txt @@ -0,0 +1,36 @@ +*vim-lastplace* Intelligently reopen files where you left off. + +Author: Gregory L. Dietsche +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: diff --git a/sources_non_forked/vim-lastplace/plugin/vim-lastplace.vim b/sources_non_forked/vim-lastplace/plugin/vim-lastplace.vim new file mode 100644 index 00000000..8b2478cb --- /dev/null +++ b/sources_non_forked/vim-lastplace/plugin/vim-lastplace.vim @@ -0,0 +1,80 @@ +" ============================================================================ +" File: vim-lastplace.vim +" Description: Reopen files where you left off. Configurable. +" Author: Gregory L. Dietsche +" 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 so the user has a + "clue that they are near the end of the file. + execute "normal! \G'\"\" + 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