News:

As usual while waiting for the next release - don't forget to check the nightly builds in the forum.

Main Menu

cbvike -- A VIM like plugin

Started by arthurzmj, May 16, 2014, 04:03:38 PM

Previous topic - Next topic

arthurzmj

Hi, guys, I've developed a VIM like plugin for Code::Blocks. It's based on the origin keybinder plugin. And the first prototype was developed by ayheos. I improved it and retains the name. You can find the previous discussion at http://forums.next.codeblocks.org/index.php/topic,6214.msg106074.html#msg106074

Features


  • Mode Convertion such as NORMAL, INSERT
  • General VIM key shortcuts
  • Regular expression searching
  • Some commands start with ':'
  • An embedded status bar showing commands and status

Download
    You can find the repository and detail description at https://github.com/zmj64351508/cbvike

Demonstration



Change Log
   
    v0.2.1 2014-05-31
        --Support Motion with Operator and duplicate number.
        --Fix bugs   

    v0.2.0 2014-05-23
        --Add support to split window edit.
        --Fix bugs

    v0.1.1 2014-05-17
        --Add an embedded status bar.

    v0.1.0 2014-05-17
        --The first release

Any feedback is welcome

iceant

This is really cool. I like it.
And I did some improvement for it. I like to use :w and :q so, I add 2 command for it.
Thanks for create this project.

ollydbg

Quote from: iceant on March 11, 2016, 07:18:43 AM
This is really cool. I like it.
And I did some improvement for it. I like to use :w and :q so, I add 2 command for it.
Thanks for create this project.
Hi, where is your project that people test your contribution?
If some piece of memory should be reused, turn them to variables (or const variables).
If some piece of operations should be reused, turn them to functions.
If they happened together, then turn them to classes.

iceant

Quote from: ollydbg on March 11, 2016, 02:54:03 PM
Quote from: iceant on March 11, 2016, 07:18:43 AM
This is really cool. I like it.
And I did some improvement for it. I like to use :w and :q so, I add 2 command for it.
Thanks for create this project.
Hi, where is your project that people test your contribution?

Hi, Ollydbg

Thanks for asking, here is the source code:

https://github.com/jwis/cbvike

teto

Are you aware of Neovim ? it is a fork of vim aiming at decoupling the backend from the User Interface (UI) in order to allow IDEs to embed vim? There are already some examples such as nyaovim https://github.com/rhysd/NyaoVim

In the long term, it should prove a better choice then reimplementing vim keystrokes in each and every IDE.

iceant

Quote from: teto on March 12, 2016, 05:36:56 PM
Are you aware of Neovim ? it is a fork of vim aiming at decoupling the backend from the User Interface (UI) in order to allow IDEs to embed vim? There are already some examples such as nyaovim https://github.com/rhysd/NyaoVim

In the long term, it should prove a better choice then reimplementing vim keystrokes in each and every IDE.

It's cool!! but how to use it with Codeblocks?

I just add "J" function for cbvike. So far, it works as what I expected. But I would like to see more mature solution for that.

Actually, I have did an POC to use eclim as backend, and node.js as the server to build an web based IDE. It works, I can create project, coding with CodeComplete features and compile/run the project. but I need to rebuild the UI by myself. that's too many investment for me.

ollydbg

Quote from: iceant on March 14, 2016, 04:59:58 AM
Quote from: teto on March 12, 2016, 05:36:56 PM
Are you aware of Neovim ? it is a fork of vim aiming at decoupling the backend from the User Interface (UI) in order to allow IDEs to embed vim? There are already some examples such as nyaovim https://github.com/rhysd/NyaoVim

In the long term, it should prove a better choice then reimplementing vim keystrokes in each and every IDE.

It's cool!! but how to use it with Codeblocks?
I have the same question.
If some piece of memory should be reused, turn them to variables (or const variables).
If some piece of operations should be reused, turn them to functions.
If they happened together, then turn them to classes.

teto

I've been using neovim for the past 2 years and I believe it's already a lot better than vim.
As for how to embed into an IDE, I don't know how mature it is yet. I just know Neovim relies on msgpack-rpc for communications between the server and the UI but  one can get more info from their irc or this page:
https://github.com/neovim/neovim/wiki/Related-projects
The atom integration https://github.com/carlosdcastillo/vim-mode created a bit of a buzz back then.

The idea is that one can use (neo)vim with his very own configuration/plugins.

There are some ideas to improve the integration as well:
https://tarruda.github.io/articles/neovim-smart-ui-protocol/

teto

a few more pointers of interest, the first one explaining how neovim embedding works:
https://github.com/neovim/neovim/wiki/Plugin-UI-architecture
https://github.com/equalsraf/neovim-qt and https://github.com/oakes/SolidOak are examples of such embedding

marmistrz

So, I packaged this for Arch Linux: https://aur.archlinux.org/packages/cbvike/

Mods: can you add this information to the OP?

marmistrz

#10
Is anyone still looking for information how to use cbvike?

MK

Hi I really appreciate the work you are doing but is there any versions that could run with Debian I tried to follow the instruction in the GitHub page but it didn't work with me.

Thanks

Miguel Gimenez


MichaelAgarkov

Will there be a new version of this plugin with support for newer versions of Code::Blocks? The current version of the plugin doesn't work with 20.03.