Giter Site home page Giter Site logo

miv's Introduction

My Improved Vi

Since original vi editor is quite limited, there's need for improved version of it.

Yet popular and fairly good alternative is Vim but some might say it has too much features, and has it's own limitations. There's some tries to modernize it, such as Neovim, but for my opinion they just make some things too compliated.

My Improved Vi - or MIV - is totally new implementation of Vi kind of editor. It should be modern, written with modern C++ and targeted for modern systems (latest Linux distributions). It should work great with my current Vim workflows, and support most of the useful features.

License

MIT license

Current features

  • Normal mode, insert mode
  • Basic movement with h, j, k, l
  • Word forward and back b, w
  • Insert, append i, a
  • New line o, O
  • Begin and end of line 0, $ (only cursor positioning for now)
  • Goto to line G
  • Delete lines dd
  • Delete characters dh, dl
  • Copy lines yy, yj, yk
  • Copy characters yh, yl, x
  • Paste copied line or characters
  • Buffers :vi filename, :bn, :bnext, :bp, :bprev
  • Reading files contents to buffer from command line
  • Saving :w
  • Quitting! :q, :wq

Design

  • Utilize C++ strings, vectors, etc. as much as possible
  • Internally support only UTF-8
  • Separate buffers, terminal handling and key press logic

TODO

  • Multiple buffers
  • More basic features
  • Open file in editor
  • More commands

Building

You need ninja and meson

mkdir build
cd build
meson ..
ninja

After that you have miv binary in your src folder, to start it:

src/miv

Or to start editing a file:

src/miv ../src/buffer.cpp

miv's People

Contributors

jroivas avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.