Download
Update Site
Stable: http://vrapper.sourceforge.net/update-site/stable
Unstable: http://vrapper.sourceforge.net/update-site/unstable
File Releases
About
Vrapper is an eclipse plugin which acts as a wrapper for eclipse text editors to provide a Vim-like input scheme for moving around and editing text.
Unlike other plugins which embed Vim in Eclipse, Vrapper imitates the behaviour of Vim while still using whatever editor you have opened in the workbench. The goal is to have the comfort and ease which comes with the different modes, complex commands and count/operator/motion combinations which are the key features behind editing with Vim, while preserving the powerful features of the different Eclipse text editors, like code generation and refactoring.
Vrapper tries to offer Eclipse users the best of both worlds.
Development
Development of Vrapper has moved to our GitHub project at:
https://github.com/vrapper/vrapper
GitHub makes it much easier for contributors to submit code changes, bug fixes, and new features. If you'd like to contribute to Vrapper just initiate a Pull Request on our GitHub project.
The SourceForge project will remain active because it hosts our website, bug tracker, wiki, forums, direct file downloads, and Eclipse update site. The Git repository on SourceForge will only contain the state of the code for the most recent stable release. Basically, everything other than actively developed code is still on SourceForge.
If you'd like to contribute to Vrapper but need some help, here are a couple Developer Wiki pages we've put together:
Developer Wiki
News
<< Newer Posts0.56.0 Released
It's been a bit of a slow month for us. There weren't many changes but it's been two months so I might as well do another release. Here are the changes since my last update
- Fixed issue where some jumps weren't added to Eclipse history and <C-O>/<C-I>
- Fixed issue where setting a string option to "" wouldn't clear the value
- Fixed issue where `:s//` wouldn't clear previous search
Updates to unstable update site
Here's your monthly status update on recent changes to Vrapper's unstable update site:
- Added support for fold commands (za, zo, zc, zR, zM) in optional PyDev plugin
- Fixed issue so ex commands will reuse last search if no pattern is provided
- Fixed issue with Ctrl- keys when replaying a macro
- Fixed issue where switching visual modes reset selection
- Fixed issue with switching to search mode from a visual mode
- Fixed issue which required whitespace when defining a :move range
- Fixed issue with :d, :y, and :retab requiring line ranges
- Fixed issue with Ctrl-A incrementing numbers larger than 32-bits
- Other various refactoring (not tied to any specific defect)
0.54.0 Released
Another two months, another Vrapper release. We've now received over 50,000 installs via the Eclipse Marketplace, which puts us at number 42 out of all 1,800+ plugins available in the Marketplace. Thank you everyone who continues to use and support Vrapper!
We now have over 60 issues on our GitHub repository but I noticed something recently: there are only 11 defects. Of course, since I'm the one who labels these items there are another 10 "annoyances", which are items that don't really prevent you from doing anything but would be nice to have. The reason I bring this up is because we have 35 feature requests. Once again, it seems like Vrapper is at the point where we can meet the majority of user's use cases and we're down to the really obscure and difficult features that only power users even know exist. Also, I don't think we have any feature requests which have a "me too!" comment in them; I think all of our feature requests each have one person waiting on them. I may be a little biased, but I think Vrapper is one of the best Vim emulation plugins for any text editor. I'm not aware of any other Vim emulator that has support for additional (ported) vimscript plugins. I think we're doing pretty good!
Anyway, down to business. 0.54.0 includes the following changes since my last status update:
- Added support for counts before an ex command (4:s/foo/bar/g)
- Added support for setting a register to the contents of another register (:let @*=@3)
- Fixed issue where indenting a block selection indented the beginning of the line
- Fixed issue with potential off-by-one when indenting a block selection
- Fixed issue with ':source' not interpreting '~' as '$HOME'
- Fixed issue with copying a block selection to the clipboard
- Fixed issue with restoring selection after toggling between visual mode and linewise visual mode
- Fixed issue with reverse search of a single character
- Fixed issue with stale selections potentially throwing an exception
Updates to unstable update site
I'm still sticking with our monthly status updates. Here are the changes which are currently on our unstable update site:
- Added new optional plugin for indent text object
- Useful with Python and other whitespace languages
- 'ii' for indent block, 'ai' for indent block plus line above
- http://www.vim.org/scripts/script.php?script_id=3037
- Added support for ':let @/ = ""' to clear search highlight
- Introduced config property 'hlscope' to determine search highlight scope
- Only valid when ':set hlsearch' is active
- 'window' - highlight the same keyword in all editors
- 'clear' - only one editor will have a highlight at a time
- 'local' - each editor has its own search highlight
- Default is 'clear'
- Fixed issue with 'c' and 's' in visual-block mode
- Fixed issue with XML editor provided by ADT
- Fixed issue with unintentionally recursive mappings
- Fixed issue with drawing command-line when no scrollbars present in certain editors
0.52.1 Released
I just released 0.52.0 a couple days ago but a number of people quickly hit the same problem. Certain command-line commands (such as :w and any mappings to an :eclipseaction) caused the editor to lose focus. This meant you had to click your mouse within the editor to regain focus. As Vim users, we all know how frustrating it is when your hands have to leave the keyboard to use the mouse. So we fixed this issue and released 0.52.1 as quickly as we could. We apologize for any inconvenience.
The only difference between 0.52.0 and 0.52.1 is that single defect fix:
- Fixed issue where some command-line commands would cause the editor to lose focus
0.52.0 Released
While December was extremely slow for us, we did have some code changes in January so I'm sticking with our two-month release cycle and releasing 0.52.0 today. The following changes are in 0.52.0:
- Added support for 'gn' and 'gN'
- Added support for ':buffer#' command and Ctrl-^
- Added support for 'C' in visual mode (alias for 'c' or 's')
- Changed ':ls' command to be ':files'
- Changed ':buffers' and ':ls' to be more vim-like
- Fixed issue where '/e' in search didn't work with regex
- Fixed issue where '<c-=>' couldn't be used in a mapping
- Fixed issue where canceling a search would also clear the visual selection
(Lack of) Status Update
It's been a month since 0.50.0 was released so I figured I should stick with my monthly status updates and tell you about the recent changes. However, there is nothing to report. Since 0.50.0 was released there hasn't been a single line of code changed and there hasn't been a single defect filed. December is usually a slow month for us anyway, but I'm surprised we haven't had any defects filed either. I guess 0.50.0 must be a rock-solid release (or you guys must all be busy during December too).
I hope you all enjoy Vrapper 0.50.0!
0.50.0 Released
0.50.0 has been released, continuing with our two-month release cycle. At this point, I think I've been fully relegated to Project Manager status as albertdev has stepped up and handled basically all development in this release. He's much better at this than I am and Vrapper is stronger for it. I'll take credit for resurrecting this project when the original authors abandoned it, but albertdev is the one who is able to fix the really difficult defects and introduce tough new features. Thank you albertdev for your amazing work!
The following changes are included in 0.50.0:
- Added support for 'p'aste in visual block mode
- Added support for "* as a separate register on Linux
- Added support for the following 'clipboard' values: 'unnamedplus', 'autoselectplus', 'exclude:'
- Added support for 'g_' motion
- Added support for refreshing current file using ':e' with no arguments
- Added support for 'u' and 'U' in visual mode
- Fixed behavior of '{count}gT' to be more Vim-compliant
- Fixed issue with rendering command-line while scrolling
- Fixed issue with moving the cursor while in insert mode, then repeating
- Fixed issue with 'S' while on an empty line with Windows line-endings
- Fixed issue with eclipseaction in a vnoremap
- Fixed issue with ':reg' and ':marks' in Java 8
- Fixed issue with visual display of selecting a newline
- Fixed issue with incremental search highlight when match is under the cursor
- Fixed issue with editing certain configuration files in IBM's Rational Software Architect IDE
Updates to unstable update site
It's been another month, time for your monthly status update with Vrapper. We've made the following changes on the unstable update site:
- Added new "line" text object plugin
- 'al' for column 0 to end-of-line
- 'il' for first non-whitespace character to last non-whitespace character of a line
- Port of http://www.vim.org/scripts/script.php?script_id=3886
- Added support for 'gI' (insert at column 0)
- Added support for ':cmap'
- Fixed issue where word text objects would stop at unicode characters
- Fixed issue with 'O' on the line below a closed fold
- Fixed issue where 'q' (record macro) couldn't be re-mapped
- Fixed issue with 'A' in visual-block mode
- Fixed issue with '>' indent command with counts in visual mode
- Fixed issue which prevented a custom ':command' from using ':normal'
- Fixed issue where '\t' in substituion text couldn't be escaped
- Fixed styling issues in status bar
- Fixed behavior when toggling between visual mode and visual-line mode
- Changed 'ge', 'gE', and 'w' to be more vim-compliant in visual mode
- Various refactoring of old defect fixes
0.48.0 Released
Vrapper version 0.48.0 has been released, back on schedule with our two-month release cycle. The only changes since the last news post were more esoteric bug fixes. The following fixes are included in 0.48.0:
- Fixed issue with cursor placement after multi-line 'gp'
- Fixed issue using counts with 'o' command
- Fixed behavior for 2di' and 2yi' around whitespace
- Fixed issue with '*' and '#' when 'smartcase' is enabled
- Fixed issue where red error text wouldn't disappear from status bar
- Fixed issue with hitting backspace as soon as you enter insert mode then hitting '.' to repeat insertion
- Fixed issue with performing multiple searches while in visual mode
- Fixed issues with `[ and `] not updating after a delete or after 'p'
Updates to unstable update site
(plus a minor rant)
Time for another monthly status update on Vrapper. For the last couple years, our GitHub Issues page has hovered around 30 open defects/feature requests. Defects have been filed and fixed and we always seemed to have about 30 open at any given time. This last month brought with it what I'm going to call some "overzealous" new users. We jumped from having ~30 defects to having over 50 in one month. 13 of those issues were filed by a single person. Now, I don't take this as a sign that Vrapper is unstable. I may be overly optimistic here, but I think it's actually because Vrapper has reached a point where we meet about 95% of most users' use cases. We're down to the esoteric features and nit-picking defects; which is to say, the really hard stuff. Just take a look at the current changes on our unstable update site:
- Added support for 'c_<C-R>_<C-W>' and 'c_<C-R>_<C-A>'
- Insert word under cursor into command-line
- Added support for 'n' flag in substitutions
- Count matches without performing substitution
- Fixed issue with using counts on a non-linewise paste
- Fixed issue with '}' in visual mode with ipmotion.vim plugin
- Fixed issue with 'incsearch' and '?' search mode
- Fixed issue with cursor position after a 'u' undo
- Fixed issue with ']' mark after deleting text
- Fixed issue with cursor position in visual mode when using "selection=exclusive"
- Fixed issue with performing multiple searches while in visual mode
- Fixed issue with enabling Vrapper while a text selection was active
- Fixed issue with pasting on an empty line with windows newlines
- Fixed issues with Vrapper interacting with Perforce plugin
There are very few items in that list that I think are generally applicable or would affect a large number of users (and those are just the items we were able to fix). Hopefully this is a sign that the majority of our users are happy with Vrapper. Hopefully the majority of our users aren't even running into most of the defects we're fixing at this point.
**Changes in behavior**
One last thing. I removed a couple configurable options which nobody should've
been using anyway. We had support for "saney" and "sanecw" which would modify
the behavior of 'Y' and 'cw' to be more consistent with other Vim commands
(despite our 'Y' and 'cw' being consistent with Vim's 'Y' and 'cw'). I removed
these options because Vim's own documentation says to use ":map Y y$" and ":map
cw dwi" if you want that "sane" behavior. I think our "saney" and "sanecw"
options were added before Vrapper had support for ":map" but they are no longer
necessary since we've had ":map" for a while now.
0.46.0 Released
If I was sticking closely to my two-month release cycle I would've released last week. However, there weren't too many changes in this release. I also had just fixed a defect and I wanted to make sure my fix solved the problem. Now, a week later, I'm releasing 0.46.0. Here are the changes since the last news post (included in 0.46.0):
- Changed 'syncmodifiable' to ignore Eclipse's readonly flag by default. This should help some Perforce users.
- Fixed issue where selecting from the end of the line backwards would skip the last character
- Fixed issue where Vrapper would stay in VisualMode after Eclipse cleared the selection
- Fixed issue where a visual selection could jump to the beginning of the next line
- Fixed issue where Mac command key was ignored. It is now treated as Ctrl.
- Fixed issue with 'i_Ctrl-Y' after 'A'.
Updates to Unstable update site
Another month, another status update for Vrapper. In the past month, we've made the following changes to the unstable update site:
- Added support for ':command' to define custom user commands
- Fixed issue where 'softtabstop' broke multi-character mappings (like 'imap jj <esc>')
- Fixed issue where you couldn't use unicode characters in .vrapperrc
- Fixed issue with mapping '0' to something then using counts for a command
- Fixed issue with 'R' replace mode at the end of a file
- Fixed issue with using <TAB> in a macro
- Fixed issue where you couldn't use a space in the right-hand side of a mapping
- Fixed issue preventing you from mapping '<c-/>' to anything
Surround Plugin changes:
- Added ability to define custom surrounds by editor type
- au "Java" surround c /*\r*/
- au "XML" surround c <!--\r-->
Split Editor Plugin changes:
- Fixed issue with cursor location in a new split
0.44.0 Released
It seems we're still sticking with this 2-month release cycle. 0.44.0 has been released and is primarily a bug-fix release with a ton of defects fixed. In addition to last month's list of fixes, 0.44.0 includes the following changes:
- Fixed XML tag 't' text object to ignore JSP tags
- Fixed issue where accidentally using XML tag 't' text object in a non-XML file would cause StackOverflowError
- Fixed issue with multi-character mappings affecting regular commands
- Fixed issue to keep cursor visible when swapping visual selection sides
- Fixed issue where named register was sometimes still active after an operation
- Modified behavior of new "syncmodifiable" property
- Now a string rather than a boolean, valid values are 'matchreadonly' and 'nosync'
- 'matchreadonly' will set Vrapper's read-only flag to the state of Eclipse's read-only flag (this is the default)
- Other miscellaneous improvements of fixes made last month
Split Editor Plugin changes:
- Added support for ':split' commands in detached windows
- Fixed 'gt' behavior
- Added ':wincmd n/p' and '<C-W>gt/gT' (which can be mapped to 'gt/gT')
- Fixed issue where a cloned editor would place its cursor at the beginning of the file
Updates to unstable update site
Time for your monthly status update on Vrapper. We've got another long list of changes in the last month since 0.42.0 was released.
First of all, there was a defect in 0.42.0 where the '?' command (reverse search) simply didn't work. I was tempted to release a 0.42.1 with this defect fixed since it seems like such a fundamental feature. However, it actually took a couple weeks for anyone to find it. This tells me that the '?' feature isn't actually used that often. So we've fixed this defect on the unstable update site but I think it can probably wait for 0.44.0 to be in a stable release. If you actually use the '?' feature a lot and noticed it was broken, you'll have to update to the latest unstable build or wait another month to receive the fix. Sorry for breaking such a basic feature.
On to the list of changes since 0.42.0 was released:
- Added 'N%' feature to jump to a percent of the file
- Add searches from '*' and '#' to search history
- Added support for searches with '\<' and '\>'
- Maps to Eclipse's '\b' regex; we're still using Java regex under the hood
- Fixed issue where '?' (reverse search) was broken
- Fixed issue with using counts before a register switch command
- Fixed issue with using counts before an omap'd command
- Fixed issue with using counts and InsertMode
- Fixed issue with using counts after a command and before a motion
- Fixed issue with 'w' not jumping over windows line-endings
- Fixed issue where commands that take arbitrary characters (f/F/t/T/m) were affected by omap mappings
- Fixed issue where 'scrolloffset' and 'scrolljump' were ignored when jumping to a mark
- Fixed issue where Vrapper appeared to modify read-only files
- Added 'modifiable' and 'syncmodifiable' to set 'modifiable' when Eclipse says the file is read-only
- Fixed issue where Vrapper would re-enable itself if Vrapper was disabled and text was selected (while 'visualmouse' option set)
- Fixed issue with cursor position in '(insert) VISUAL' mode
- Fixed issue with double-clicking to select a word in '(insert) VISUAL' mode
- Fixed issue with deleting too many pending characters during a mapping in InsertMode when unprintable key presses (Ctrl/Alt) were used
- Fixed long-standing annoyance where cursor would appear after the end of a line when clicking with the mouse
- Other various internal fixes (refactoring)
0.42.0 Released
It seems springtime brought some new life for Vrapper development after such a slow winter. 0.42.0 has been released and just look at the list of changes made in the last month (included in 0.42.0):
- Added new plugin for exchange.vim port
- based on https://github.com/tommcdo/vim-exchange
- cx<text object> highlights a text object
- cx<text object> again swaps text object with highlighted text object
- Added support for 'gvimargs' property
- Defines args sent to 'gvimpath' for use by :vim command
- Uses placeholder strings {line}, {col}, and {file}
- Defaults to: +{line} -c normal zv{col}| -c set nobackup -f -n {file}
- Added support for 'ad hoc delimiter' m<char>
- Based on a Vim patch which has not yet been merged into Vim
- Google Groups discussion
- Use m<char> with i/a to match strings delimited by any arbitrary <char>
- For example, 'vim*' will select (in VisualMode) the text between two '*' characters
- **Modified methodtextobj.vim plugin to use 'f' rather than 'm' to avoid this collision**
- Added support for '(insert) VISUAL' mode
- Highlighting text while in InsertMode moves into '(insert) VISUAL' mode for a single visual operation, then returns to InsertMode
- Added support for ':let @<char>=' to set register contents via command-line
- Using ':let' ONLY supports setting registers right now
- Added ability to map '|' character using '<BAR>'
- Fixed issue with Vrapper not re-initializing when Eclipse re-uses editors
- For the "Close editors automatically" feature in Eclipse
- Fixed issue with :eclipseaction from command-line of an editor
- Fixed issue with :eclipseaction being defined statically for all editors
- Fixed issue with :surround command in Surround.vim plugin
- Fixed issue with mappings which use '<' or '>' character
- Fixed issue with search strings that end in a backslash
- Fixed issue where :t/:move/:copy were requiring a space after the command (which Vim doesn't require)
- Fixed issue with map and noremap not including omap
- Fixed issue with cursor position when exiting visual line mode
- Fixed issue swapping between beginning and end of a visual selection when Windows line-endings are present
- Fixed issue where having a visual selection, moving into command-line mode, then hitting <ESC> didn't clear the selection
- Fixed issue where executing a macro wasn't a single undo-able operation
- Fixed issue with visually selecting the last character in a file
- Fixed display issue when restoring a reversed selection
- Refactored how text objects are defined to better support plugins
I occasionally like to include some shameless self-congratulation when releasing a new version. I searched Twitter for 'Vrapper' and here are some of my favorite tweets about Vrapper. Thank you for all the love!
@RobertFischer: Installed Vrapper and rebooted Eclipse. The skies opened opened up, angels sang, a tear came to my eye. IDE Heaven.
@bigtbigtbigt: Just discovered Vrapper for Eclipse after a long session of coding (I'm new to @EclipseFdn). I am in heaven!
@yottamoto: Just discovered the vrapper VI plugin for eclipse (http://vrapper.sourceforge.net/home/ ). Now, my day is made, And possibly, the rest of my days also.
@NicolasBrailo: Vrapper: a real text editor for Eclipse
@jmaicher: How could I have used eclipse without vrapper (vim-like editing in Eclipse)? Awesome tool, it just works! <3
@mojavelinux: OMG, my dev environment is complete! Just discovered vrapper, a *lightweight* vim mode for all #Eclipse editors
Updates to unstable update site
It's been another slow month but I might as well give an update with the changes to the unstable update site since 0.40.0 released:
- Added support for '@:' to repeat last command-line command
- Added support for ':marks' command
- Added support for ':reg[isters]' command
- Fixed issue with 'gv' after modifying lines
- Fixed issue with visual mode editing at the end of a file
0.40.0 Released
0.40.0 has been released. This release is smaller than most but I'm keeping with my two-month release cycle one more time. The following changes were added since the last status update and are included in 0.40.0:
- Created new optional plugin for clang-format
- Added support for ':y[ank] [x]' to yank into register
- Added support for 'iskeyword' property
- Added support for ':xa[ll]'
- Added support for 'startnormalmode' property
- When true, always start in NormalMode after changing tabs
- Fixed issue with ';' after 'T'
- Fixed \c and \C in substitution definitions
- Fixed issue where <S-Space> wasn't being recognized
I'd like to thank all the contributors who continue keeping this project going even when I'm too busy to spend time with it myself. Your dedication helps keep this project alive!
Updates to unstable update site
As I mentioned in my last post, real life has been getting in the way of me spending time with Vrapper. The holidays certainly didn't help things either. This was a slow month for Vrapper but here's your monthly status update. The following changes have been made to the unstable update site:
- Added support for 'omap' commands
- Added support for :tabs command
- Added support for '[[', ']]', '[]', and ']['
- Fixed issue with 'O' near a blank line with Windows line-endings
- Fixed issue using counts with mapped keys
I'll probably still release 0.40.0 in a month but after that I might relax my two-month release cycle to be whenever a release is worthwhile.
0.38.0 Released
Still sticking with our two-month release cycle, 0.38.0 is now released. Changes since the last status update (included in 0.38.0) are:
- Added :set contentassistmode
- Enables <c-n> and <c-p> in content-assist dropdown
- Use camap to map <c-n> or <c-p> to other keys
- Added :startinsert command
- Added 'method text object' optional plugin
- Fixed issue with chaining vi{i{i{
- Fixed autocmd when changing tabs
- Fixed v%
- Fixed 'dw' on last word of a line with Windows line endings
- Fixed Alt key handling on keyboards with AltGr
- Fixed issue with newlines when pasting text
Real life has been getting in the way recently, preventing me from spending time with Vrapper. I'll do my best to stay on top of defects and feature requests but I'm afraid I might not be able to continue releasing every two months. Or at least, the amount of changes in a given two-month period might not be enough to justify a release. We'll see how it goes.
Updates to unstable update site
It's time for your monthly status update on Vrapper. Here are the current changes on the unstable update site. Please feel free to install the latest build on the unstable update site and let us know if you find any defects.
- Fixed issue where escaped characters were being skipped with t/f motions
- Fixed issue with visual block mode starting on an empty line
- Fixed autocmd on multi-page editors (like XML Editor)
- Fixed Ctrl+I in NormalMode (and added TAB in NormalMode for the same operation)
- Added eclipseuiaction for mapping any Eclipse operation that pops up a dialog
- Added support for [m, ]m, [M, and ]M
- Added support for :setlocal command
- Added support for shiftround setting
The following changes modify existing behavior from previous versions of Vrapper:
- Refactored >> and << to use shiftwidth, tabstop, expandtab, and shiftround settings rather than using Eclipse's settings
- Enable regexsearch property by default. This matches Vim behavior more closely.
0.36.0 Released
In keeping with our two-month release cycle, I have released Vrapper version 0.36.0. There weren't too many changes from last month and they were almost entirely bug fixes. The changes since the last status update (included in 0.36.0) are:
- Fixed repetition of delimited text
- Fixed replace mode in macros
- Fixed Ctrl-H (for backspace) in InsertMode
- Fixed '\t' in substitution replace
- Fixed numpad 'return' mapping to 'enter'
- Fixed incsearch
- Added support for C pre-processor conditionals with '%'
- #if, #ifdef, #else, #elif, #endif
If you run into any issues with this release, please file an issue on our GitHub project:
https://github.com/vrapper/vrapper/issues
I'm not sure how much testing our unstable update site really gets since we had to rush out a 0.34.1
with the last release. I'm hoping that doesn't happen again but Vrapper just gets more features
and not everything is covered by our unit tests. Fortunately we have a constantly growing userbase
that helps us find those obscure defects. Thank you for all your support and keeping Vrapper alive!
Updates to unstable update site
Time for another monthly status update on Vrapper. Our last release added a lot of new features so this last month has been mostly defect fixing. The occasional new feature or two has been added though. The unstable update site currently includes the following changes from 0.34.1:
- Fixed issue with 'S', 'cc', 'Vs', and 'Vc' on the last line of a file
- Fixed issue where ':source' couldn't handle absolute paths
- Fixed ':eclipseaction!'
- Fixed Ctrl-R in command-line mode
- Fixed issue where substitution 'c' confirm would match on a replace
- Fixed issue with 'i_ctrl-o' followed by ':<command>'
- Fixed visual block selection on the last line of a file
- Fixed visual block selection with horizontally scrolled view
- Added support for 'i_ctrl-t' and 'i_ctrl-d'
- Added support for 'g~'
- Added support for '!' in NormalMode
- Added support for pipe '|' to chain commands
- Added support for ':move' and ':copy' without a line range definition
- Added support for `:split <filename>` in Split Editor plugin
- Refactored sticky column handling
- Refactored newline handling when pasting text
- Refactored function keys (F1-F20) mapping
- Refactored key handling of certain Ctrl keys
There are still plenty more defects and feature requests to address but I'm constantly amazed by how much we get done each month. I guess I'm just shocked that a Vim plugin for Eclipse requires monthly status updates and a 2-month release cycle. But, it seems we're doing something right, we've had over 1,500 installs via the Eclipse Marketplace for two months in a row!
0.34.1 Released
I released 0.34.0 last week and a number of people found defects. One defect in particular (where the cursor would disappear on Linux systems) was major enough to warrant a new release. I've released 0.34.1 with that defect fixed along with a couple others. Changes between 0.34.0 and 0.34.1 are:
- Fixed issue on Linux systems where cursor would disappear during horizontal movements
- Fixed issue where <C-[> was ignored
- Fixed issue where :sort was ignoring selections
- Fixed 'last insert mark' at the end of a file
- Fixed HOME and END behavior
I apologize to anyone that was frustrated by these defects after upgrading to 0.34.0. It seems the unstable update site isn't being tested as much as I'd hoped. I may have to introduce some concept of a 'release candidate update site' which isn't updated as often as unstable but provides our users who don't want an "unstable" build to play with new builds before I declare them "stable".
0.34.0 Released
As I mentioned in my previous post, this is a big release for us. This release adds support for the three most-requested features in Vrapper:
- Split Editor commands (:split, :vplit) via optional plugin
- Visual Block Mode
- Confirm 'c' flag in substitutions
There are plenty of other feature requests we can work on but those are the big three that I've heard from the most people. Visual Block Mode still has some quirks moving beyond line endings and dealing with tabs but it should be usable at this point. In addition to those three features, here are the following changes since the last post (included in 0.34.0):
- Added 'cleanindent' option to control whether auto-indent introduced with 'o' should be cleaned up if no text is entered on the new line
- Added support for '\=@x' in substitutions to replace with register contents
- Added support for 'vS' and 'vgS' in Surround Plugin
- Fixed behavior with AltGr on German keyboards
- Fixed issue with using arrow keys in mappings
- Other miscellaneous defect fixes
I hope everyone continues to enjoy Vrapper, thank you for all your support!
Updates to unstable update site
It's time for your monthly status update on Vrapper. When I released 0.32.0 last month I mentioned that I received a lot of help from contributors who really knew what they were doing (way more than I do). Those same contributors have been extremely productive this month to the point that I feel like I've been relegated to a Project Manager position. Just look at what they've accomplished in this last month:
- Add support for 'gv' and 'gi' commands
- Add support for marks: '< '> '[ '] '^
- Add support for global marks (A-Z and 0-9)
- Add support for Ctrl+O while in InsertMode
- Perform a single NormalMode command then return to InsertMode
- Add support for Ctrl+U in InsertMode
- Add support for Ctrl+X-Ctrl+L sentence completion in InsertMode
- Add support for Ctrl+U in CommandLineMode
- Add support for Ctrl+Y in CommandLineMode
- Add support for :! and :r! to execute a shell command
- Add support for line ranges when using eclipseaction commands
- Add support for parameters with eclipseaction commands
- eclipseaction sc org.eclipse.ui.views.showView(org.eclipse.ui.views.showView.viewId
=org.eclipse.ui.console.ConsoleView) - Add support for 'autocmd' in .vrapperrc for editor-specific bindings
- autocmd "C/C++ Editor" eclipseaction gv org.eclipse.cdt.ui.edit.text.c.select.last
- au "CMake Editor" nnoremap <CR> gf
- Add support for pasting to CommandLineMode with Ctrl+V
- (*without* unbinding Paste from Eclipse!)
- Add configurable option 'exitlinkmode' to disable Vrapper's attempt to exit to NormalMode after Eclipse performs certain text operations
- Add support for custom surround definitions in our Surround Plugin
- Introduce new Split Editor Plugin
- :split, :vsplit, :wincmd, Ctrl+w commands, etc.
- Requires Eclipse 4 (sorry Eclipse 3.x users)
- Introduce new Plugin for port of argtextobj.vim
- Treats method arguments as text objects
- http://www.vim.org/scripts/script.php?script_id=2699
- Incremental improvements on cursor motion within our still-unstable VisualBlockMode
- Whole mess of miscellaneous defect fixes
That's a lot of changes in a single month and I haven't been able to spend time with each new feature. It may take some extra testing to make sure nothing fell through the cracks. Anyway, if this next month is anything like the last month then 0.34.0 is looking to be a HUGE release for us.
0.32.0 Released
Keeping with my two-month release cycle, 0.32.0 is now out. In the last month I got a lot of help from contributors who actually know how to navigate the Eclipse API. They were able to fix a bunch of defects which I had no hope of ever fixing myself. I'm amazed at what they've been able to do already.
These are the changes since the last news update (included in 0.32.0):
- Added support for new ipmotion (improved paragraph) optional plugin
- Added support for XML tags in our Surround.vim optional plugin
- Added support for :tabrewind and :tablast
- Fixed issues with :only and :qall
- Fixed <number>gt
- Fixed issue where :q didn't work with some file types
- Miscellaneous minor fixes to text object parsing and visual line selections
Also... Don't tell anyone, but we've started implementing visual block mode. The cursor doesn't always move correctly and it doesn't support 'y' or 'p' yet but it is there. It isn't stable so don't expect too much from it though. We hope to have the feature ready in the next release.
Updates to unstable update site
I've hit my stride with a two-month release cycle so I'm also trying to make a habit of posting status updates once a month. In addition to the usual requests for more Vim features, in the last month I received a couple requests for features which aren't in Vim but our users wanted anyway.
The unstable update site currently has the following changes:
- Add support for '\c' and '\C' in search to temporarily override ignorecase setting
- Add support for '_' motion
- Add support for ':e!' to revert file
- Add support for "0-"9 and "- delete and yank registers
- Add support for ':maximize' command to maximize editor area
- Add support for ':copy' and ':move' operations
- Useful with line range operations ':10,20 copy 140'
- Add support for ':vim' command
- Launches current file in gvim (so you can do things Vrapper doesn't support)
- After saving and quitting gvim, Eclipse will reload the file
- Path to gvim is defined by 'gvimpath' property (defaults to /usr/bin/gvim)
- Refactored XML text object parsing to be more compliant with Vim
0.30.0 Released
Looks like I'm hitting my stride with a two-month release cycle. 0.30.0 is released and ready for use. There were only a few changes since my last update which were included in this release:
- Added support for :retab operation
- Added support for partial command-line names
- e.g., :tabprev, :tabpre, :tabpr, etc. all work now
- Reimplemented paragraph text objects to match Vim's behavior
The partial command-line names work pretty well as long as there isn't a name collision. For example, ':tabne' could be ':tabnew' or ':tabnext'. Vim has some way to define precedence but Vrapper will just fail when this happens. I think the current solution should work in most cases but there will be a couple places where you may still need to be explicit with the name. Either way, this is an improvement over the previous implementation which required me to explicitly define every partial name supported. Now I only need to explicitly define the collisions like ':tabn' going to ':tabnext'.
Also, as I mentioned in my previous post, there was a lot of code submitted by contributors this release. I'm glad people are willing to help me out and constantly improve Vrapper. Thank you for helping to keep this project alive!
More updates to unstable update site
It's been over a month since my last update so I decided to look through our commit log and see what we've been working on lately. Here is the list of changes to the unstable update site since my last news post:
- Added support for '**' in path variable
- e.g., :set path=src/main/java/**
- Tells :find to search all subdirectories for a filename
- Added support for :source
- You can now "source .vimrc" in your .vrapperrc
- Added support for 'cursorline' option
- enable/disable highlighting line with cursor
- Create new file when ":e <filename>" doesn't exist
- Added support for :tabonly (alias of :only)
- Added support for :tabf (alias of :find)
- Allow '+' to be omitted in line range operations
- ".5" == ".+5"
- Fixed behavior with quote text objects to match Vim's behavior
- ci" will only look for quotes on current line now
- Fixed issue with escaping delimiter character in substitution
- Fixed a couple defects in sentence motions, paragraph motions, and joining multiple lines
I've received a lot of help from contributors in this last month, which makes me feel like things are moving quickly. I still think a two-month release cycle works well for us though, so I'll probably wait until the end of March to release this next version.
Updates to unstable update site
When I released 0.28.0 a couple days ago I mentioned that I wanted to release it mostly because I had a pile of feature requests I was itching to work on. Well, it's less than a week later and I've already got a bunch of new features available on the unstable update site. They are:
- Add support for '(' and ')' sentence motions
- Add support for Shift key in mappings '<S-' (e.g., <S-Left>)
- Add support for Alt (meta) key in mappings '<A-' and '<M-' (e.g., <A-x>)
- Add support for 'g;' and 'g,' to traverse changelist
- Add support for `` to jump to last cursor position
- Similar to '' to jump to last line position
- Fix issue where modifying text above a mark would offset that mark's position
- Mark positions should now stay accurate as the document changes
It's been a productive couple of days.
0.28.0 Released
The code stayed relatively idle for the last couple weeks so I'm releasing 0.28.0. It includes all the changes listed in the previous news post along with a few other minor changes:
- Added support for :bd, :bp, :bn, and :ls
- Added basic support for 'g;'
- Only goes to previous edit location, no change lists
- Fixed off-by-one issue with cursor position after exiting VisualMode
We have a pile of new feature requests that I'm itching to work on so I wanted to get 0.28.0 out into the world before I start making some destabilizing changes.
Finally, I like to use my release announcements to include a little bit of shameless self-congratulation. Vrapper has gone 7 consecutive months with 800+ installs via the Eclipse Marketplace in each month! There have been a couple months where we almost cracked 1,000 installs in a single month but it hasn't happened yet. This means Vrapper is holding its place at #50 for installs across all 1,500 Eclipse plugins available via the Marketplace! I think that's pretty impressive.
Updates to Unstable Update Site
I've received a lot of help from a contributor in the last couple weeks so a lot of minor features have been added as he learns the code. I'm hoping to release the next stable version at the end of January since it appears I've hit my stride with a two-month release cycle.
The unstable update site has been updated with the following changes since 0.26.1:
- Added optional PyDev plugin for Python Vrapper users
- Added support for <C-a> and <C-x> increment/decrement operations
- Added support for :only
- Added support for :tabnext and :tabprevious
- Added support for :tabnew (invokes Eclipse's New File dialog)
- Added support for :update (performs :w)
- Added support for :ascii and 'ga'
- Added support for :qall and :wqall
- This throws a benign NullPointerException which I can't figure out
- Added basic support for :sort
- supports '!', 'i', 'n', 'x', 'o', 'u' flags
- supports /pattern/ with strings only (no regex)
- Shift+Insert will now paste clipboard contents in CommandLineMode
- Fixed problem with multi-character operations whose first character was also used in a mapping
As with all Ctrl key bindings in Vrapper, you have to unbind those keys in Eclipse first for Vrapper to receive them. The same is true of Shift+Insert since Eclipse has a mapping for that too.
Experimental Optional PyDev Plugin Created
Vrapper has a couple optional plugins to provide support for some Vim commands which require knowledge of the underlying programming language. So far, we only had plugins for Java (JDT) and C/C++ (CDT). I realized today that it would be trivial to create an optional plugin for PyDev support and a couple people might actually appreciate it. So I've created an optional PyDev Vrapper plugin and tossed it up on the unstable update site for testing.
The PyDev plugin only provides a couple extra commands (similar to our JDT and CDT plugins):
- Ctrl+], gd, gD = Go To Declaration
- gR = Rename Element
- gc<text object> = Toggle Comment
- gcc = Toggle Comment (current line)
- gc also works in visual mode
So there you have it. Not a whole lot of extra features but some people might find use for them while writing Python. Give it a try and hopefully it will become stable enough to include in the next release of Vrapper!
0.26.1 Rushed out the door
I released 0.26.0 last week but today I found a defect re-introduced that a lot of people had issues with the first time around. So I've rushed a 0.26.1 release in the hopes of delivering a fix before anyone noticed I re-introduced that defect.
The problem was with multi-character mappings while in Eclipse's SmartInsert mode. A surprising number of people use mappings like "imap jj <ESC>" for exiting insert mode. There was a long-standing defect where entering the first character 'j' while inside parentheses, and not completing the mapping, would jump the cursor in front of that first 'j'. So if you had the 'jj' mapping and typed something innocuous like "for(int j=0;" you would end up with "for(int =0;j)".
The root of the issue is with Eclipse helpfully inserting that closing ')' for you. It somehow throws off Vrapper and offsets the cursor. This means I can't unit test it because it needs Eclipse interjecting itself for the defect to occur. Which means it's easy to miss if I re-introduce it.
So anyway, defect re-introduced, defect re-fixed (I hope).
0.26.0 Released
I made a couple more fixes and features since my last news post. I feel pretty confident in those changes and I don't have anything else to work on so I'm releasing a new version of Vrapper.
In addition to the file-opening operations described in the previous post, I've made the following changes:
- Added support for Ctrl+W (delete word) in command-line modes
- Added support for softtabstop setting
- Added support for gd and gD in CDT and JDT plugins
- Go to declaration, same as Ctrl+] in those plugins
- Added ability to map function keys (F1-F20)
- Display "X substitutions on Y lines" after a multi-line substitution
- Fixed backspace in replace mode
- Fixed single-character mappings in insert mode
- Fixed '' (return to previous position) after jumping to a declaration (CDT/JDT only)
- Fixed cursor position after yanking visually-selected text
And now for some shameless self-congratulation. Vrapper appears to be pretty popular. We now have over 10,000 installs via the Eclipse Marketplace! Also, our GitHub Project has been "starred" by over 250 users and has 40 forks. Very impressive. I take this as a sign that we're doing a good job. I'm glad everyone continues to enjoy Vrapper!
Updates to Unstable Update Site
I've updated the unstable update site with a few new features. Someone made an innocent feature request for the 'gf' command and I ended up implementing a bunch of features related to opening files. These features can be broken into two categories, the ':e' operations and the ':find' operations.
- :e operations
- :e <filename> - opens a file relative to current working directory
- :cd <directory> - changes current working directory
- :pwd - prints current working directory
- :set autochdir - automatically change working directory to the parent of whatever file is active
- :find operations
- :find <filename> - opens a file from a directory in the path
- :set path=<comma-delimited list of dirs> - list of directories to search in path
- gf - takes filename under cursor, finds it in path, and opens the file
- v_gf - similar to gf but takes the current visual selection as the filename
There are a couple things to note about my implementation. I see Vrapper as an Eclipse plugin and not a generic Vim replacement so each 'path' and 'current working directory' is rooted at the Eclipse Project root of whatever file is active. For example, ':e src/main/java/Foo.java'. So, if you have two files open from two different projects then the project directories searched will depend on which file is active when you enter command-line mode.
I don't plan on ever searching absolute paths on the filesystem, but if people don't like being rooted at the Eclipse Project level I could be convinced to go up one level further so you could specify the Eclipse Project name as the first-level directory. For example, ':e MyProject/src/main/java/Foo.java'.
Finally, ':e', ':find', and ':cd' all support tab-completion like in Vim. I'm hoping to also add tab-completion for command-line command names but I haven't done that yet.
0.24.0 Released
I don't like sitting on unreleased features when I'm not working on anything new. If I have a list of things completed but none of them are major, there's nothing that says I can't release them into the world. So, I am now releasing version 0.24.0 of Vrapper. This is mostly a minor bug fix release but since I have nothing pending right now, I might as well give you what I have.
In addition to the miscellaneous bug fixes and minor features listed in my previous news post, I've added the following changes:
- Refactored Ctrl+u/Ctrl+d to scroll by half-screen, not fullscreen
- Add support for '?' on all command-line options, not just booleans.
- For example, ':set textwidth?' or ':set clipboard?' to see current value.
- In our optional Surround plugin, added support for 'yss' to surround entire line
That's a pretty short list of changes in the month since my last news post. It feels like things are slowing down here. The only major features left pending are the ones I don't feel confident implementing myself (see the previous news post about my inadequacies with the Eclipse API). I'll still do my best to fix any defects that may arise, but I have nothing new on the horizon. Other than that, hurray! A new release!
Current state of the Unstable update site
Things have been pretty slow here since releasing 0.22.0. As far as I can tell, the only major features Vrapper has left to implement are visual block selection and split editor views. Unfortunately, both those features rely heavily on poking and prodding the Eclipse API just right and I haven't yet found the magical incantation to do either one of them. I'm afraid I'll need outside help if I'm ever going to get those features working.
With that said, I have found time to fix/implement a couple things in between sessions of banging my head against the Eclipse API. The unstable update site currently has the following changes from 0.22.0:
- Fixed multi-character mappings to <ESC> when inside parentheses
- Vrapper now displays pending characters when typing multi-character mappings
- This is more aligned with Vim behavior and appears to work in all cases now
- Fixed behavior of >i{ to match Vim
- Preserve counts sent to '.' command for future '.' executions
- Fixed '*' and '#' when regexsearch is enabled.
- Added support for '+' and '-' line motions
- Fixed issue with exiting InsertMode at the end of a file
- Added support for 'gq' paragraph formatting
- Refactored 'gt' and 'gT' commands for Eclipse Juno
- 'gt' and 'gT' should work correctly but '<number>gt' still doesn't work
- 'gt' and 'gT' in Eclipse 3.x should still work but it won't wrap around the first and last tabs anymore
- Fixed issue with newline characters being shared between editors
- If you open both a Unix file and a Windows file Vrapper will keep the newlines straight
- Defined behavior for the <END> key
- You'll need to unbind <END> in Eclipse before using it in Vrapper operations
I don't think any of those changes are very big so I'm not itching to release the next version of Vrapper. We'll see what else I can add in the near future. If things remain slow and no defects arrive, I might release it.
0.22.0 Released
Aside from a couple minor defect fixes, the code was idle for the last 2 weeks. So, I'm releasing 0.22.0. There are still a couple defects I'd like fixed, but I want to get 0.22.0 out now for a couple reasons. First, I want to get the substitution feature out to everyone that has been waiting so patiently for it. Second (and probably more importantly), version 0.20.0 throws a nasty stack trace during startup in Eclipse Juno (4.2) which leaves Vrapper in a weird state. I fixed that issue in 0.22.0 so Vrapper will start correctly in Ecipse Juno for anyone who has already upgraded. However, I haven't yet gone through and verified all functionality against Eclipse Juno so there may be more problems.
Here are a couple known defects that I wanted to fix but didn't want to delay 0.22.0 for:
- 'u' undo operation doesn't work in some files (#86)
- This is consistently a problem in certain XML files like Maven pom.xml files but is otherwise difficult to reproduce.
- If you run into this issue, Eclipse's normal Ctrl+Z undo will still function
- 'gt' has inconsistent behavior in Eclipse Juno
- I'm going to do my best to refactor this feature so it works in both Eclipse 3.x and 4.x but I'm not sure if that will be possible
- I don't want to break compatibility with the Ecipse 3.x series so quickly after 4.2 releasing
Aside from those issues, everything is looking good. See the previous news posts for all the features/fixes we've included since 0.20.0. I think it's a pretty impressive list given that 0.20.0 was released less than 2 months ago.
2 weeks later, no new release
2 weeks ago, I said that if the code sat idle for 2 weeks I'd release 0.22.0. Well, it didn't sit idle. So I'll try again; if the code can sit idle for 2 weeks I'll release version 0.22.0.
Changes since last news posting are:
- Added basic support for :g, :g!, :v
- Supports 'd', 's' and 'normal' operations
- :g/foo/d
- :g/foo/s/bar/baz/
- :g/foo/normal wwdw
- :'<,'>g/foo/d
- :help :g
- Added support for 'unnamed' clipboard
- Uses system clipboard
- :set clipboard=unnamed
- Added support for 't' text object
- dit = delete contents of XML tag the cursor is within
- dat = delete contents and the XML tag the cursor is within
- Removed H, M, and L mapping from JDT plugin
- I don't know why they were overriding the default H, M, and L operations
- Fixed inconsistency with mouse click not updating sticky column
Further updates to unstable update site
Work is still progressing quickly towards a 0.22.0 release. If I can just let the code sit idle for 2 weeks I'll probably release it. There's nothing else pending that I plan on adding but we've had some great contributions from others lately and I don't want to rush them.
Changes since last news posting are:
- Added history for all command-line based modes
- Use up/down arrow
- Added cursor to all command-line based modes
- Use left/right arrow
- Added support for 'ZZ' (like :wq) and 'ZQ' (like :q!)
- Added support for r<character> in visual mode
- Added more tweaks to the new substitution command
- Fixed issue with '.' after performing a 'R' replace
- Fixed issue with '.' after performing a visual-mode change
- Fixed issue with '.' after performing a 'gt' or 'gT'
- Fixed issue with '%' in visual mode
- Fixed compatibility issue when joining a line that begins with ')'
Looking back at that list, I only worked on the easy things. All the difficult pieces were submitted by contributors. Thanks for all your help!
Updates to unstable update site
Vrapper version 0.20.0 was released two weeks ago and I already feel like I'm ready to release 0.22.0. It's been a productive weekend for me with lots of new features. I promise to wait a little while to make sure these features are stable but I think there is already enough here to be a new release.
The unstable update site currently includes the following features:
- Added support for the much-requested substitution feature!
- Supports the 'g' and 'i' flags
- Supports Eclipse's flavor of regex
- :s/foo(.+)foo/bar$1bar/
- Supports '%' and any line range definition
- :s/foo/bar/g
- :%s/foo/bar/g
- :2,5s/foo/bar/g
- This feature will require lots of testing. It's extremely complex and nuanced. I'd like to hope that this implementation can cover the majority of use cases though.
- Added support for '&', 'g&', and ':s' for repeating last substitution
- Added support for '+' and '-' without leading '.' in line range operations
- :-1,+1d == :.-1,.+1d
- Added support for searches in line range operations
- ?something? searches above current line, /something/ searches below current line
- :1,/foo/d
- :?something?,+4y
- :?something?,/foo/y
- Added mapping for Ctrl+N and Ctrl+P to Eclipse's word completion operation
- Eclipse operation Alt+/
- Not quite content assist, but it's close
- Refactored save operations so they play nicely with AnyEdit plugin
- Fixed an issue in Vrapper when 100+ files were open in Ecilpse
- Fixed issue with performing 'undo' after disabling Vrapper
- Added support for 'gR' to rename element
- Added support for 'gc' to comment/uncomment lines
- Added support for '=' to auto-indent lines
0.20.0 Released
I let the code sit idle for two weeks and no defects were filed. Therefore, I'm releasing Vrapper version 0.20.0 as promised. Rather than listing the changes since 0.18.0, I'll let you look at the previous three news posts where I listed them as they were introduced.
For anyone using the unstable update site, version 0.19.20120428 is the same as 0.20.0.
Thanks to all the contributors and users of Vrapper! According to the statistics on Eclipse's Marketplace, Vrapper is the #1 vim plugin for Eclipse! http://marketplace.eclipse.org/metrics/installs
As of this writing, Vrapper is #56 out of the 1,340 total plugins installable from Eclipse Marketplace. Emacs+ is #46 but I won't take that personally. There is of course the caveat that this only tracks installs through Eclipse Marketplace. This means I have no idea how we rank compared to eclim since they use their own installer.
0.20.0 Release Candidate
Things have been pretty slow lately and I'm running out of defects/feature requests I'm able to work on. That's typically a sign that we should be able to release soon. I've updated the unstable update site with version 0.19.20120428. I'm considering this a Release Candidate. If this version can go 2 weeks without any major issues found, I'll consider it stable.
There are only a few differences between this unstable version and the previous one:
- Prevent pageUp/pageDown from being stored in the '.' register
- Add support for '~' in VisualMode
- Add support for operations (yank, delete) on line ranges in CommandMode
- :3,5d
- :3,5y
- :.,$y
- :.+3,$-2y
- Add support for i_Ctrl-w
- Delete previous word while in InsertMode
- You'll need to unbind Ctrl+W in Eclipse before this feature will work
More updates to Unstable update site
I've updated the unstable update site again. I'm mostly just posting here so I can keep track of the changes since 0.18.0. If people are actually playing with the unstable update site and want to know what to test, well, that'd just be an added bonus!
- Implemented [{, [(, ]}, and ])
- Similar to '%' except the cursor doesn't need to be on the matching parenthesis/bracket
- Add support for Ctrl+R while in InsertMode
- Pastes contents of a register without leaving Insert Mode
- see :help i_ctrl-r
- If you have Ctrl+R mapped in Eclipse, you'll need to unbind it for this feature to work
- Add support for Ctrl+A while in InsertMode
- Similar to Ctrl+R, but it pastes the previous insert register without prompting the user
- see :help i_ctrl-a
- You'll need to unbind Ctrl+A in Eclipse before this feature will work
- Add support for Ctrl+Y/Ctrl+E while in InsertMode
- Inserts the character above/below the cursor without leaving InsertMode
- see :help i_ctrl-e
- You'll need to unbind Ctrl+E/Ctrl+Y in Eclipse before this feature will work
- This feature has some quirks. Vrapper doesn't always know which column the cursor is in so it could grab the wrong character. If this happens to you, do a little 'hjkl' movement and Vrapper will figure out the column.
- Added support for _vrapperrc for Windows people who have difficulty creating the .vrapperrc file
- Fixed defect when opening files while Vrapper is disabled
Please file issues on our GitHub project if you run into any problems. I'm hoping we can consider these feature "stable" as soon as possible.
Current state of the Unstable update site
We released 0.18.0 less than two months ago and there are already plenty of changes happening on our unstable update site. I'm not sure how long I want to wait before releasing 0.20.0. I don't have any huge changes pending so it might be pretty soon. For anyone playing with the unstable update site, here are the changes since 0.18.0:
- Added '|' (pipe) command to move to column
- Added '@@' command to redo last macro
- Added "_ the blackhole register
- Added ability to check value of boolean settings with :set <property>?
- Modifying search settings (e.g. noic, hlsearch) will now modify current search
- Display 'recording' while recording a macro
- Fixed issue where vw"ap would overwrite the contents of the 'a' register
- Fixed issue with multi-character mappings in files with Windows line-endings (^M)
- Fixed issue with :9999 when last line of file is empty
Thanks to all the contributors for constantly improving Vrapper!
What I'd like to see in Vrapper 0.20.0
Vrapper 0.18.0 is out, time to start looking towards the next release. Of the defects/feature requests already filed, here's what I'd like to see in the next Vrapper release (0.20.0):
- #95 imap ,e <ESC> works but cannot use comma anymore.
- #386 Add support for '@@' to repeat last macro
- #387 Replacing in Visual mode overwrites active register
- #34 Incorrect cursor position after mouse select
- #27 Repeating last visual-mode substitute is incomplete
I'm sure more will be filed as we work, but those are the items I'm looking at right now.
0.18.0 Released
I let the unstable update site sit for 2 weeks and everything looks good. That most recent unstable build has now been pushed to the stable update site. Yay! Another release!
Here are the changes since 0.16.0:
- Added :wa[ll] command to write all dirty editors
- Fixed logic on deleting/yanking last line of a file
- Fixed cursor location on yank
- Removed "moveonyank" setting as it is now irrelevant
- Search results can now be used as text motions
- c/<pattern>, d/<pattern>, y/<pattern>, v/<pattern>
- Move into VisualMode on mouse select
- You can disable this by setting the 'visualmouse' option to 'false' (true by default)
- Fixed cursor location when pasting
- p, P, gp, gP
- Added 'za' operation for toggling fold open/close
- Added <TAB> as a bindable key
- Added <C-c> key binding to mimic <ESC>
- Only works if you unbind <C-c> in Eclipse first
- Added key binding for 'z<CR>' (same operation as 'zt')
- Added configurable option 'imdisable' to disable Input Method when exiting insert mode (useful on Japanese keyboards)
- Added optional vrapper plugins (for CDT, JDT, Surround.vim)
- Fix bug #97 PageUp/PageDown don't work in visual mode
- Fix bug #79 'cw' for single character changes include next word
- Fix bug #70 'dw' on the last word of a line will join lines
- Fix bug #98 Uninstalling vrapper + ADT and now I can't quit Eclipse
Another Update
I had every intention of releasing 0.18.0 this week but instead I ended up fixing another couple defects. I have updated the unstable update site yet again. This version contains two fixes since the last update:
- Fixed defect with 'c2w' command
- Implemented counts for the new v/ feature (v3/{search})
I don't think there are any other defects that should hold up a release. I'll give this current build 2 weeks before I declare it to be the stable release 0.18.0.
Another Release Candidate (0.18.0)
We've made a couple fixes so I've updated the unstable update site. Changes include:
- :{line number} was broken in the last Release Candidate, fixed
- 'ctx' where 'x' not found was broken in last Release Candidate, fixed
- Fixed logic when deleting/yanking last line of a file
- Implemented :wa[ll] command to write all dirty editors
- Fixed cursor location on yank. At least I think we did. Vim isn't always consistent on when to move the cursor and when not to but I think we match vim's behavior now. I've removed the 'moveonyank' setting from vrapper with this fix because it is no longer relevant. Rather than an all-or-nothing setting to move the cursor or not, we now sometimes move the cursor to match vim's behavior.
0.18.0 Release Candidate
The Unstable update site has been updated with the latest version of the code (0.17.20111111). I would like to think of this version as the Release Candidate for the next Vrapper release (0.18.0). Thanks to the help of many contributors I think we have plenty of defect fixes and new features that everyone will enjoy. Please play with this unstable version and see if there are any changes you think we should make before calling it stable.
For those of you keeping track, here are the differences between version 0.16.0 and this Release Candidate:
- Search results can now be used as text motions
- c/<pattern>, d/<pattern>, y/<pattern>, v/<pattern>
- Move into VisualMode on mouse select
- You can disable this by setting the 'visualmouse' option to 'false' (true by default)
- Fixed cursor location when pasting
- p, P, gp, gP
- Added 'za' operation for toggling fold open/close
- Added <TAB> as a bindable key
- Added <C-c> key binding to mimic <ESC>
- Only works if you unbind <C-c> in Eclipse first
- Added key binding for 'z<CR>' (same operation as 'zt')
- Added configurable option 'imdisable' to disable Input Method when exiting insert mode (useful on Japanese keyboards)
- Added optional vrapper plugins (for CDT, JDT, Surround.vim)
- Fix bug #97 PageUp/PageDown don't work in visual mode
- Fix bug #79 'cw' for single character changes include next word
- Fix bug #70 'dw' on the last word of a line will join lines
- Fix bug #98 Uninstalling vrapper + ADT and now I can't quit Eclipse
What I'd like to see in Vrapper 0.18.0
The last version of Vrapper took over a year to be released. I'd like to make sure that doesn't happen again. Of course, I also don't want to release a new version with too few modifications from the previous version. I decided to look at the current list of defects and see which ones I feel are the highest priority (or provide the largest benefit). This of course is very selfish because I'm selecting the defects I've personally run into or new features I would personally use. With that said, this is an open source project. If anyone contributes code to fix some other defect or implement some other feature I certainly won't reject it.
If we could fix the following defects, I think it would be significant enough to be the next release:
- #70 'dw' on the last word of a line will join lines
- #73 % text movement operator doesn't work in visual mode.
- #79 cw for single characters changes include next word
- #81 need d/
please - #97 PageUp/PageDown don't work in visual mode
In addition to those defects, I'd love to fit in these stretch goals. I think we're at the point where these should be feasible.
- #50 Search and replace support
- #59 blockwise-visual missing
- #82 Pasting a search string using the keyboard doesn't work
We're always willing to accept code contributions. If you can come up with a solution for any of the defects listed above, simply initiate a Pull Request on our GitHub project to submit your code.
Testing Help Needed
The unstable update site has been updated to include some optional plugins. These plugins add some language-specific commands for Java and C/C++. We didn't release them as part of 0.16.0 because they haven't been fully tested. We would appreciate it if some of you Java or C/C++ developers out there installed these optional plugins and played with them a bit. Let us know how it goes.
Both the JDT and CDT plugins provide the following commands for their respective languages:
- Toggle comment (gc<movement>)
- Go to declaration (CTRL+])
- Auto-indent (== for current line or =<movement>)
The JDT plugin also has the following shortcuts:
- Rename element (gR)
- 'Refactor' Menu (gr)
- 'Source' Menu (gm)
In addition to those plugins, we implemented a port of a useful vim script called 'surround.vim' (from http://www.vim.org/scripts/script.php?script_id=1697). It isn't a complete port but it's a start.
The Surround plugin works on the 'c', 'd', and 'y' commands. After initiating one of those commands hit 's' followed by one of the following characters:
- a < >
- b ( )
- B { }
- [ ]
- '
- "
- `
For the 'c' command you'll have to select the character that represents what the text is currently surrounded by then the character you want to replace it with. For example, cs"( would replace the surrounding double-quotes with parentheses.
0.16.0 released
Version 0.16.0 has been released. It is not a major release in terms of functionality but it is an attempt to keep the project moving forward. Changes are:
- Added incremental search (:set incsearch)
- Added highlight search (:set hlsearch)
- Added line number toggle (:set number)
- Added show whitespace toggle (:set list)
- Added scrolljump and scrolloff options (:set scrolljump=10 :set scrolloff=10)
- Added commands for lenient word search (g* and g#)
- Center the line after jumping to a line that was far away from the viewport
- Ctrl-V in search/command-line mode pastes text from the clipboard
We're not quite dead
The last release of vrapper may have been over a year ago but this project is not dead. A new version of vrapper will be released soon and this project will hopefully become a little more active in the future.
The purpose of this post was mostly just to make sure I knew how to update the main page. :)
0.14.0 released
Version 0.14.0 has been released. Changes are:
- Corrected line-wise visual mode behaviour on empty lines.
- Yanking text objects moves the cursor on the start of the text object. Use ":set nomoveonyank" for old behaviour.
- Toggling Vrapper enables/disables Vim-emulation for all open editors.
- Visual mode operations may be repeated using the dot command.
- Pasting over selections in visual mode is possible.
- Join lines positions the cursor between the joined parts.
- Added paragraph motions and text objects.
- Bound ctrl-u and ctrl-d to Eclipse actions page-up and page-down.
- Fixed zz command to work correctly with folded sections and added z., zb, zt, z- commands.
- gt and gT behave more like in Vim.
- Pressing caps lock or alt is not interpreted as keystroke anymore, so caps lock and alt can be used in command line mode to input caps and special characters.
0.12.0 released
Version 0.12.0 has been released. Changes are:
- lots of new text objects
- it is now possible to switch from character to linewise visual mode and vice versa by using V and v
- added 'selection' option to control selection behaviour during visual mode
- boolean options can now be toggled (e.g. "set ignorecase!")
- lots of minor bugfixes and improvements