vtm: Line-based/rect-block selection by mouse

Selecting text in terminal

  • Select text using LeftDrag
  • Double LeftClick to select a word
    • Select emails by clicking on @ character
    • Select numbers, hexadecimals, IP-addresses or any kind of numerical stuff by clicking on digits
    • Select whitespace by clicking on whitespace character
    • Select a word by clicking on any letter
  • Triple LeftClick to select the entire paragraph
  • Switching between block (rectangular) and linear selection using the Alt key
  • Modify selection by holding the Ctrl key
  • Dismiss selection using LeftClick
  • Copy selection using RightClick (+Ctrl to keep selection visible after copy)
  • Paste copied data using RightClick
  • Render clipboard content around mouse cursor
  • Clear local clipboard buffer using Left+RightClick anywhere
  • ~Modify selection by dragging markers~
  • Change the style of the selected lines with the UI toggles =─ ─=─ ─= Wrap
  • Selection format toggle button (three states; takes precedence over mouse tracking mode):
    • No selection available
      # Selection #
      
    • Select text only (plain text, default)
      + Plaintext +
      
    • Select text with all attributes (ANSI-escaping: colors, alignment, etc)
      ! ANSI-text !
      
  • Status info bottom left
    • Block selection: h_size : v_size
    • Linear selection: n rows ~m cells
  • Scrolling region DECSTBM aware

About this issue

  • Original URL
  • State: closed
  • Created 2 years ago
  • Comments: 23 (9 by maintainers)

Commits related to this issue

Most upvoted comments

Why is your project not so well-known?

vtm is just starting to become usable. Until recently, it was just a demo. But even now it has several serious drawbacks that do not allow it to be used in production:

  • Built-in terminal is very memory hungry. But his greed can be tempered by about 30 times, See #147
  • Built-in terminal can only run in main process space, not as a standalone process, and memory is not reallocated when it is closed, See #148
  • Cannot be operated with keyboard only, See #86

How did you learn things like this

Many different subjects

  • Unicode Standard (latest), About the Unicode. It is important to read it and understand it. It is one of the fundamental things.
  • Character encodings in particular UTF-8, but also historical encodings you need to know to understand the subject.
  • Font technologies are also fundamental. Font and Computer font. A comprehensive description of this technology can be found in the FontForge documentation. There is also a lot of information about fonts in the various SDK documentation, for example Win32 Fonts.
  • Writing systems. Writing systems list for understanding key principles:
  • History and principles of operation of terminals, as well as many IT-standards associated with it.
  • Basic knowledge of operating systems POSIX(Unix) and Microsoft Windows (Win32).
  • Some knowledge of Algebra and Mathematical analysis (mainly for video FX, but not only).
  • Well, programming itself.

Are you really human?

My youtube channel