用 M-| 执行 Shell、Python、Ruby 代码


#1

M-| (M-x shell-command-on-region) 执行一个 Shell 命令,并把当前选中区域作为 STDIN 传入,比如可以用 nl 来加行号、用 sort 来排序,这应该很容易想到,但像 Shell、Python、Ruby 等等代码也能执行,试试选中后分别按 M-| sh, python, ruby

# shell
echo "Hello Shell"
# Python
print("Hello Python")
# Ruby
puts("Hello Ruby")

之所以能工作是因为 shpythonruby 支持从 STDIN 读入代码并执行:

~ $ echo 'echo "Hello Shell"' | sh
Hello Shell
~ $ echo 'print("Hello Python")' | python3
Hello Python
~ $ echo 'puts("Hello Ruby")' | ruby
Hello Ruby