From 76aa3efd72d8c3e531cd3f366448342b323a4219 Mon Sep 17 00:00:00 2001 From: m1ngsama Date: Wed, 13 May 2026 14:05:22 +0800 Subject: [PATCH] Make jk escape opt in (#40) --- QUICKSTART.md | 4 ++-- README.md | 5 +++-- modules/core.vim | 4 +++- modules/tools.vim | 2 +- scripts/test.sh | 9 ++++++++- 5 files changed, 17 insertions(+), 7 deletions(-) diff --git a/QUICKSTART.md b/QUICKSTART.md index 56ec4ee..55e8ca0 100644 --- a/QUICKSTART.md +++ b/QUICKSTART.md @@ -29,13 +29,13 @@ cd ~/.vim && ./install.sh --configure-only --profile=full | Mode | Enter | Leave | | ------ | --------------- | ------------- | | Normal | startup default | — | -| Insert | `i` / `a` / `o` | `Esc` or `jk` | +| Insert | `i` / `a` / `o` | `Esc` | | Visual | `v` / `V` | `Esc` | ## Survival ``` -Esc / jk back to Normal +Esc back to Normal ,w save ,x save + quit :q! force quit diff --git a/README.md b/README.md index fabcae7..6a9cbac 100644 --- a/README.md +++ b/README.md @@ -81,6 +81,7 @@ profile or uses `engineer`. let g:chopsticks_profile = 'minimal' " core navigation/editing/git/markdown let g:chopsticks_profile = 'engineer' " default: LSP, ALE, syntax extras let g:chopsticks_profile = 'full' " engineer + heavier Markdown feedback +let g:chopsticks_enable_jk_escape = 1 " optional: insert-mode jk exits insert ``` `minimal` avoids LSP, ALE, completion plugins, extra language syntax plugins, @@ -96,12 +97,12 @@ active profile and only shows keys for enabled features. Leader: `,` ``` -Ctrl+p fuzzy find file ,dd go to definition +,ff fuzzy find file ,dd go to definition ,rg ripgrep project ,dk hover docs ,e toggle file sidebar ,cr run current file ,gs git status ,f format ,w save ,q quit -jk exit insert mode ,? cheat sheet +Esc exit insert mode ,? cheat sheet ```
diff --git a/modules/core.vim b/modules/core.vim index 95a8e85..3757409 100644 --- a/modules/core.vim +++ b/modules/core.vim @@ -125,7 +125,9 @@ nnoremap :set invnumber:echo 'Line numbers: ' . (&number ? 'ON nnoremap :set invrelativenumber:echo 'Relative numbers: ' . (&relativenumber ? 'ON' : 'OFF') nnoremap :set list!:echo 'List chars: ' . (&list ? 'ON' : 'OFF') -inoremap jk +if get(g:, 'chopsticks_enable_jk_escape', 0) + inoremap jk +endif vnoremap < >gv diff --git a/modules/tools.vim b/modules/tools.vim index 8daebc8..a131483 100644 --- a/modules/tools.vim +++ b/modules/tools.vim @@ -423,7 +423,7 @@ function! s:CheatSheet() abort \ ' ,q quit', \ ' ,x save + quit', \ ' Ctrl+s save (any mode)', - \ ' jk exit insert', + \ ' Esc exit insert', \ ' :w!! sudo save', \ ' ,ev edit vimrc', \ ' ,sv reload vimrc', diff --git a/scripts/test.sh b/scripts/test.sh index 2e5b11a..c05a4e5 100755 --- a/scripts/test.sh +++ b/scripts/test.sh @@ -203,11 +203,18 @@ check_vim() { XDG_CONFIG_HOME="$EMPTY_XDG" vim -u .vimrc -i NONE -es -N \ -c 'if maparg("0", "n") !=# "" || maparg("0", "v") !=# "" || maparg("Y", "n") !=# "" || maparg("Q", "n") !=# "" || maparg("", "n") !=# "" | cquit | endif' \ + -c 'if maparg("jk", "i") !=# "" | cquit | endif' \ -c 'if maparg("", "n") !=# "" || maparg("", "n") !=# "" || maparg("", "n") !=# "" || maparg("", "n") !=# "" | cquit | endif' \ -c 'if maparg("", "n") !=# "" | cquit | endif' \ -c 'if maparg(",ff", "n") !~# "SmartFiles" | cquit | endif' \ -c 'qa!' 2>&1 + XDG_CONFIG_HOME="$EMPTY_XDG" vim -u NONE -i NONE -es -N \ + -c 'let g:chopsticks_enable_jk_escape = 1' \ + -c 'source .vimrc' \ + -c 'if maparg("jk", "i") !~# "" | cquit | endif' \ + -c 'qa!' 2>&1 + XDG_CONFIG_HOME="$EMPTY_XDG" vim -u .vimrc -i NONE -es -N \ -c 'silent! delcommand LspStatus' \ -c 'silent! delcommand LspInstallServer' \ @@ -268,7 +275,7 @@ check_vim() { grep -Fq ',dk hover docs' "$TMP_ROOT/cheat-default.txt" grep -Fq ',dp ,dn LSP diagnostics' "$TMP_ROOT/cheat-default.txt" grep -Fq 'hjkl navigate splits' "$TMP_ROOT/cheat-default.txt" - if grep -Eq 'Ctrl\\+p find file|Ctrl\\+hjkl navigate splits|gd definition|K hover docs|\\[g \\]g LSP diagnostics' "$TMP_ROOT/cheat-default.txt"; then + if grep -Eq 'Ctrl\\+p find file|Ctrl\\+hjkl navigate splits|jk exit insert|gd definition|K hover docs|\\[g \\]g LSP diagnostics' "$TMP_ROOT/cheat-default.txt"; then cat "$TMP_ROOT/cheat-default.txt" exit 1 fi