• 19 Posts
  • 899 Comments
Joined 4 年前
cake
Cake day: 2021年12月20日

help-circle









  • First paragraph after the introduction:

    what is a “modern terminal experience”? Here are a few things that are important to me, with which part of the system is responsible for them:

    • multiline support for copy and paste: if you paste 3 commands in your shell, it should not immediately run them all! That’s scary! (shell, terminal emulator)
    • infinite shell history: if I run a command in my shell, it should be saved forever, not deleted after 500 history entries or whatever. Also I want commands to be saved to the history immediately when I run them, not only when I exit the shell session (shell)
    • a useful prompt: I can’t live without having my current directory and current git branch in my prompt (shell)
    • 24-bit colour: this is important to me because I find it MUCH easier to theme neovim with 24-bit colour support than in a terminal with only 256 colours (terminal emulator)
    • clipboard integration between vim and my operating system so that when I copy in Firefox, I can just press p in vim to paste (text editor, maybe the OS/terminal emulator too)
    • good autocomplete: for example commands like git should have command-specific autocomplete (shell)
    • having colours in ls (shell config)
    • a terminal theme I like: I spend a lot of time in my terminal, I want it to look nice and I want its theme to match my terminal editor’s theme. (terminal emulator, text editor)
    • automatic terminal fixing: If a programs prints out some weird escape codes that mess up my terminal, I want that to automatically get reset so that my terminal doesn’t get messed up (shell)
    • keybindings: I want Ctrl+left arrow to work (shell or application) being able to use the scroll wheel in programs like less: (terminal emulator and applications)

    There are a million other terminal conveniences out there and different people value different things, but those are the ones that I would be really unhappy without.

    So basically it’s the features that have been standard in shells and terminal emulators for the past couple of decades.