aboutsummaryrefslogtreecommitdiff
path: root/runtime/plugin/python_setup.vim
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2026-07-27 06:25:21 -0400
committerGitHub <noreply@github.com>2026-07-27 06:25:21 -0400
commit359459dec6e1929c0afb56a3111dee7b5a924eea (patch)
tree90ffd5f3205a2a1f9e879c88171514686675cee6 /runtime/plugin/python_setup.vim
parentfaaa4d57f16d96f529fc08ef5752f4dbcb5665cb (diff)
downloadrneovim-359459dec6e1929c0afb56a3111dee7b5a924eea.tar.gz
rneovim-359459dec6e1929c0afb56a3111dee7b5a924eea.tar.bz2
rneovim-359459dec6e1929c0afb56a3111dee7b5a924eea.zip
refactor(exmode): Ex-mode as cmdwin + Lua #40991
Problem: POSIX-compatible Ex-mode requires special-cases all over the codebase to match various quirks that don't actually matter to users. - The main utility of *interactive* Ex-mode is its REPL behavior, and that can be achieved with `cmdwin`, which also gains extra UX benefits. - The main utility of *non-interactive* `nvim -es` is for shell scripting, where Ex-mode quirks are mostly unhelpful (e.g. the "Entering Ex mode" message). Solution: - Reimplement *interactive* Ex-mode as a "persistent, insert-mode cmdwin" in Lua. - "nvim -e/-E" is simply an alias to "gQ". - Reframe *non-interactive* Ex-mode (`nvim -es`) as "script mode". - Drop POSIX Ex-mode quirks. Improvements: - "nvim -V1 -es" output ends with a final newline! - "nvim -V1 -es" no longer shows the "Entering Ex mode" msg. (This was pointless noise, unwanted for scripting purposes.) - stdin is no longer typeahead. Scripts (":lua io.read()") can read stdin as data. - Empty line is a no-op: a stray blank line no longer moves the cursor (deviates from POSIX ex "+1"), no longer exits 1 at EOF (E501). Preserved behavior: - cursor starts at "$" - mode()=="cv" (for non-interactive) - multiline commands (:append/:function/heredoc pull continuation lines) - bare-range print - :print=>stdout - -V1=>stderr - CRLF input - continue-after-error and exit codes Dropped (regressed) POSIX behavior (non-interactive): - Event loop only ticks while/between commands, not while blocked waiting for a stdin line. - ":g/pat/visual...Q" - input()/getchar()/":s/x/y/c" no longer consume stdin lines as answers: Nvim stops at end-of-input, skipping the rest of the script, exit 0. Use ":lua io.read()" instead. - If users care about this they should use interactive Ex-mode (`gQ`). - ":@r" stops at end of the register instead of continuing to read cmdline input from stdin.
Diffstat (limited to 'runtime/plugin/python_setup.vim')
0 files changed, 0 insertions, 0 deletions