Abandon leiningen repl expression

How do I abandon a leiningen repl expression without ctrl+d (exit the repl) or tapping out a wad of closing brackets?

Try Ctrl+c or Ctrl+l (that’s a lower case L) I think one of those or a combination therefore does it.

Nope

wonderland.core=> (defn lskdjf
             #_=> slkdfj
             #_=> 
             #_=> ^C
             #_=> 
             #_=> ^L^C
             #_=> ^C^L
             #_=> ^L^L^C
             #_=> ^C^L^L^L^L^L^C^L^C^L^L
             #_=> ^C
             #_=> 
             #_=> i
             #_=> ^C
             #_=> ^C^C^C^C^C^C
             #_=> ^C^C^C^L^L^C
             #_=> ^L^C
             #_=> ^L^C^L^L
             #_=> ^L^C
             #_=> 
             #_=> ^C^L^C^L^C^L
             #_=> ^L
             #_=> ^L^L^L
             #_=> 
             #_=> 
zsh: suspended  lein repl
 [email protected]  /opt/clojure/wonderland  fg                                                              07:55:00 Dur
[1]  + continued  lein repl
Welcome back!


             #_=> whhaaaa!!!!
             #_=> 

Hum, it’s shouldn’t print the character ^C, I suspect something is broken with your shell. Do you have rlwrap installed?

What happens if you press the arrow keys? Does it move the cursor, or does it print weird characters instead?

rlwrap is installed. Arrow keys work fine. I’ve tried this in gnome terminal and xterm. I tried zsh, bash --norc --noprofile, sh
Also tried removing .lein/profiles.clj

I think there’s definitely a bug in the program. In the below you can see I got it to abandon. Couldn’t replicate this.

user=> (doc
  #_=> ^C^L
  #_=> )
nil
user=> (doc something
  #_=> ^LL

user=> (doc something
  #_=> ^L
  #_=> 
  #_=> ^LL
  #_=> ^L^C
  #_=> ^L^L
  #_=> ^LL

Standalone Leiningen 2.9.3 on Java 1.8.0_252 OpenJDK 64-Bit Server VM
REPL-y 0.4.4, nREPL 0.6.0
Clojure 1.10.0
OpenJDK 64-Bit Server VM 1.8.0_252-8u252-b09-1~19.10-b09

I don’t know, it’s very strange. It all works fine for me. Ctrl+c abandons the line, and Ctrl+l clears the content.

Peek 2020-05-03 11-15

What’s the content of your ~/.inputrc file and your /etc/inputrc file ?

~/.inputrc

set editing-mode vi

/etc/inputrc

# /etc/inputrc - global inputrc for libreadline
# See readline(3readline) and `info rluserman' for more information.

# Be 8 bit clean.
set input-meta on
set output-meta on

# To allow the use of 8bit-characters like the german umlauts, uncomment
# the line below. However this makes the meta key not work as a meta key,
# which is annoying to those which don't need to type in 8-bit characters.

# set convert-meta off

# try to enable the application keypad when it is called.  Some systems
# need this to enable the arrow keys.
# set enable-keypad on

# see /usr/share/doc/bash/inputrc.arrows for other codes of arrow keys

# do not bell on tab-completion
# set bell-style none
# set bell-style visible

# some defaults / modifications for the emacs mode
$if mode=emacs

# allow the use of the Home/End keys
"\e[1~": beginning-of-line
"\e[4~": end-of-line

# allow the use of the Delete/Insert keys
"\e[3~": delete-char
"\e[2~": quoted-insert

# mappings for "page up" and "page down" to step to the beginning/end
# of the history
# "\e[5~": beginning-of-history
# "\e[6~": end-of-history

# alternate mappings for "page up" and "page down" to search the history
# "\e[5~": history-search-backward
# "\e[6~": history-search-forward

# mappings for Ctrl-left-arrow and Ctrl-right-arrow for word moving
"\e[1;5C": forward-word
"\e[1;5D": backward-word
"\e[5C": forward-word
"\e[5D": backward-word
"\e\e[C": forward-word
"\e\e[D": backward-word

$if term=rxvt
"\e[7~": beginning-of-line
"\e[8~": end-of-line
"\eOc": forward-word
"\eOd": backward-word
$endif

# for non RH/Debian xterm, can't hurt for RH/Debian xterm
# "\eOH": beginning-of-line
# "\eOF": end-of-line

# for freebsd console
# "\e[H": beginning-of-line
# "\e[F": end-of-line

$endif

Okay, so you are using Vi editing mode. Maybe that changes things.

Try pressing ESC first and then Ctrl+c or Ctrl+l ?