mobile-shell / mobile-shell/mosh

Instant response to readline-ish line editing

Open
#436 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

feature Terminal emulation
Dominant language
C++
Stars
14.5k
Forks
865
PR merge metrics
No merged PRs in 30d

Description

Mosh currently provides instant response to basic line editing: Typing and moving the cursor using the arrow keys. This feature is a great productivity-enhancer on high-latency links.

However, as soon as some more advanced line-editing is attempted, the predictive model gives up, and Mosh will wait for the server response before regaining the instant responsiveness.

Examples of commonly used line-editing that is not supported include:

  • moving the cursor backwards by a whole word (using meta+b)
  • erasing a whole word backwards (using meta+backspace)
  • transposing characters or words (using ctrl+t and meta+t)

This is all readline-ish behaviour. Granted, not all programs are readline-based. Yet, it seems to be a fairly safe assumption that readline-ish behaviour is expected when any of the keystrokes given above are detected.

Wouldn't it be neat if mosh employed readline locally to guess the outcome of these line-editing operations?

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing mosh's predictive model for the existing instant arrow-key editing, then examine how readline-style operations are represented. Done means commonly used word movement, word deletion, and character or word transposition are predicted locally without waiting for the server.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
cli
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.