Emacs: How run shell (by hotkey) from any buffer? - emacs

Windows 10, Emacs 25.1.
If I want run shell I use hotkey: M-a shell
It's work fine.
But how I can run shell using any hotkey from any Emacs buffer?

Related

NeoVim make terminal window automatically close when program exits

The vim version has a ++close option that automatically closes the terminal when the job terminates, but since the NeoVim terminal came first it doesn't have that feature.
I need this because i am trying to run programs directly from vim, but i regularly make
curses applications which the popup window you get from :!python % can't handle, so i need the terminal window.
I am using NeoVim on arch linux if that's relevant.

irb command history keystroke in irb on eshell

How can I access the command history when running irb in the emacs eshell?
When I run irb at the command line outside of emacs, I can use the up arrow to get the last command or ctrl-r to search the command history. In irb inside eshell, the up arrow does nothing (i.e. it runs eshell-previous-matching-input-from-input which does nothing in irb) and ctrl-r uses the emacs reverse search of the buffer instead of searching the command history. I guess irb never receives the up-arrow keystroke because it's bound to eshell-previous-matching-input-from-input, but I'm not sure how to fix it. Running (global-unset-key (kbd "<up>")) doesn't unbind the up-arrow in eshell and I'm not sure that's desirable anyway.
I know about inf-ruby, but I prefer using irb in eshell and besides up-arrow and ctrl-r don't work with that either.
It could be a problem with readline in irb, but I don't think so. conf.use_readline is nil on the commandline where irb command history works fine. Running irb --readline in eshell switches conf.use_readline to true but doesn't fix the up arrow or ctrl-r.
Emacs term mode (M-x term) in combination with C-c C-j / C-c C-k to temporarily allow yanking seems to be a good option. See another answer here.

Emacs on Windows disable cmd

I've always used Emacs under Linux, but now I got a Windows machine and installed it.
However, every time I open Emacs it also opens a terminal (called cmd.exe on Windows, I think). Is there a way I can disable that terminal?
Thank you.
If you got the GNU version of emacs for Windows from here: http://ftp.gnu.org/gnu/emacs/windows/, there is an .exe called runemacs.exe. Use that instead of emacs.exe. "runemacs" will not pop up the annoying cmd window.

In emacs, query-replace-regexp keyboard shortcut doesn't work in the terminal (e.g., emacs -nw)

Is it expected that C-M-% and ESC C-% do not run the command query-replace-regexp when running emacs in a terminal window (for example, emacs -nw)?
According to describe-function the binding exists, but emacs runs query-replace instead (which has the binding M-%). This has happened on several machines I've tried it on, and does not happen when I run emacs in a window.
The problem is that C-% simply can't be typed in a terminal. The only control sequences available are those that corresponds to ascii-code 0-31, mainly C-letter.
I have created a new shortcut in my .emacs file.
(global-set-key "\M-q" 'query-replace-regexp)
Control-Alt-Shift-% all together works on Windows and Fedora Linux. Does your keyboard have all those keys?

REPL for Emacs Lisp

What are some REPLs for Emacs Lisp?
Is there only one that is within Emacs?
Are there some that run inside terminal outside Emacs?
Based on this question: REPL on console emacs, you can use M-x ielm (inferior emacs lisp mode).
There is a (work in progress) REPL for Emacs for use from the command line. It currently supports basic command line editing and history.
The code is hosted on Github.
There is this project on Gitlab. The REPL can run on a termninal or on Emacs' minibuffer. Even if you run it in "no-window-system" mode (with -nw).