终端中多行编辑技巧
曦子本文介绍在 terminal 编辑单行命令过长的 tips. 比如编辑一个复杂的 curl.
源起
有时候测试扔过来一个超长的 curl, 这个时候可能我们要稍微调一调参数在请求, 不得不说这个时候很麻烦.
可行的方案
有几个方案如下:
- 在终端里用方向键或者 emacs 风格编辑
- 打开一个熟悉的 editor, 比如 vscode 编辑好粘回来
像我这种喜欢在纯 cli 下处理问题的选手来说貌似只能选第一个。
思考
我之前玩过一段时间的 emacs, 后来 team 里有人推广 vim, 现在 neovim 是常用工具. 在 linux 或者类 linux 系统下, terminal 一般会支持 emacs 风格的快捷键, 如下:
key | 说明 | 助记符 |
---|---|---|
ctrl-w | 删除你键入的最后一个单词 | |
ctrl-u | 可以删除行内光标所在位置之前的内容 | |
ctrl-f | 向后移动一个字符 | forward |
ctrl-b | 向前移动一个字符 | back |
meta-b | 和 meta-f 可以以单词为单位移动光标 | |
ctrl-a | 可以将光标移至行首 | ahead |
ctrl-e | 可以将光标移至行尾 | end |
ctrl-k | 可以删除光标至行尾的所有内容 | kill |
ctrl-p | 上一行 | previous |
ctrl-n | 下一行 | next |
然而在你编辑多行的 curl 时仍然难受的厉害, 还不如扔到编辑里去处理.
这个时候你可以键入 c-x c-e
, 会打开另外一个编辑器, 该编辑器的指定源自于环境变量 $EDITOR
, 如下我的 EDITOR
被设置成了 neovim
➜ ~ echo $EDITOR
nvim
现在可以用 vim
or emacs
来快乐编辑了, 退出编辑器修改后的内容就会生效在终端里.
注意, 在默认操作系统下这个变量的值可能是 emacs, 大部分用户可能知道用 vim 退出是 :q
, 如果不小心进入了 emacs 模式, 退出是 c-x c-c
.