emacs-evil / evil

The extensible vi layer for Emacs.
GNU General Public License v3.0
3.39k stars 281 forks source link

"v)" selects two more characters #82

Closed TheBB closed 7 years ago

TheBB commented 12 years ago

Originally reported by: York Zhao (Bitbucket: york, GitHub: york)


Pressing "v)" should select the rest of the sentence (up to and including the period), however, it currently selects the space after the period together with the first letter of the next sentence. On the other hand, "vM-e" works fine by selecting the rest of the sentence up to and including the period. Here is an example:

First sentence. Second sentence.

Put the cursor on the "F" and press "vM-e" will select "First sentence." which is correct, but "v)" would select "First sentence. S".

York


TheBB commented 12 years ago

Original comment by York Zhao (Bitbucket: york, GitHub: york):


After some investigation, the issue has finally become much clearer to me now, it turns out that on my home computer the selection was "inclusive", so actually when I typed "vw" the selection included the first character of the following word. Same thing happened when I typed "v)" and "v$", which is why when I tested "v)", I got the result I didn't like because the test was done on my home computer. However, on my office computer, this setting was "exclusive", therefor I got reversed results and I apologize for the confusion and thank you very much Vegard for helping me to make the issue clear. The last thing I still don't understand is, however, I have no idea why my office computer and home computer got different settings and I was not able to find the file ".vimrc" on my office computer either.

TheBB commented 12 years ago

Original comment by Vegard Øye (Bitbucket: epsil, GitHub: epsil):


York, when you have time, please start Vim and execute the command :set selection. Does it say "selection=exclusive" or "selection=inclusive"?

TheBB commented 12 years ago

Original comment by York Zhao (Bitbucket: york, GitHub: york):


Vegard, thank you so much for your help, I did a quick search on my entire hard drive (using "Everything" on windows), and there was no .vimrc file. But if I type ".emacs" I got a bunch, which means "Everything" has no problem finding files whose name start with "."

And to be honest I had never configured my Vim, and I'm now always trying not to use it because I have switched to Dvorak layout for over 6 months now, and my Evil has been customized to use my special bindings suitable for Dvorak which is almost completely different from the standard bindings. When I have to use Vim now I feel extremely painful because those bindings are different from the one I'm using in Evil.

I will dig into this later, but for now I have to switch back to my work related stuff which my boss will be checking with me tomorrow afternoon and I haven't started yet. I have spent too much time being angry with Frank, so bad that I got only 3 hours sleep last night. Really appreciated your help and have a nice day.

TheBB commented 12 years ago

Original comment by York Zhao (Bitbucket: york, GitHub: york):


Time is the currency in the open developer community. I work on Evil in my spare time, as do everyone else. The simple "golden rule" is what makes the whole thing possible: give, and you shall get. If you donate some of your own time towards solving a problem, then others may donate some of their time in return.

Totally agreed, but just wanted to remind that I did contribute to Evil (and Vimpulse) as well. In Evil there are about 15 commits belong to me. Of course this is not comparable to Frank's contribution. But still, I did "give" something. The most useful part of my contribution being the ability to open the folded or hidden text during a search and close it when the search leaves the match and goes to next match. This is especially useful in org-mode I believe, and also useful for those who use "hideshow.el" package cc-mode for example. This feature may be trial in Frank's eye, however, it did take me the entire afternoon to implement because I was almost brand new to Emacs-lisp at that time (and still new even now), like I said I'm a C/C++ and Assembly language guy. I haven't been contributing by writing code for awhile because firstly I have been too stressful on my project at work, secondly, Frank's reply to Michael reminded me that Evil doesn't need contributing by coding, all what were needed were testing resources. And that's part of the reason I'm still contributing by testing. Third, there had been a time that you guys responding to merge request or patch sending through email was extremely slow, I even sent emails asking the reason of not using my patch but I got no reply. I can still find out these emails if you think necessary. My patch eventually was applied by Vegard, but that was at least a month later. I consider this to be a confirmation that Evil doesn't want contributing by coding.

And he has implemented Evil's repeat system, its search module, the Ex reader including some very sophisticated interactive feedback, and a lot of other advanced features that simply wouldn't have been part of Evil without Frank. He is also responsible for resolving the better half of the issues posted at this bug tracker, taking the time that that entails (again, we are all donators here).

Agreed, especially the change based repeating support has been exetremely powerful and had become something I can't live without. I especially appreciate his work on this. However, this shouldn't have given him the authority to dishonour others by saying something like "This is really the most stupid reason to suggest something". If I have to make a choice either stop using his fantastic features or, be called "stupid" I would choose the former.

An experienced Vim user may be used to, say, doing v)h to compensate for Vim's character-inclusive behavior, and would find the suggested behavior confusing, even if it is arguably "better". 

You have given a valid example here, yes, if somebody has got into the habit of pressing an additional "h", then the fix may be even bad for him. However, it won't hurt if this behavior is made configurable and leave the old behavior default, which will not break the compatibility, unless it is hard to add this little feature. On the other hand, I think the even more powerful "power users" are those who are always willing to find out their counter-productive repetitive motions even though that had become his habit for a long time and are always open to change these habits by forming another better habit which is more motion economic. In the case here, avoid pressing the "h" if possible. Not to mention that the new habit is better for his finger because it saves one keystroke all the time. Of course breaking the old habbit is painful in the beginning, but it will pay back overtime, and this is exactly the reason why we spent time learning Vim in the first place, because we knew our effort will pay back. But, again, please don't get me wrong, I'm not suggesting you to add this anymore, I understand that you guys have decided not to change this.

Finally, debate will always be a necessary part of software development. Head over to the Gitorious wiki, and you'll find tons of archived discussions between Frank and myself, arguing about how to implement this or that, what makes the most sense in the larger context, and so on. With hindsight, it is abundantly clear that poor decisions would have been made without such reasoning. Discussion is valuable, when conducted with patience and respect.

Sure, but only when you are not being called "stupid".

In the end, we all have to respect each other if communication is to be possible. And the most respectful thing one can do is to patiently spend a little more of one's own time, instead of suggesting that others spend more of theirs.

Good point, but did I suggest others to spend more of their time? As far as I can remember, I had been suggested to spend time to find out documents in Vim. I believe making that behavior configurable would take less time than trying to find the documents in Vim, and most importantly, making it configurable wouldn't cause compatibility issue with Vim.

TheBB commented 12 years ago

Original comment by Vegard Øye (Bitbucket: epsil, GitHub: epsil):


York, if you want to see progress on these matters, then I suggest you try to find out why vw works differently in your Vim. Perhaps this is related to the different behavior of v$, too.

Do you by any chance have set selection=exclusive somewhere in your .vimrc? (How is your Vim initialized - perhaps it has a hidden settings file of its own?) Or perhaps a plugin or global variable is responsible for this setting?

What happens if you do :set selection=inclusive in Vim?

TheBB commented 12 years ago

Original comment by York Zhao (Bitbucket: york, GitHub: york):


Didn't want to respond but just list some references to the past conversations I mentioned in my previous reply.

On Aug 7, 2011, Michael Markert wrote:

"I'd like to help with developing evil is there a roadmap or feature list to work on?"

And here is Frank's response on Aug 8, 2011:

"This means the most urgent things are finding bugs, missing key-bindings and commands/motions that really should go into 1.0 ... So the best everyone can do is to use evil in the daily work and report bugs and missing features (send patches, if possible), tell us what is really missing and praise the developers."

Regarding Michael's request to add "evil-leader-key" to Evil, here is Frank's respond:

"But what is the feature? All I can see is another name for define-key specialized for some fancy keymap."

Yes, I agree that "evil-leader-key" is too simple, however, a feature doesn't have to be complicated in order to be called feature. If I were Michael, I would have felt a bit uncomfortable on Frank's response. This was just a very little thing, but Frank also did respond to other people in similar ways (not only to me). I guess Michael may say that he doesn't mind. Yes, that's true, nobody really care about things as minor as this, however, this kind of "minor" things do add up when it is being repeated again and again on different people, and when that happens, it does somehow project that person's not very nice personality. And the person's bad personality was eventually confirmed when he responded me in such a rude way.

Please don't get me wrong, I never suggested to break the compatibility to Vim for no reason. However, the behavior of "v)" to include the first character in the following sentence is really not useful, if anyone consider this behavior to be useful please illustrate. And I don't see how not including the first character of the following sentence in the selection of "v)" would be harmful for people who came from Vim.

And this is bad and really annoying. The last one I remember was #58, I think, where I still wait for a response

I reviewed #58 just now, is it really "untested"???, NO, I tested it before reporting. And here is my latest response to that:

In my Vim v7.3 with all default configuration, "v$" selection doesn't include the line end character. I still believe this is the correct behavior. Since you said your Vim v7.2 works the other way, I guess this should be configurable in Vim, therefor, it makes sense to make it configurable in Evil as well.

The above test was done on the Vim v7.3 bundled with msysgit v1.7.9-rc0. And I had never customized anything in the Vim version I tested in. From what I had seen, Evil is not consistent with Vim in this respect. Since you had already made the decision not to do anything about it, do I still need to reply? I'm sorry that I didn't know you were still expecting my response.

TheBB commented 12 years ago

Original comment by Vegard Øye (Bitbucket: epsil, GitHub: epsil):


To get the technical issue over with:

(define-key evil-visual-state-map "(" 'backward-sentence)
(define-key evil-visual-state-map ")" 'forward-sentence)

That will give you "exclusive" behavior in Visual state and "inclusive" behavior everywhere else.


York, I have commended you for your level of detail in the past. Still, statements like these irk me too:

In my Vim (boudled in msysgit), "vw" is always exclusive (not
selecting the first letter of the next word), I know "vw" your Vim is
inclusive, so I guess it MUST be configurable in Vim somewhere. I know
you are going to ask me to give you the documentation, then, sorry, I
may do it some day when I have time, but I'm always extremely busy.

Well, this is true of all of us. How do you ever find time to do the things you want? The answer: you make time. Nobody likes that kind of answer, but we all know it's the real one.

Time is the currency in the open developer community. I work on Evil in my spare time, as do everyone else. The simple "golden rule" is what makes the whole thing possible: give, and you shall get. If you donate some of your own time towards solving a problem, then others may donate some of their time in return.

At this point I want to clarify that Evil was Frank's initiative. If he hadn't proposed that we join efforts, then I'd be toiling away at Vimpulse now, probably still in the process of untangling it from Viper. I also have to defend Frank against your caricature of him as a "political guy": any glance at git log will show that his technical achievements run through the project from day one, and he has implemented Evil's repeat system, its search module, the Ex reader including some very sophisticated interactive feedback, and a lot of other advanced features that simply wouldn't have been part of Evil without Frank. He is also responsible for resolving the better half of the issues posted at this bug tracker, taking the time that //that// entails (again, we are all donators here).

As for Evil's "mission statement", its policy has always been to emulate Vim as faithfully as possible, and leave it at that. Moreover, it is quite clear that Evil //must// have such a policy, even if it leads it to copy some of Vim's faults as well as its features. An experienced Vim user may be used to, say, doing v)h to compensate for Vim's character-inclusive behavior, and would find the suggested behavior confusing, even if it is arguably "better". (I'm reminded of the website Annoyances.org, which shed a less flattering light on Windows XP's "smart features" back in the day. To the newcomer, Microsoft's many tips and helpers were quite useful, but to the power users, they were tremendeously annoying and only got in the way.)

Finally, debate will always be a necessary part of software development. Head over to the [[http://gitorious.org/evil/pages/Development|Gitorious wiki]], and you'll find tons of archived discussions between Frank and myself, arguing about how to implement this or that, what makes the most sense in the larger context, and so on. With hindsight, it is abundantly clear that poor decisions would have been made without such reasoning. Discussion is valuable, when conducted with patience and respect.

In the end, we all have to respect each other if communication is to be possible. And the most respectful thing one can do is to patiently spend a little more of one's own time, instead of suggesting that others spend more of theirs.

TheBB commented 12 years ago

Original comment by Michael Markert (Bitbucket: cofi, GitHub: cofi):


I just stumbled on this by chance and please forgive me if I overlooked something already said.

At first: Please cool down.

As I understand evil it's about to emulate Vim's useful features (such as movement) and bring it to Emacs land to form a useful symbiosis. With regard to this goal I think it is most valuable to stay compatible with peoples' expectancy of Vim behavior and that means treat Vim as a reference and somewhat as a holy book.

I saw many people that want to try Emacs but cannot stand dropping the useful Vim paradigms and only made a (successful) switch because Evil(/Vim-Mode/VImpulse/...) exist. Heck, I was one of them myself. So please don't be incompatible on purpose without a really good reason (the mapping of Y would maybe qualify).

About evil-leader: I accepted Frank's arguments (keeping core as small as possible) and thought and think they have a good reason. The long term goal was to bundle an uber-evil as package and that's a great idea.

About the rejection of my involvement: Well, I don't feel so. I'm still glowing for evil and hope that I can contribute again but there is so little time ...


I think what would really help is this (not only with regard to this bug): Publish a mission statement and chart what needs to be done.

We need to sketch out what evil wants to be and (more important) what it does not want to be. I described my idea of that above and here is my idea if something collides with this mission statement: Write a plugin. Maybe there should go some work into providing an infrastructure for plugins (or maybe not: It has been a while since I dove into the source).

And the charting to ease contribution: What remains to accomplish this mission statement, say keybindings and functionality.

It sure is some work but maybe it helps to avoid this issues.

P.S. Frank you are doing a great job, please stay on board.

TheBB commented 12 years ago

Original comment by Frank Fischer (Bitbucket: lyro, GitHub: lyro):


OMG, your reply was full of harsh, harsh, and harsh, aggressive, aggressive and aggressive, and even rude. I bet you must have relationship problem in real life. Or, how old are you? Maybe you are just too young?

Probably that's reason.

I just tested it with Evil's "make emacs", and "v)" selection still included the first character of the following sentence.

Do you even read your own sentences? Just to remind you, you said

If "d)" only deletes the following space after the period that would make sense, however it deletes the first letter of the following sentence 

You and therefore I were speaking of "d)", not "v)" in this particular case !!!

I really don't understand why you thought my major motivation was to make Evil better than Vim. ...

Hm, perhaps of one of your early statements?

I'm still loving Evil and I hope it will excel Vim some day, and that's the exact reason I suggested something "against" Vim.

But what was in my head when I said that you were harsh to others was actually your argument with Michael Markert awhile back regarding his "evil-leader-key".

And I still believe that my former arguments were good, not introducing something in the core code, which should be kept as small as possible, something that may be useful for some but somehow interfers with Emacs built in features. And we aggreed that evil-leader-key can and should be shipped as an extension module, similar to evil-surround. I had the impression the we both, myself and Michael, aggreed on that as a good compromise. I'm still ready to accept other opinions and being convinced by good arguments to change my policy in this aspect. And I'm also ready to be out-voted on that. But that did not happen until now. And in this situation, yes I probably tried to be bold but certainly not offending. If I was offending to Michael, then I'm sorry and I want to appologize, but I had not the impression.

Also, I remember that Michael Markert wanted to join the development of Evil and how you rejected him.

Hm, I really can't remember that happened. Perhaps you mean because of that `evil-leader-key' stuff? In my eyes this was not really a request to join the team. I would be the last who would reject anyone. I, as you pointed out, I'm not the leader thus it's not my decision anyway.

I was shocked that in your eyes I was not writing "usable bug reports" but you apparently were lying.

No I'm not. I know that you can indeed write good reports, and that's what I wrote. But sometimes you write bad ones, even untested ones. And this is bad and really annoying. The last one I remember was #58, I think, where I still wait for a response ...

Luckily that Evil is not your project, otherwise I would have thrown it into garbage. As far as I know, Vegard was the original owner of this wonderful project and you joined later, and I believe Vegard was the designer not you.

That's true, although not completely. We both started with different projects, Vergard with Vimpulse, I with vim-mode. And I was the one who suggested about one year ago to join both projects and with great success. But yes, you're right, I think Vegard is the boss and that evil is his project and he makes and should make all decisions.

Vim is not bible, to me, the behavior of "v)" to include the first character of the following sentence is ridiculous, doesn't matter whether it's Vim or Evil, and you agreed that it is a bug by saying "If that is true then it is indeed a bug" in your last reply.

See above, we were talking about d) in this particular case. And if this does delete the first character of the next sentence, yes then it is bug. And even if Vim is not the bible, it's the main reference. And it is a very good decision to start with the goal to keep at close to vim as possible where appropriate and not change something in the default code just because of someones personal preference. And still can't understand why you any bug report that complains about some behavior without comparing to the reference can be useful.

I can't accept your "color" and I have been hurt by your irresponsible words. It's too bad luck to have encountered a rude person like you, even though it's not in "real life". But like I said, I have been lucky enough that you are not the main developer of Evil and you cannot represent Evil (even though you have tried hard to pretend that you are the major developer of Evil), otherwise I would have to throw it into garbage. 

I'm really sorry to hear that, in this is not meant to be ironic. And that's again because I know that you have been and thus can be very helpful, and that's why I'm really annoyed. There is absolutely no reason to throw something into garbage because of a discussion, being aggressive or not. Ah, and I never intended to pretend that I'm the major developer of evil, I really do not want to be. I really see myself as just another, any in my particular case perhaps superfluous, contributer not more or less. If you and maybe others want be to leave the project, I will do so immediately and without any complains! So if you want me to leave, I will do so, just send me a mail.

TheBB commented 12 years ago

Original comment by York Zhao (Bitbucket: york, GitHub: york):


OMG, your reply was full of harsh, harsh, and harsh, aggressive, aggressive and aggressive, and even rude. I bet you must have relationship problem in real life. Or, how old are you? Maybe you are just too young?

If that is true then it is indeed a bug. But in my emacs and my evil the ")"
motion is exclusive and thus does *not* delete the first character of the
following sentence. So if your evil/Emacs behaves differently, please file a
bug report for that specific issue.

I just tested it with Evil's "make emacs", and "v)" selection still included the first character of the following sentence. I don't know where the problem is, however, it maybe too early to say that this is all my problem with my Emacs only not the problem with Evil. If you really think so then you are not be a real programmer.

At least to me it sounds as if one of your major motivations is to make evil
better than vim. And that is stupid.

I really don't understand why you thought my major motivation was to make Evil better than Vim. NO, ABSOLUTELY NOT, NEVER, EVER. Evil is NOT my project, how can I be motivated to "make it better than Vim". And I never wanted to join the development of Evil, because Emacs-lisp is not where I'm proficient in. All my motivation on hacking Evil and Emacs is for increasing productivity at work and that's it. I'm proficient in C/C++ and assembly language, not in Lisp. Therefor, I have ZERO intention to find opportunity in this area. After all, even if wanted, I don't think I have the time to "make Evil better than Vim".

And it sounds to me as if you were explicitly searching for such an
opportunity.

I laughed when I read this. How come I gave you this impression? If I'm still a student, or just graduated from university then this is probably true. However, like I said, I'm a senior C/C++ and assembly language developer and had been in that area for decades and am receiving good pay being an expert in my area. Where is my motivation to "explicitly searching for such an opportunity". I have to say that you are too sensitive and maybe too nervous, even a bit paranoid.

Oh I hope my words are harsh. And probably I've also been like this in the
past, and if I remember correctly it was also you.

It was me? I didn't realize that you have been pointing to me for awhile. But what was in my head when I said that you were harsh to others was actually your argument with Michael Markert awhile back regarding his "evil-leader-key". As far as I remember, you were not nice writing to him. Also, I remember that Michael Markert wanted to join the development of Evil and how you rejected him. To me, it's always a good thing that somebody want to join an open source project. But you clearly didn't want anybody to join the development team and I guess that this was not Vegard's intention. My impression is that you are not a purely technical guy but more of a political guy. And I think this is the biggest difference between you and Vegard. I guess if it were Vegard he probably had welcomed Michael Markert's intention of joining the development team.

This was indeed my intention. And there is a very good reason for this. Some
people really help with good suggestions and good bug reports. Others
repeatedly send bad bug reports and bad suggestions without thinking enough
about it. I admit that sometimes I'm a little bit tired of repeating myself
over and over again and to explain how usable bug reports should be written.
I have no problem if this happens for the first time, but if it happens
several time from the same person, then yes, that's a little bit annoying.
This is even more so as I for myself tend to need several days to submit a
single bug report to some project. That's because I always test the supposed
bug over and over again trying to provide as much background as possible.

I was shocked that in your eyes I was not writing "usable bug reports" but you apparently were lying. I might have submitted non-bugs, but definitely not as bad as what you said. And I'm feeling lucky that Vegard can prove that I wrote good bug report. Here's an excerpt from Vegard's email to me awhile back: "Your posts are very good! They give much detail, particularly with regard to reproducing the buggy behavior. Constructive feedback like that goes a long way to fixing the problem and making the code more robust". Luckily that Evil is not your project, otherwise I would have thrown it into garbage. As far as I know, Vegard was the original owner of this wonderful project and you joined later, and I believe Vegard was the designer not you.

And yes, this current issue is an example of it. I really have the impression
that you did not think enough about it. You did not even check your bug in
vim before you filed the issue.

Vim is not bible, to me, the behavior of "v)" to include the first character of the following sentence is ridiculous, doesn't matter whether it's Vim or Evil, and you agreed that it is a bug by saying "If that is true then it is indeed a bug" in your last reply.

Ah, and sorry for not being easy. That brings color in our lives, take it
easy. Some verbal fighting doesn't harm ;)

I can't accept your "color" and I have been hurt by your irresponsible words. It's too bad luck to have encountered a rude person like you, even though it's not in "real life". But like I said, I have been lucky enough that you are not the main developer of Evil and you cannot represent Evil (even though you have tried hard to pretend that you are the major developer of Evil), otherwise I would have to throw it into garbage.

Please note that I will not respond to your reply anymore even though I still have a lot to say because I have wasted too much time responding your irresponsible posts. It's really not worth my time.

TheBB commented 12 years ago

Original comment by Frank Fischer (Bitbucket: lyro, GitHub: lyro):


> d) because it deletes the sentence and the following whitespace. If it deletes
> the end of a sentence, then there is no need for the whitespace anymore.

I'm not sure if you really got what I meant. If "d)" only deletes the following space after the period that would make sense, however it deletes the first letter of the following sentence as well and I don't see how this behavior can be useful for somebody.

If that is true then it is indeed a bug. But in my emacs and my evil the ")" motion is exclusive and thus does not delete the first character of the following sentence. So if your evil/Emacs behaves differently, please file a bug report for that specific issue.

> This is really the most stupid reason to suggest something. Doing something only
> to be different makes no sense.

Don't you think your words were too offending, or at least too aggressive? I don't see how suggesting the operation of "d)" and "v)" to be exclusive is "stupid".

Perhaps I was not clear enough, it was not about suggesting the operation being changed, such discussions are ok. I complained about the reasoning. At least to me it sounds as if one of your major motivations is to make evil better than vim. And that is stupid. And it sounds to me as if you were explicitely searching for such an opportunity. If evil happens to be better over time because it has real advantages, then this is very good. If it is just because of trivial configuration, then it's not. And indeed, IMHO evil has already a big advantage over Vim, in this advantage is Emacs and what you can do with it.

I have to say that your words tend to be harsh and tend to make people not very comfortable. I actually have noticed this in the past when you "spoke" to others as well. You are not an easy person.

Oh I hope my words are harsh. And probably I've also been like this in the past, and if I remember correctly it was also you. This was indeed my intention. And there is a very good reason for this. Some people really help with good suggestions and good bug reports. Others repeatedly send bad bug reports and bad suggestions without thinking enough about it. I admit that sometimes I'm a little bit tired of repeating myself over and over again and to explain how usable bug reports should be written. I have no problem if this happens for the first time, but if it happens several time from the same person, then yes, that's a little bit annoying. This is even more so as I for myself tend to need several days to submit a single bug report to some project. That's because I always test the supposed bug over and over again trying to provide as much background as possible.

And yes, this current issue is an example of it. I really have the impression that you did not think enough about it. You did not even check your bug in vim before you filed the issue. Otherwise you had been able to answer several questions on your own, especially that vim compatibility is an important issue and that it is probably not wise to simply change to an incompatible behavior and also because, as you said, you know how to configure evil therefore you could do the adaption on your own.

The problem is that dealing with such issues is really a waste of time. In big projects such bug reports would simply ignored. We don't do this but try to answer everything and even discuss each single bug report and provide background information. Even more, we really try to fix all bugs as fast as possible, often within one day. And you are not the only one who is busy. We are really busy, too. We work on evil in our free time and have other jobs, too. And dealing with bug reports requires a lot of time. And you said you do not have the time to look something up in the docs. But if you do not do it and provide the reference, then we have to do it because someone must do it. Again it's a lot of work you do not want to do but you expect that we do it. I'm sorry, but IMHO this is not really fair.

Yes, my statements were aggressive and this was what I intended. Because I want you to realize that I'm not lucky with that kind of discussions and that I think that you should really know better, because this is not the first time. I simply want you to stop coming like this with issues. I know you can do better, so do it. And sometimes even my first answer is harsh. That's because I want to make things clear immediately and not have long discussions. Obviously I failed in our current discussion (perhaps I was not bold enough? ;))

If you really want to discuss stuff like this ")"-motion thing, then this is really something to discuss on the mailing list, not in the issue tracker. If you make a proposal in this issue tracker (note that you filed this one as bug) then you should really have thought about it and not only make the proposal but also explain why it is good, how it interacts with other aspects, what may be necessary to change, why the proposal make sense. And if you propose a change in behavior which is incompatible with Vim, the you should also discuss this and if it may bug other users. And because this is not easy you should propably discuss it on the mailing list first to hear other opponions. Your heard mine, I have good arguments, but there may be others. Once you have enough arguments, then it's perhaps time to file an issue.

And again it took 30 minutes to write this. I now I'm tired, time for bed.

Ah, and sorry for not being easy. That brings color in our lives, take it easy. Some verbal fighting doesn't harm ;)

TheBB commented 12 years ago

Original comment by York Zhao (Bitbucket: york, GitHub: york):


> v) well that's it, no one wants to implement different motions for visual state
> and normal state. It's exactly the same with other exclusive motions like "w"

Actually the behavior of "vw" in Evil is something I can't agree with. In my Vim (boudled in msysgit), "vw" is always exclusive (not selecting the first letter of the next word), I know "vw" your Vim is inclusive, so I guess it MUST be configurable in Vim somewhere. I know you are going to ask me to give you the documentation, then, sorry, I may do it some day when I have time, but I'm always extremely busy. If it is easier to change it in my local configuration why bother wasting time finding the documentation, and even arguing?

> d) because it deletes the sentence and the following whitespace. If it deletes
> the end of a sentence, then there is no need for the whitespace anymore.

I'm not sure if you really got what I meant. If "d)" only deletes the following space after the period that would make sense, however it deletes the first letter of the following sentence as well and I don't see how this behavior can be useful for somebody.

> This is really the most stupid reason to suggest something. Doing something only
> to be different makes no sense.

Don't you think your words were too offending, or at least too aggressive? I don't see how suggesting the operation of "d)" and "v)" to be exclusive is "stupid".

> You can always suggest alternatives, e.g., list them in the wiki for anyone who
> needs them or clone evil and provide your better configurations if you want,
> that's up to you.

This is exactly what I have been doing - cloned Evil and did what I like in my ergo-evil.

> But we certainly won't change something just for experiments because someone
> thinks it may be better for whatever reason. The current policy is to mimic Vim
> if possible while not hiding Emacs behavior. Though sometimes there is a trade
> of, of course. Suggestions to change something, especially if it's something so
> tiny and easily configurable as the ")" motion, will always be rejected.

I have to say that your words tend to be harsh and tend to make people not very comfortable. I actually have noticed this in the past when you "spoke" to others as well. You are not an easy person.

TheBB commented 12 years ago

Original comment by Frank Fischer (Bitbucket: lyro, GitHub: lyro):


v) well that's it, no one wants to implement different motions for visual state and normal state. It's exactly the same with other exclusive motions like "w"

d) because it deletes the sentence and the following whitespace. If it deletes the end of a sentence, then there is no need for the whitespace anymore. That's completely analogously to motions like w and every other exclusive motion - because visual state is inclusive by default. You can change visual state to exclusive if you wish. Even if we change ")" to 'forward-sentence, the difference between d) and v) will be there (the former not deleting the whitespace after the period, the latter will include that whitespace).

But anyhow, the current implementation is so because it's the way Vim does it. And regarding the mails on the list indicates that most users prefer a behavior as close to vim as possible, perhaps because many use both or at least come from Vim and thus are used to its behavior. A change like the one you propose would probably provoke many bug reports by others.

> I'm still loving Evil and I hope it will excel Vim some day, and that's the exact reason I suggested something "against" Vim.

This is really the most stupid //reason// to suggest something. Doing something only to be different makes no sense.

You can always suggest alternatives, e.g., list them in the wiki for anyone who needs them or clone evil and provide your better configurations if you want, that's up to you. But we certainly won't change something just for experiments because someone thinks it may be better for whatever reason. The current policy is to mimic Vim if possible while not hiding Emacs behavior. Though sometimes there is a trade of, of course. Suggestions to change something, especially if it's something so tiny and easily configurable as the ")" motion, will always be rejected.

TheBB commented 12 years ago

Original comment by York Zhao (Bitbucket: york, GitHub: york):


> Even if you prefer that variant it does not mean that others prefer it, too.

Fair enough.

> For example, I prefer Vim behavior.

I agree that ")" command to goto the beginning of next sentence is useful, but that doesn't mean "v)" or "d)" doing the same thing is as good. And, just out of curiosity, would you mind to explain a little bit on why you prefer "v)" to include the first character of the next sentence in the selection, or why you prefer "d)" to not only delete the rest of the current sentence but also the first character of the next sentence, and how this is more useful for you?

> Evil is meant to be highly configurable, but this does not mean that it can or
> should include every tiny configuration option. It just means that it is not
> too hard to implement whatever you want. And just changing some keybinding is
> certainly not too hard.

I don't mind doing customization at my side, and my Evil is actually highly customized already. I just wanted to give out my thoughts, and whether to accept or not is completely you guy's decision. I suggested something doesn't mean I didn't like Evil or I didn't think Evil was good, quite the opposite, I'm still loving Evil and I hope it will excel Vim some day, and that's the exact reason I suggested something "against" Vim.

Thanks,

York

TheBB commented 12 years ago

Original comment by Frank Fischer (Bitbucket: lyro, GitHub: lyro):


What is //ridiculous// is a matter of taste. The current implementation is exactly what vim does. The movement ) moves to the beginning of the next sentence. Period. And this may very well useful for others. You can always bind ) to to 'forward-sentence if you prefer ) going to the end of the current sentence. It's as easy as

(define-key evil-motion-state-map ")" 'forward-sentence)

And because of this the current behavior won't be changed. Even if you prefer that variant it does not mean that others prefer it, too. For example, I prefer Vim behavior. Perhaps it would be the other way around if I had started Emacs before Vim, but that did not happen.

Evil is meant to be highly configurable, but this does not mean that it can or should include every tiny configuration option. It just means that it is not too hard to implement whatever you want. And just changing some keybinding is certainly not too hard.

TheBB commented 12 years ago

Original comment by York Zhao (Bitbucket: york, GitHub: york):


Thanks for reminding me, I just tried in Vim and noticed that it does so as well. but I really really really don't understand why it does so. Is there a reason for Vim to behave in such a ridiculous way or just a bug? If we agree that this behavior is not useful at all, should we still follow it? Maybe it's a good idea to try to excel Vim?

TheBB commented 12 years ago

Original comment by Vegard Øye (Bitbucket: epsil, GitHub: epsil):


Isn't this the same as Vim does?