# Why Rebugger.keybinding use this strange strings (anti-human)?

**URL:** <https://discourse.julialang.org/t/why-rebugger-keybinding-use-this-strange-strings-anti-human/29485>\
**Category:** General Usage\
**Created:** [October 4, 2019, 12:51pm UTC](https://discourse.julialang.org/t/why-rebugger-keybinding-use-this-strange-strings-anti-human/29485 "2019-10-04T12:51:07Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![bsnyh](https://avatars.discourse-cdn.com/v4/letter/b/ce7236/32.png) [@bsnyh](https://discourse.julialang.org/u/bsnyh)\
**Post date:** [October 4, 2019, 12:51pm UTC](https://discourse.julialang.org/t/why-rebugger-keybinding-use-this-strange-strings-anti-human/29485/1 "2019-10-04T12:51:07Z")

</div>

Hi, I was trying to configure the keymap functions of Rebugger. Following is the code I put in the file startup.jl

```julia
# This file should contain site-specific commands to be executed on Julia startup;
# Users may store their own personal commands in `~/.julia/config/startup.jl`.
atreplinit() do repl
    try
        @eval using Revise
        @async Revise.wait_steal_repl_backend()
    catch
        @warn "Could not load Revise."
    end

    try
        @eval using Rebugger
        # Activate Rebugger's key bindings
        Rebugger.keybindings[:interpret] = "\e[16~" # add keybinding F5 to switch to interpret mode
        Rebugger.keybindings[:stepin] = "\e[17~" # Add the keybinding F6 to step into a function.
        Rebugger.keybindings[:stacktrace] = "\e[18~" # Add the keybinding F7 to capture a stacktrace.
        
    catch
        @warn "Could not load Rebugger."
    end
end

```

I’m pretty sure “\e[17~” stands for F6, and “\e[18~” stands for F7. So I assume “\e[16~” stands for F5. Is this correct or not? Or did I add the code in a wrong way? Moreover, why use this kind of anti-human string expressions?

EDIT: I think I know the reason why F5 does not work. I need to install Revise.jl

---

<div class="post-metadata">

**Author:** ![bsnyh](https://avatars.discourse-cdn.com/v4/letter/b/ce7236/32.png) [@bsnyh](https://discourse.julialang.org/u/bsnyh)\
**Post date:** [October 21, 2019, 3:57pm UTC](https://discourse.julialang.org/t/why-rebugger-keybinding-use-this-strange-strings-anti-human/29485/2 "2019-10-21T15:57:36Z")

</div>

following this link: [Configuration · Rebugger.jl](https://timholy.github.io/Rebugger.jl/dev/config/)  
I got roughly and uncomfortably how to get the cryptic string. Yet, I tried it in my workstation computer (relatively powerful compared with a normal computer), and it does not work! Sigh.

---

<div class="post-metadata">

**Author:** ![mbauman](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mbauman/32/31082_2.png) [@mbauman](https://discourse.julialang.org/u/mbauman)\
**Post date:** [October 21, 2019, 4:10pm UTC](https://discourse.julialang.org/t/why-rebugger-keybinding-use-this-strange-strings-anti-human/29485/3 "2019-10-21T16:10:59Z")

</div>

These “anti-human” strings are ANSI escape codes, which date back to the 70s. It isn’t really anything about Rebugger — it’s about how your Terminal talks to Julia.

> **[ANSI escape code](https://en.wikipedia.org/wiki/ANSI_escape_code)**
>
> ANSI escape sequences are a standard for in-band signaling to control cursor location, color, font styling, and other options on video text terminals and terminal emulators. Certain sequences of bytes, most starting with an ASCII escape character and a bracket character, are embedded into text. The terminal interprets these sequences as commands, rather than text to display verbatim.
> ANSI sequences were introduced in the 1970s to replace vendor-specific sequences and became widespread in the ...

Exactly what escape code gets sent for a key like F7 will depend upon your keyboard, OS, terminal, and its configuration.

---

<div class="post-metadata">

**Author:** ![bsnyh](https://avatars.discourse-cdn.com/v4/letter/b/ce7236/32.png) [@bsnyh](https://discourse.julialang.org/u/bsnyh)\
**Post date:** [October 22, 2019, 6:57am UTC](https://discourse.julialang.org/t/why-rebugger-keybinding-use-this-strange-strings-anti-human/29485/4 "2019-10-22T06:57:08Z")

</div>

@mbauman Thank you for your detailed reply. Could you kindly help me figure out what is the cryptic string representation of f5 key? Somehow it does not work in my computer.

---

<div class="post-metadata">

**Author:** ![mbauman](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mbauman/32/31082_2.png) [@mbauman](https://discourse.julialang.org/u/mbauman)\
**Post date:** [October 22, 2019, 2:02pm UTC](https://discourse.julialang.org/t/why-rebugger-keybinding-use-this-strange-strings-anti-human/29485/5 "2019-10-22T14:02:46Z")

</div>

What OS and terminal are you using?

---

<div class="post-metadata">

**Author:** ![bsnyh](https://avatars.discourse-cdn.com/v4/letter/b/ce7236/32.png) [@bsnyh](https://discourse.julialang.org/u/bsnyh)\
**Post date:** [October 22, 2019, 2:16pm UTC](https://discourse.julialang.org/t/why-rebugger-keybinding-use-this-strange-strings-anti-human/29485/6 "2019-10-22T14:16:46Z")

</div>

I’m using Linux ubuntu.
