Giter VIP home page Giter VIP logo

rim's Introduction

Rim

Rim is an aspiring Vim-like text editor written in Rust.

Screenshot

Current state

Rim is in an early prototype stage. This means that you can load, edit and save files, and hopefully do so relatively comfortably if Vim is what you are used to. In particular some of the simpler commands for insertion and deletion as well as window and buffer navigation has been implemented and bound to the expected key strokes.

Try it out

For now you will need a nightly build of the Rust compiler in order to build Rim. When that is set up, simply clone and cargo run.

Note: Some key bindings are for testing purposes only, and some may not work exactly as you would expect them to.

Window navigation

  • <C-w>v/<C-w>s - Split focused window
  • <C-w>c - Close focused window
  • <C-w> h/j/k/l - Move window focus left/down/up/right
  • n/N - Move window focus forward/backward in window order (for testing)
  • (<C->) y/u - Resize focused window (for testing)
  • <C-w>= - Reset window sizes

Buffer navigation

  • h/j/k/l/Arrow keys - Move caret
  • Home/0 - Move caret to start of line
  • End/$ - Move caret to end of line
  • PageUp/<C-b> - Scroll view up by window's length
  • PageDown/<C-f> - Scroll view down by window's length
  • <C-u> - Scroll view up by half of window's length
  • <C-d> - Scroll view down by half of window's length
  • gg - Go to first line
  • G - Go to last line
  • Space in normal mode - move caret forward across line boundaries
  • Backspace in normal mode - move caret backward across line boundaries

Insertion

  • i - Enter insert mode
  • I - Enter insert mode at start of line
  • a - Enter insert mode after caret
  • A - Enter insert mode at end of line
  • o - Enter insert mode at a new line under the current line
  • O - Enter insert mode at a new line above the current line
  • Escape - Exit insert mode

Deletion

  • dd - Delete line
  • D - Delete rest of line
  • C - Delete rest of line and enter insert mode
  • x - Delete character under the cursor
  • X - Delete character behind the cursor
  • r - Replace character under the cursor
  • R - Replace character on the line

Misc / For testing until a proper command line is implemented

  • F1-F4 - Load some buffers
  • :qa<Enter> - Quit
  • :q<Enter> - Close window and quit if it's the last one
  • :w<Enter> - Write buffer to file

What's next?

Lots! But first maybe the ability to search in a buffer, which would open up for a range of other features.. or perhaps that big scary one; scripting

Trouble shooting

As stated above, Rim requires Rust nightly to build. This is because Rim is using unstable features of the Rust language and standard libraries. Although breaking changes seem far between these days, it may be that I haven't updated to the latest nightly if things are not compiling for you.

rim's People

Contributors

mathall avatar diogovk avatar

Watchers

James Cloos avatar Christopher P. Fair 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.