Fork of the vi modes core addin in MonoDevelop.
See the project page and wiki for the latest issues and updates on the development of this addin's features.
Fork of the vi modes core addin in MonoDevelop.
Fork of the vi modes core addin in MonoDevelop.
See the project page and wiki for the latest issues and updates on the development of this addin's features.
Hi
When I trying to open any file after I enabled VimAddin (checkbox "Vi mode") I get blank dialog box (see screenshot below). And when I close this dialog box, monodevelop closes itself too.
Some of the navigation key bindings that used to page up/down the text editor have reverted to the default IDE functions e.g. Find in a recent build of MonoDevelop. It's probably time to take a look at issue 10.
This may take a little while. I think I will incrementally add support for various actions and keep track of the supported actions on this wiki page. Since it's incremental, it may result in some unexpected and surprising behavior while it is in progress, but I hope you'll bear with me.
For example:
G will go to the last line of the file on Mac; But nothing happened on Windows;
:s will save the current file on Mac; But nothing happened on Windows;
Are they bugs?
For example, 3dd
should delete 3 lines into register. Unexpectedly, what happens is that dd
is iterated 3 times separately, and the last line to be deleted ends up in the register. The expected behavior is that all 3 lines should go into the register and, for instance, is able to be pasted as one block.
The addin isn't compatible with XS 6.0
Something that has made my life way easier in Vim is relativenumber
. Specially when combined with number
, which makes it show the line number on the current line, while all others behave as if relativenumber was enabled alone.
If you hit 1G, it should go to line 1, but it goes to the end of the file.
If you hit any other number, 2G, 3G, etc, it works fine.
Try Search > Find... to look for some token. Typing one character causes the popup box to disappear and the VimAddin status area on the bottom of the editor to become greyed out and unresponsive. I end up having to reopen the tab to get it back. The same bug holds for Search > Replace...
I think it has something to do with the fact that it does incremental search?
0 should go to beginning of line, just like $ goes to end of line
Hi @alextsui05!
I'm currently toying with the idea of creating a new vim emulation plugin for XS written from scratch. This is all still pie in the sky right now, but please do let me know if you'd be interested in helping.
It would most likely be written in F#.
Below is my versions:
MonoDevelop-Unity
Version 4.0.1
Installation UUID: 01d9c062-e8b1-4f46-8dd9-91dfa48fc5a5
Runtime:
Mono 2.10.12 (mono-2-10/c9b270d Thu Mar 7 21:38:12 EST 2013
GTK 2.24.16
GTK# (2.12.0.0)
Package version: 210120000
Build Information
Git revision: Release ID:
4558562c6814fa9b97a0da420ca7e3d7293112e4
Build date: 2015-01-08 17:55:00+0000
Operating System
Mac OS X 10.10.3
Darwin bogon 14.3.0 Darwin Kernel Version 14.3.0
Mon Mar 23 11:59:05 PDT 2015
root:xnu-2782.20.48~5/RELEASE_X86_64 x86_64
Currently, we piggyback off of the "Use vi modes" checkbox in the preferences panel in the MonoDevelop IDE and hijack the text editor from the core vi input mode. However, the core vi input mode is obsoleted and will be phased out, so we need to hook into the UI some other way.
Here's a stack trace from my machine, indicating the problem coming from VimAddin.ViEditMode.Search
:
System.ArgumentOutOfRangeException: Argument is out of range.
Parameter name: startat
at System.Text.RegularExpressions.Regex.Match (System.String input, Int32 startat) [0x00000] in <filename unknown>:0
at Mono.TextEditor.RegexSearchEngine.SearchForward (System.ComponentModel.BackgroundWorker worker, Mono.TextEditor.SearchWorkerArguments args, Int32 fromOffset) [0x00035] in /home/atsui/work/monodevelop/main/src/core/Mono.Texteditor/Mono.TextEditor/ISearchEngine.cs:343
at Mono.TextEditor.AbstractSearchEngine.SearchForward (Int32 fromOffset) [0x0001c] in /home/atsui/work/monodevelop/main/src/core/Mono.Texteditor/Mono.TextEditor/ISearchEngine.cs:130
at Mono.TextEditor.TextEditorData.SearchForward (Int32 fromOffset) [0x00008] in /home/atsui/work/monodevelop/main/src/core/Mono.Texteditor/Mono.TextEditor/TextEditorData.cs:1028
at Mono.TextEditor.TextArea.SearchForward (Int32 fromOffset) [0x00008] in /home/atsui/work/monodevelop/main/src/core/Mono.Texteditor/Mono.TextEditor/Gui/TextArea.cs:2252
at Mono.TextEditor.TextEditor.SearchForward (Int32 fromOffset) [0x00008] in /home/atsui/work/monodevelop/main/src/core/Mono.Texteditor/Mono.TextEditor/Gui/TextEditor.cs:1108
at VimAddin.ViEditMode.Search () [0x00000] in <filename unknown>:0
at VimAddin.ViEditMode.RunExCommand (System.String command) [0x00000] in <filename unknown>:0
at VimAddin.IdeViMode.RunExCommand (System.String command) [0x00000] in <filename unknown>:0
at VimAddin.ViEditMode.HandleKeypress (Key key, UInt32 unicodeKey, ModifierType modifier) [0x00000] in <filename unknown>:0
at VimAddin.IdeViMode.HandleKeypress (Key key, UInt32 unicodeKey, ModifierType modifier) [0x00000] in <filename unknown>:0
at Mono.TextEditor.EditMode.InternalHandleKeypress (Mono.TextEditor.TextEditor editor, Mono.TextEditor.TextEditorData data, Key key, UInt32 unicodeChar, ModifierType modifier) [0x00015] in /home/atsui/work/monodevelop/main/src/core/Mono.Texteditor/Mono.TextEditor/EditMode.cs:49
at Mono.TextEditor.TextArea.SimulateKeyPress (Key key, UInt32 unicodeChar, ModifierType modifier) [0x0002b] in /home/atsui/work/monodevelop/main/src/core/Mono.Texteditor/Mono.TextEditor/Gui/TextArea.cs:917
at Mono.TextEditor.TextArea.OnKeyPressEvent (Gdk.EventKey evt) [0x00134] in /home/atsui/work/monodevelop/main/src/core/Mono.Texteditor/Mono.TextEditor/Gui/TextArea.cs:996
at Gtk.Widget.keypressevent_cb (IntPtr widget, IntPtr evnt) [0x00000] in <filename unknown>:0
VSVim has a nice feature where keybindings between Visual Studio and the Vim plugin can be configured, e.g. whether Ctrl + F gets handled by the IDE or by the Vim plugin. There should be a UI menu for this.
[count] G
will move the caret to line [count]
, but in visual mode, it will always go to the end of file.
Version: 1.1.7
The e motion command moves to the last character instead the character after it. E.g. command "de" would left the last character of a word undeleted.
Please support vim-like search and replace:
Like this:
:%s/Foo/Bar/cg
Xamarin Studio
Version 5.9.3 (build 1)
Installation UUID: 87c00a22-99e0-4dfa-8955-1f040d44ad15
Runtime:
Microsoft .NET 4.0.30319.17929
GTK+ 2.24.22 (MS-Windows theme)
GTK# 2.12.26
Xamarin.Android
Not Installed
Xamarin Android Player
Not Installed
Build Information
Release ID: 509030001
Git revision: 5a524e1726ed103fdd4fe37e0356f2b35466ce9d
Build date: 2015-06-02 16:19:11-04
Xamarin addins: 51957cfbd06be911b212671ad05c2c6221ac90f9
Operating System
Windows 6.1.7601.65536
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.