Code Monkey home page Code Monkey logo

xi-term's Introduction

xi-term

Build Status

Formerly xi-tui, xi-term is a terminal frontend for xi.

It is experimental and under development, so don't expect anything magical (yet!).

Installation

The frontend assumes that you have installed the core editor and is available in your PATH. The following should suffice:

git clone https://github.com/xi-editor/xi-editor
cd xi-editor/rust
cargo install --path .

# if you want syntax highlighting, you need to install the syntect plugin:
cd syntect-plugin
make install

# You need to add ~/.cargo/bin to your PATH
# (this is where `cargo install` places binaries).
# In your .bashrc (or equivalent), add `export PATH=$PATH:~/.cargo/bin`

Then you can clone this repository and run the frontend with cargo run --release -- <your_file>. your_file can be an existing file or any dummy name.

Logging

For debugging, it can be useful to have logs. You can specify a location for log files xi-term with -l <logfile>. Two files will be written:

  • <logfile>: all the xi-term logs
  • <logfile>.rpc: the RPC messages exchanged between the core and the frontend

Screenshots

a python file

the README file

Shortcuts

For now, there are only two shortcuts:

  • ^w saves the current view
  • ^c exits

Commands

xi-term supports a vim-like command prompt for executing commands, accessed via Alt-X.

Currently supported commands:

Short form Long form Description
q quit Quits xi-term
s save Saves the current file
o filename open filename Open filename for editing
b backspace Delete the previous character and move the cursor one position back
d delete Delete the character under the cursor
bn next-buffer Switch to the next buffer
bp prev-buffer Switch to the previous buffer
pd page-down Advance the current view by one page
pu page-up Move the current view back by one page
ml move-left Move the cursor one position left
mr move-right Move the cursor one position right
mu move-up Move the cursor one line up
md move-down Move the cursor one line down
t theme theme theme-name Set the theme to theme
ln line-numbers Toggle displaying line numbers

Future commands:

Short form Long form Description
c close Closes the current view
? string search string Search for string
sl select-left Move the cursor one position left and update the current selection accordingly
sr select-right Move the cursor one position right and update the current selection accordingly
su select-up Move the cursor one line up and update the current selection accordingly
sd select-down Move the cursor one line down and update the current selection accordingly

Preferences

Xi-core supports several user-configurable options through a preferences.xiconfig file. The default location for this is $XDG_CONFIG_HOME/xi/preferences.xiconfig, or, if $XDG_CONFIG_HOME is not set, it defaults to $HOME/xi/preferences.xiconfig.

Caveats

Colors

If you have the syntect plugin installed, colors will be enabled by default, with two caveats:

  • you must have true colors enabled. Otherwise, some portions of text won't be displayed
  • the default theme is for dark backgrounds

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.