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")
之所以能工作是因为 sh
、python
和 ruby
支持从 STDIN
读入代码并执行:
~ $ echo 'echo "Hello Shell"' | sh
Hello Shell
~ $ echo 'print("Hello Python")' | python3
Hello Python
~ $ echo 'puts("Hello Ruby")' | ruby
Hello Ruby