So I’m running IDE 9.3.1 with Vi emulation turned on. I noticed something weird: substitution commands seem to respect the state of the check boxes in the find/replace pane. I’m pretty sure that didn’t happen before 9.3.
So here’s the behavior I’m seeing. Let’s say I have a line like this:
foo_bar = data.foo;
Normally, in Vim and previous versions of Komodo, I could change that to “fizz_bar = data.foo” by running the command “s/foo/fizz/”. However, in the current version, how that works depends on the boxes that are checked in the replace pane. If I have “Match whole words” unchecked, then it works as expected. But if that option is checked, then I end up with “foo_bar = data.fizz”, which is not what I’d expect and, I’m pretty sure, not how it worked previously.
Another odd case is the combination of the “Ignore case” check box with the command-mode “i” flag. So, for example, the command “s/Foo/fizz/i” should give result in “fizz_bar = data.foo” and just “s/Foo/fizz/” should not match and hence make no change. And that’s what I get when “Ignore case” is unchecked. However, when “Ignore case” is checked, “s/Foo/fizz/i” fails to match at all, which is really weird considering that in this case the two flags don’t even conflict.
So my question is: is this supposed to happen? And if so, is there a way I can change it? Or should I file this as a bug? Vi substitution commands really shouldn’t be tied to any UI state - that’s half the point of using the commands rather than the UI. And since the relevant UI isn’t even on the screen when you’re running the command, it’s really confusing when the command doesn’t work as expected.