# Echo / interactive debugging made a little easier

**URL:** <https://discuss.kakoune.com/t/echo-interactive-debugging-made-a-little-easier/1802>\
**Category:** Recipes & Guides\
**Created:** [July 1, 2021, 8:23am UTC](https://discuss.kakoune.com/t/echo-interactive-debugging-made-a-little-easier/1802 "2021-07-01T08:23:52Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![almr](https://discuss.kakoune.com/user_avatar/discuss.kakoune.com/almr/32/934_2.png) [@almr](https://discuss.kakoune.com/u/almr)\
**Post date:** [July 1, 2021, 8:23am UTC](https://discuss.kakoune.com/t/echo-interactive-debugging-made-a-little-easier/1802/1 "2021-07-01T08:23:52Z")

</div>

A bunch of useful tips that people normally put in `dotfiles` repos; the surprising thing, to me, was that you can **alias ‘`:`’ and `//`**. I’ve had the same experience with bash — some unusual names can be achieved using functions, some using aliases, some using both.

```auto
# RSI relievers
def defp -params .. %{ def -override -params .. %arg{@}
} -override -docstring '= def -params..'
defp echo-dbg %{ echo -debug -quoting shell -- %arg{@} }
alias global ':' echo # just type :: %val{buffile}
alias global ":'" echo-dbg
alias global '//' cd # or cd-here, cd-git etc

# ,: for forgettable commands
map global user <:> ': '

# get out of prompt/ins mode without delays
map global prompt <a-\> '<c-e><c-u><backspace>' # esc saves cmd
map global insert <a-\> '<esc>'

# reload things
def source-me %{ source %val{buffile}
} -override -docstring 'source current buffer'
def eval-lines %{ execute-keys -draft '<a-x>: eval %reg{dot}<ret>'
} -override -docstring 'eval selection lines'

```
