Comments (6)
I can not reproduce this, can you be more specific in what situation this happens (what is the action you undo?). I can not see how the index can be out of range, since this line where the error happens is only executed if the total number of lines has not changed (anyfold_ind_actual
is a list of size number of lines).
from vim-anyfold.
Sorry about the lack of instructions to reproduce the issue. 😰 Try this:
- Start Vim.
- Run
:setfiletype mail
- Insert the word "hello" by typing
ihello<ESC>
- Open a new line and insert "world" by typing
oworld<ESC>
- Trigger the undo mechanism by typing
u
- Observe the error message.
from vim-anyfold.
Thanks! But I don't get an error message. In fact, when I undo, the line that triggers the error message is not even executed (it should not be executed if the number of lines has changed).
Could you try the following to narrow down the bug:
in autoload/anyfold.vim of the vim-anyfold directory, put a statement that prints delta_lines
, this is the number of lines that have been added / removed:
diff --git a/autoload/anyfold.vim b/autoload/anyfold.vim
index e293498..a5bac91 100644
--- a/autoload/anyfold.vim
+++ b/autoload/anyfold.vim
@@ -369,6 +369,7 @@ function! s:ReloadFolds(lnum) abort
let delta_lines = line('$') - len(b:anyfold_ind_actual)
+ echom delta_lines
if delta_lines == 0
let indents_same = 1
let curr_line = changed[0]
Then run the example you specified above. Afterwards get the printed numbers by running :messages
. What numbers do you see (ignoring all messages that are not a number)? I get 0, 1, -1, as expected.
from vim-anyfold.
I could reproduce the issue with a similar example:
- Start Vim
- type
ihello<ESC>
- yank and paste hello to end of line by typing
yiw$p
- Trigger the undo mechanism by typing
u
This must be a bug of vim: when you now try to jump to last changed character using ']
, you get the error message
E19: Mark has invalid line number
vim-anyfold is relying on '[
& ']
to get the first and last line of the changed text.
I'll implement a workaround that checks that ']
does not exceed the last line.
from vim-anyfold.
I committed a workaround that solves this problem for vim-anyfold and I filed an issue vim/vim#1281.
from vim-anyfold.
from vim-anyfold.
Related Issues (20)
- What's the difference to foldmethod=indent HOT 1
- Unexpected folding and noticeable lag when paired with vim-multiple-cursors
- how to fold all and unfold all HOT 2
- help conflict : need fixing help tag; that change to plugin-prefix using
- customization of folds HOT 1
- Does not seem to work with yaml HOT 1
- How to fold/unfold all methods in an opened file? HOT 2
- How to leave a space at the bottom of each fold
- doesn't work with vim-plug HOT 10
- error after making modifications or otherwise leaving insert mode HOT 6
- GitGutter Preview throws error in neovim when vim-anyfold is used HOT 1
- Respect foldnestmax HOT 1
- Conflict with gitgutter's preview command HOT 1
- Question re: brace terminators (C/C++) HOT 2
- [feature] allow user to customize hotkey
- [feature] add augroup HOT 4
- [feature] add augroup HOT 1
- Allow for Markdown-style (and/or other style) of Headers
- Cursor jumps to top of class after folding
- Avoid adding blank lines at end of fold
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from vim-anyfold.