aaa bbb
when you yank 2 lines from the top and press p at line bbb it should be. aaa bbb aaa bbb but instead it is aaa bbbaaa bbb It should paste from new line but it didn't
I really like to use geany because is fast, but currently vim mode is very broken even with the latest 1.37.1 I don't like to use the mouse/keyboard since I learned to use vim and is so efficient with the simple editing functions.
A lot of the vim mode is missing. for instance, delete line number doesn't work.
On behalf of the overly modest creator of the vimode plugin let me remind everyone:
"Vimode is a Vim-mode plugin for Geany written by a guy who does not use Vim. Expect problems unexpected by a Vim user and, please, report them.".
A lot of the vim mode is missing. for instance, delete line number doesn't work.
Given the note above, probably best if you explained what you expect to happen when, not just list things. And check known issues [here](https://plugins.geany.org/vimode.html).
And given that neither Geany nor Scintilla is Vim how well some Vim specifics will work is unknown.
@elextr we are aware vim mode is create by a non-vim user. I did report the bugs. I am just reporting there are too many vim broken functions to be usable.
@howdev I am making the point that its unhelpful to just say "there are too many vim broken functions to be usable". Thats just putting down the guy who spent his own time to implement it as far as he has, and who acknowledges it has erorrs and is incomplet. He has made his efforts available for people to use and improve, not for them to criticise its acknowledged shortcomings. Remember he gets nothing from it as he isn't a Vim user.
Bug reports should not be accompanied by general negative criticism, its better if you help to improve it by just describing how missing functionality is supposed to work and help to implement it. The plugins project is open source, anyone can propose a pull request to add missing features.
Users who know and use Vim are more likely to know how Vim features are expected to work and which ones are important to them, and will actually gain by improving the plugin.
why criticised the bug reporter of reporting the state of the plugin? Reporting the state of the plugin is not criticise. Yes the point of Open Source is you expect many to use it, so that they can report the bugs. But if it is too broken how do you use it? Are you then, claiming we are and should use an Alpha part of the software? Just a reminder, I did report what is not working as far as I found. People who report bugs are just as important, they are part of the testing team are they not?
I got a curious question though. Is good for the person to write an vim mode. For him to write the vim binding, he must have tried the vim editing functions, because you can't write something you don't know. If he tried the functions, then why some of the function not working properly.
For him to write the vim binding, he must have tried the vim editing functions, because you can't write something you don't know.
Without putting words in the developers mouth, I would note that there is a difference between reading the docs, or trying some functions and being an expert in all the functionality of an editor.
If he tried the functions, then why some of the function not working properly.
Because being only a single developer who doesn't use Vim and developed the plugin for interest there is no reason for him to implement everything, and its his time so he can use it as he sees fit. As he is not an expert some things he may not know about, some he knows about and has listed as unimplemented, and some as possibly unimplementable in Geany.
There have been a number of requests over the years for Geany to work like Vim, and while most of us say "over my dead body" the plugin developer decided to try and see how hard it would be. As he said in the [webpage](https://plugins.geany.org/vimode.html) for the plugin, "After I started writing the plugin, I soon realized that in fact, I am writing a new editor", so a lot of work for a single person who doesn't use Vim and not surprising its incomplete.
@howdev as I said there have been a number of queries about Geany "working like Vim", so I have a question for you. I have always wondered what is it about Geany that makes Vim users want to make Geany work like Vim instead of just using Vim itself?
@elextr Vim is just so much more accurate and efficient than switching between mouse and keyboard. I just don't know why the programmers still use mouse. To change a word for instance, just type cw in vim. With the mouse, you move your hand to mouse, move the pointer, double click on the word, back to the keyboard and type. Vim is just improved Vi. It still runs in a terminal. It is good for editing single files. I have programmed Python just using Vim. It becomes difficult when you need helpers like cold folding, browsing folders, symbol view, auto-completion, saving sessions or work spaces automatically. There are several popular GUI editors already have Vim bindings. Those editor are written in Java, and Electron. There are all slow, huge size and huge memory compare to Geany for the same functions. That is why Vim users like to have coding features of native binary of Geany and editing power of Vi.
Well most of Geany can be controlled from the keyboard without the mouse, the argument that you "have" to use the mouse is false, but because the UI paradigm (not modal) is different to Vim it will never be the same keyboard shortcuts as Vim uses. So the efficiency is available, but it needs re-educating the muscle memory to Vim, but non-Vimists find it more common and natural.
As I said above, if Vim users want a Vim UI then they need to step up and work on it as somebody did for the other editors/IDEs you mentioned (and I note Vscode/vim has 1000+ open issues), there is nobody else to do it, and as the originator of this plugin said on his webpage, its effectively making a totally new editor.
Geany is an all volunteer project so if nobody else in the Geany project is interested in doing the work for Vim users they need to do it themselves. Or of course perhaps adding the IDE features to Vim is possible.
may be you don't use Vi, Geany keybindings are not editing. You try to delete words up to a unique character in the line, you can't do it in Geany or any ordinary editor. In Vi use dt and the character, is that simple. So many example Vi is superior. I see experienced programmers still use the mouse. They could learn something as hard as programming but don't want to try Vi I think mostly Vim users are not programmers. Vi is for Unix terminal, so more likely they good at administration using terminal. It looks like is not possible to add IDE features to Vim, nobody ever try it. Vim runs in a terminal and even Gvim is still a terminal with only the UI menu
@howdev its interesting to get differing perspectives, all I would note is that neither is "right", they are just different, but we have sidetracked this issue enough.
Back to your OP, does the bbb line have a line-end on it? I suspect not, so the paste at the start of line aaa does not separate the lines. If the Vim `p` command is to paste whatever is in the buffer as lines, not as text, then the vimode plugin is going to have to modify the clipboard if its missing a line end because the normal paste in Geany is to paste text.
@elextr sidetracked it is, but is good to get some understanding.
yes it has LF line ending, but a line ending is missing from the front so it is not pasting on new line. aaaLF bbbaaaLF bbb
see, even the last line bbb should have LF but it didn't
If you didn't type a LF it won't be there, thats why I said the plugin will have to adjust.
I didn't type the LF, Geany has view line-endings from the menu
Yes, so there is no LF in the text thats copied to the clipboard, "yanked" in vim parlance, so there is no LF pasted. If Vim semantics need a LF the plugin must add it.
in Vim if yank line means cannot paste after a line, must paste into a new line. If you don't want to paste into new line, you don't yank the line, instead you yank to end of line using y$
So the required behaviour is defined, so now "somebody" has to make a PR to fix the plugin, its not gonna fix itself :)
Bug reports should not be accompanied by general negative criticism, its better if you help to improve it by just describing how missing functionality is supposed to work and help to implement it. The plugins project is open source, anyone can propose a pull request to add missing features.
@elextr I think the problem was well described in the original description and I'm definitely interested in what's not working and what vim functionality is missing (whether and when I find time to fix those is another thing). Bug reports are always kind of negative as they are an annoyance to the user (probably nobody will report bugs like "Hurray, I found a bug in Geany, could you add a few more bugs like this one please?").
Anyway, back to the problem: @howdev I assume this only affects lines at the very end of the file where EOL is missing, right? If you yank the lines somewhere in the middle of the document, it should work correctly. I'll have a look at the case with yanked lines at the end of the file.
A lot of the vim mode is missing. for instance, delete line number doesn't work.
Do you mean e.g. `:10d`? I think this could be added easily. Is there anything else you use commonly and what is missing or not working correctly?
"Hurray, I found a bug in Geany, could you add a few more bugs like this one please?").
True, but "currently vim mode is very broken" and "I am just reporting there are too many vim broken functions to be usable." and implications that character driven mode not working like vim means its not usable, are not helpful comments about a tool with a completely different UI paradigm.
If there were more things broken in the plugin then describing them like the initial part of report is helpful, but generally being negative is not. Even if you don't personally mind it is not something that is acceptable in Geany in general and in the Geany-plugins repo especially, because its shared by many contributors and some people might mind, and observers seeing negativity unchallenged may think its ok to repeat such behaviour.
But even the initial report was missing details that needed to be further teased out to make it clear how vim worked differently from Geany, after all if such detail had been completely obvious from minimal vim use or its manual you would have done it. :smile:
This was back in February, now you are available again I won't need to ask for PRs any more.
True, but "currently vim mode is very broken" and "I am just reporting there are too many vim broken functions to be usable."
That's actually quite a useful feedback because as a non-vim user , I am curious if the functionality I implemented is sufficient for a real vim user or if the plugin is just a toy that is not usable. Now, of course, the second step would be getting more details about what functionality is missing or not working correctly.
And yeah, there are sometimes bug reports that are written in an aggressive tone or are "demanding" a fix and the reporters are hard to deal with but I didn't find anything wrong about this particular bug report. The yank problem was described well in the original post and "I really like to use geany because is fast, but currently vim mode is very broken even with the latest 1.37.1" may well be true for a vim user.
It's alwyas a matter of interpretation what the other person wanted to say but I don't want to discourage people from sending bug reports. And if something is broken, everyone should be allowed to say so. Broken things can get fixed, but first, one has to know they are broken.
That's actually quite a useful feedback because as a non-vim user
Not really, what would be useful would be for a vimist to list the missing/erroneous functionality to make a minimal usable vim like UI (hint hint @howdev :grin:). Then you can determine the scope of the problem instead of chipping away at an edge case at a time and it remaining unusable. We all know you love a challenge, (mentioning no ctags by name) so knowing the size of the job would be helpful.
Knowing you have to re-implement every piece of editor.c [minor exaggeration for effect] due to edge case semantic differences in how things work is important. Although its (literally) many decades since I used vi/vim in anger, from my memories I have my doubts that it will implement as a simple UI wrapper around Scintilla and existing Geany functionality, so I would be interested to see what is required. And of course Vim has changed significantly in that period, hence needing to tease out details as above to reach the [conclusion](https://github.com/geany/geany-plugins/issues/1060#issuecomment-773775126) of what semantics need to be different to those of existing Geany functionality.
And if something is broken, everyone should be allowed to say so.
So long as they say _what_ is broken, and I continued to work with the OP to tease out the actual difference between vim and vim plugin in detail, and not simply in negative terms. I don't see it as discouraging reports to steer them away from simple negative statements to providing useful information.
elextr, listing functions. is developers job. you are writing something you don't know and expect no complaints? is that negative? That is not the purpose of Open Source. The purpose is freedom to modify not force bug reporters to do certain things. Missing functions are not bugs. Bugs are broken functions, functions that are already implemented. Vim plugin is supposed to do vim job, and if it doesn't, it is partly done like alpha stage. What comes first is, it has to be working for bug reporting and improvement. Feel free to continue or not continue, as it seems not many are interested in the vim geany. May not be a must to the plugin
"Open source" is about providing software users with the information they need to maintain and improve the software they run, either for their own purposes, or preferably by contributing improvements for everyone's benefit.
It is definitely not about "devs" having a "job" of defining and providing software for free, especially in a totally voluntary project like Geany where all the major contributors do it unpaid in their own time. They need helpful contribution, not complaints, not blanket statements like "too broken to be useful", no matter what stage of the development cycle the software is in. (In fact they probably need the helpful input even more so in the alpha stages).
There are many resources on the internet on how to make a useful bug report eg [first google hit](https://www.softwaretestinghelp.com/how-to-write-good-bug-report/) or request for an [unimplemented feature](https://ddbeck.com/bug-reports-that-get-results/).
Of course bug reporters/feature requesters are not forced to be helpful like that, but they get the benefit of more likely and rapid fixes if they help by contributing the fix or improvement, or if unable to do that themselves, by providing the information, as described in those resources, that is needed for someone else to fix/improve the software. That way it is more likely to happen because the contributor doing the change doesn't have to use their own time to try to work out for themselves what the bug is, or the features that are missing are, and exactly how they should work.
@howdev you reported a bug, which we narrowed down to what the fix is, and no doubt @techee will fix that, but I don't understand why you did that if the plugin is not useful as it is, and you are not even willing to list what you think is missing that would make it useful. If you think it will be useful to you when it has more features, then it would help you to get it faster if you helped.
Well, while I found the original report fine, the latest comment isn't quite fine with me...
you are writing something you don't know and expect no complaints?
Not sure if this is meant against me but I wouldn't spend my time writing a plugin if I didn't learn what the vim functions do - I'm not a complete idiot.
Missing functions are not bugs. Bugs are broken functions, functions that are already implemented. Vim plugin is supposed to do vim job, and if it doesn't, it is partly done like alpha stage.
Then, please, tell us what is missing or what doesn't work. You mentioned the yank problem, and yes, this is a bug that affects lines at the end of the file. You mentioned "delete line number" but you didn't explain what exactly you meant by that. The plugin currently supports the following functions which I considered a sufficient subset of vim. It's always going to be a subset, but it can be extended if people report what is missing. But it requires some constructive attitude of the reporters.
``` ============================================================================== 1. Insert mode insert-index
tag char action in Insert mode ----------------------------------------------------------------------- i_CTRL-@ CTRL-@ insert previously inserted text and stop insert i_CTRL-A CTRL-A insert previously inserted text i_CTRL-C CTRL-C quit insert mode, without checking for abbreviation, unless 'insertmode' set. i_CTRL-D CTRL-D delete one shiftwidth of indent in the current line i_CTRL-E CTRL-E insert the character which is below the cursor i_<BS> <BS> delete character before the cursor i_CTRL-H CTRL-H same as <BS> i_<Tab> <Tab> insert a <Tab> character i_CTRL-I CTRL-I same as <Tab> i_<NL> <NL> same as <CR> i_CTRL-J CTRL-J same as <CR> i_<CR> <CR> begin new line i_CTRL-M CTRL-M same as <CR> i_CTRL-O CTRL-O execute a single command and return to insert mode i_CTRL-T CTRL-T insert one shiftwidth of indent in current line i_CTRL-W CTRL-W delete word before the cursor i_CTRL-Y CTRL-Y insert the character which is above the cursor i_<Esc> <Esc> end insert mode (unless 'insertmode' set) i_CTRL-[ CTRL-[ same as <Esc> i_<Del> <Del> delete character under the cursor
i_<Left> <Left> cursor one character left i_<S-Left> <S-Left> cursor one word left i_<C-Left> <C-Left> cursor one word left i_<Right> <Right> cursor one character right i_<S-Right> <S-Right> cursor one word right i_<C-Right> <C-Right> cursor one word right i_<Up> <Up> cursor one line up i_<S-Up> <S-Up> same as <PageUp> i_<Down> <Down> cursor one line down i_<S-Down> <S-Down> same as <PageDown> i_<Home> <Home> cursor to start of line i_<C-Home> <C-Home> cursor to start of file i_<End> <End> cursor past end of line i_<C-End> <C-End> cursor past end of file i_<PageUp> <PageUp> one screenful backward i_<PageDown> <PageDown> one screenful forward i_<Insert> <Insert> toggle Insert/Replace mode
============================================================================== 2. Normal mode normal-index
CHAR any non-blank character WORD a sequence of non-blank characters N a number entered before the command {motion} a cursor movement command Nmove the text that is moved over with a {motion} SECTION a section that possibly starts with '}' instead of '{'
note: 1 = cursor movement command; 2 = can be undone/redone
tag char note action in Normal mode ------------------------------------------------------------------------------ CTRL-B CTRL-B 1 scroll N screens Backwards CTRL-D CTRL-D scroll Down N lines (default: half a screen) CTRL-E CTRL-E scroll N lines upwards (N lines Extra) CTRL-F CTRL-F 1 scroll N screens Forward <BS> <BS> 1 same as "h" CTRL-H CTRL-H 1 same as "h" <NL> <NL> 1 same as "j" CTRL-J CTRL-J 1 same as "j" <CR> <CR> 1 cursor to the first CHAR N lines lower CTRL-M CTRL-M 1 same as <CR> CTRL-N CTRL-N 1 same as "j" CTRL-P CTRL-P 1 same as "k" CTRL-R CTRL-R 2 redo changes which were undone with 'u' CTRL-U CTRL-U scroll N lines Upwards (default: half a screen) CTRL-Y CTRL-Y scroll N lines downwards
<Space> <Space> 1 same as "l" # # 1 search backward for the Nth occurrence of the ident under the cursor $ $ 1 cursor to the end of Nth next line % % 1 find the next (curly/square) bracket on this line and go to its match, or go to matching comment bracket, or go to matching preprocessor directive. N% {count}% 1 go to N percentage in the file & & 2 repeat last :s star * 1 search forward for the Nth occurrence of the ident under the cursor + + 1 same as <CR> , , 1 repeat latest f, t, F or T in opposite direction N times - - 1 cursor to the first CHAR N lines higher . . 2 repeat last change with count replaced with N / /{pattern}<CR> 1 search forward for the Nth occurrence of {pattern} /<CR> /<CR> 1 search forward for {pattern} of last search count 0 1 cursor to the first char of the line count 1 prepend to command to give a count count 2 " count 3 " count 4 " count 5 " count 6 " count 7 " count 8 " count 9 " : : 1 start entering an Ex command ; ; 1 repeat latest f, t, F or T N times < <{motion} 2 shift Nmove lines one 'shiftwidth' leftwards << << 2 shift N lines one 'shiftwidth' leftwards > >{motion} 2 shift Nmove lines one 'shiftwidth' rightwards >> >> 2 shift N lines one 'shiftwidth' rightwards ? ?{pattern}<CR> 1 search backward for the Nth previous occurrence of {pattern} ?<CR> ?<CR> 1 search backward for {pattern} of last search A A 2 append text after the end of the line N times B B 1 cursor N WORDS backward C ["x]C 2 change from the cursor position to the end of the line, and N-1 more lines [into register x]; synonym for "c$" D ["x]D 2 delete the characters under the cursor until the end of the line and N-1 more lines [into register x]; synonym for "d$" E E 1 cursor forward to the end of WORD N F F{char} 1 cursor to the Nth occurrence of {char} to the left G G 1 cursor to line N, default last line H H 1 cursor to line N from top of screen I I 2 insert text before the first CHAR on the line N times J J 2 Join N lines; default is 2 L L 1 cursor to line N from bottom of screen M M 1 cursor to middle line of screen N N 1 repeat the latest '/' or '?' N times in opposite direction O O 2 begin a new line above the cursor and insert text, repeat N times P ["x]P 2 put the text [from register x] before the cursor N times R R 2 enter replace mode: overtype existing characters, repeat the entered text N-1 times S ["x]S 2 delete N lines [into register x] and start insert; synonym for "cc". T T{char} 1 cursor till after Nth occurrence of {char} to the left V V start linewise Visual mode W W 1 cursor N WORDS forward X ["x]X 2 delete N characters before the cursor [into register x] Y ["x]Y yank N lines [into register x]; synonym for "yy" ZZ ZZ store current file if modified, and exit ZQ ZQ exit current file always ^ ^ 1 cursor to the first CHAR of the line _ _ 1 cursor to the first CHAR N - 1 lines lower a a 2 append text after the cursor N times b b 1 cursor N words backward c ["x]c{motion} 2 delete Nmove text [into register x] and start insert cc ["x]cc 2 delete N lines [into register x] and start insert d ["x]d{motion} 2 delete Nmove text [into register x] dd ["x]dd 2 delete N lines [into register x] e e 1 cursor forward to the end of word N f f{char} 1 cursor to Nth occurrence of {char} to the right g g{char} extended commands, see g below h h 1 cursor N chars to the left i i 2 insert text before the cursor N times j j 1 cursor N lines downward k k 1 cursor N lines upward l l 1 cursor N chars to the right n n 1 repeat the latest '/' or '?' N times o o 2 begin a new line below the cursor and insert text, repeat N times p ["x]p 2 put the text [from register x] after the cursor N times r r{char} 2 replace N chars with {char} s ["x]s 2 (substitute) delete N characters [into register x] and start insert t t{char} 1 cursor till before Nth occurrence of {char} to the right u u 2 undo changes v v start characterwise Visual mode w w 1 cursor N words forward x ["x]x 2 delete N characters under and after the cursor [into register x] y ["x]y{motion} yank Nmove text [into register x] yy ["x]yy yank N lines [into register x] bar | 1 cursor to column N ~ ~ 2 'tildeop' off: switch case of N characters under cursor and move the cursor N characters to the right <C-End> <C-End> 1 same as "G" <C-Home> <C-Home> 1 same as "gg" <C-Left> <C-Left> 1 same as "b" <C-Right> <C-Right> 1 same as "w" <Del> ["x]<Del> 2 same as "x" <Down> <Down> 1 same as "j" <End> <End> 1 same as "$" <Home> <Home> 1 same as "0" <Insert> <Insert> 2 same as "i" <Left> <Left> 1 same as "h" <PageDown> <PageDown> same as CTRL-F <PageUp> <PageUp> same as CTRL-B <Right> <Right> 1 same as "l" <S-Down> <S-Down> 1 same as CTRL-F <S-Left> <S-Left> 1 same as "b" <S-Right> <S-Right> 1 same as "w" <S-Up> <S-Up> 1 same as CTRL-B <Up> <Up> 1 same as "k"
============================================================================== 2.1 Text objects objects
These can be used after an operator or in Visual mode to select an object.
tag command action in op-pending and Visual mode ------------------------------------------------------------------------------ v_aquote a" double quoted string v_a' a' single quoted string v_a( a( same as ab v_a) a) same as ab v_a< a< "a <>" from '<' to the matching '>' v_a> a> same as a< v_aB aB "a Block" from "[{" to "]}" (with brackets) v_a[ a[ "a []" from '[' to the matching ']' v_a] a] same as a[ v_a` a` string in backticks v_ab ab "a block" from "[(" to "])" (with braces) v_a{ a{ same as aB v_a} a} same as aB v_iquote i" double quoted string without the quotes v_i' i' single quoted string without the quotes v_i( i( same as ib v_i) i) same as ib v_i< i< "inner <>" from '<' to the matching '>' v_i> i> same as i< v_iB iB "inner Block" from "[{" and "]}" v_i[ i[ "inner []" from '[' to the matching ']' v_i] i] same as i[ v_i` i` string in backticks without the backticks v_ib ib "inner block" from "[(" to "])" v_i{ i{ same as iB v_i} i} same as iB
============================================================================== 2.4 Commands starting with 'g' g
tag char note action in Normal mode ------------------------------------------------------------------------------ gE gE 1 go backwards to the end of the previous WORD gU gU{motion} 2 make Nmove text uppercase ge ge 1 go backwards to the end of the previous word gg gg 1 cursor to line N, default first line gu gu{motion} 2 make Nmove text lowercase g~ g~{motion} 2 swap case for Nmove text
============================================================================== 2.5 Commands starting with 'z' z
tag char note action in Normal mode ------------------------------------------------------------------------------ z<CR> z<CR> redraw, cursor line to top of window, cursor on first non-blank z+ z+ cursor on line N (default line below window), otherwise like "z<CR>" z- z- redraw, cursor line at bottom of window, cursor on first non-blank z. z. redraw, cursor line to center of window, cursor on first non-blank zb zb redraw, cursor line at bottom of window zt zt redraw, cursor line at top of window zz zz redraw, cursor line at center of window
============================================================================== 3. Visual mode visual-index
Most commands in Visual mode are the same as in Normal mode. The ones listed here are those that are different.
tag command note action in Visual mode ------------------------------------------------------------------------------ v_CTRL-C CTRL-C stop Visual mode v_: : start a command-line with the highlighted lines as a range v_< < 2 shift the highlighted lines one 'shiftwidth' left v_> > 2 shift the highlighted lines one 'shiftwidth' right v_C C 2 delete the highlighted lines and start insert v_D D 2 delete the highlighted lines v_J J 2 join the highlighted lines v_O O Move horizontally to other corner of area. v_R R 2 delete the highlighted lines and start insert v_S S 2 delete the highlighted lines and start insert v_U U 2 make highlighted area uppercase v_V V make Visual mode linewise or stop Visual mode v_X X 2 delete the highlighted lines v_Y Y yank the highlighted lines v_c c 2 delete highlighted area and start insert v_d d 2 delete highlighted area v_o o move cursor to other corner of area v_r r 2 delete highlighted area and start insert v_s s 2 delete highlighted area and start insert v_u u 2 make highlighted area lowercase v_v v make Visual mode characterwise or stop Visual mode v_x x 2 delete the highlighted area v_y y yank the highlighted area v_~ ~ 2 swap case for the highlighted area
============================================================================== 5. EX commands ex-cmd-index :index
This is a brief but complete listing of all the ":" commands, without mentioning any arguments. The optional part of the command name is inside []. The commands are sorted on the non-optional part of their name.
tag command action ------------------------------------------------------------------------------ :& :& repeat last ":substitute" :cquit :cq[uit] quit Vim with an error code :exit :exi[t] same as ":xit" :quit :q[uit] quit current window (when one window quit Vim) :quitall :quita[ll] quit Vim :qall :qa[ll] quit Vim :substitute :s[ubstitute] find and replace text :update :up[date] write buffer if modified :write :w[rite] write to a file :wall :wa[ll] write all (changed) buffers :wq :wq write to a file and quit window or Vim :wqall :wqa[ll] write all changed buffers and quit Vim :xit :x[it] write if buffer changed and quit window or Vim :xall :xa[ll] same as ":wqall" ```
while you understood the vim functions but you ask what "delete line number means" or yank paste should not be a bug if it is known how it is done. What is sufficient can't be known if you don't use the vim. All the editing function should work. If I were to write a program, I would test everything that I can list as functions and not merely implement the functions and let bug reporters do it. :xd or x,yd that is delete line number :ay or a,by that is yank line number I can't use the plugin now as it is. Bug reporters are not necessarily testers and cannot be assume as testers. They use for production and report the bugs that don't affect their normal usage. If they find the plugins state affects their work then they will not use it or report it. Therefore if you get a bug report you are already fortunate. Would you rather prefer people don't care?
while you understood the vim functions but you ask what "delete line number means" or yank paste should not be a bug if it is known how it is done.
No, I'm asking what _you_ mean by "delete line number" because you didn't explain it and "delete line number" is a bad description. What you want is not deleting a line number - you want deleting a line at certain line number. And if someone gives such vague descriptions, I just need to make sure that I understand what the person wants (and yes, I understood it correctly, you just didn't care to answer my question here https://github.com/geany/geany-plugins/issues/1060#issuecomment-898895363).
And you confuse me with @elextr - I didn't ask about the yank problem at all, the description was quite clear.
If I were to write a program, I would test everything that I can list as functions and not merely implement the functions and let bug reporters do it.
And what do you think I did? You think I didn't test it at all? I did all my best to test all I could but there are already something like 100 vim functions to test and lots of their combinations and corner cases (for instance, the yank problem only affects end of files and when you have Geany set up so that it inserts EOL at the end of file, you won't see that problem).
If I were to write a program...
Yes, that's the problem - you didn't spend any time writing the plugin, you just came here blaming the author who spent lots of hours writing the plugin in his spare time how lousy job he did and how you would do a much better job. To that, I can only give you one answer: show me (by looking at your profile, I can't see any projects you contributed to or any code you have written).
I can't use the plugin now as it is. Bug reporters are not necessarily testers and cannot be assume as testers. They use for production and report the bugs that don't affect their normal usage. If they find the plugins state affects their work then they will not use it or report it. Therefore if you get a bug report you are already fortunate. Would you rather prefer people don't care?
I absolutely want people to report bugs. Bug reports should describe what doesn't work correctly and what's missing and be technical and not contain the additional garbage you added. The only two useful things I got from you is the yank problem and missing `:d` which will probably be fixed in something like 10 lines of code. If that's all that's the reason why you "can't use the plugin", nice. But if there are more reasons, I'm just not a magician and can't read your thoughts so these things won't get fixed unless you describe them properly.
Closed #1060 via #1105.
github-comments@lists.geany.org