我正在尝试使用ex
per编写一些文件更改脚本这个答案。
我遇到的问题是,ex
似乎假设每个命令前面都有一个冒号,所以虽然我可以这样做:
/^foo()
a
test insertion
.
w!
q
我不能这样做:
/^foo()
>iB
O
if (bar())
.
w!
q
因为它在第二行和第三行上被阻塞,据我所知,因为:>iB
和:O
都返回错误vim
。
我究竟做错了什么?如何缩进当前大括号块和/或插入到当前行上方ex
?
答案1
ex
似乎假设每个命令前面都有一个冒号 [...]
实际上,你假设vi
命令和ex
命令是同一件事。您在全屏模式下键入的字符序列vi
不是的命令语言ex
。
要在上面插入而不是在下面附加,请使用insert
而不是append
.
要左右移动当前行,请使用>
<
单独使用和。要移动块,请在它们前面加上指定该块的行范围。
进一步阅读
- 戴尔·多尔蒂和蒂姆·奥莱利 (1987)。 “高级编辑”。Unix 文本处理。海登图书。
- “公用事业:前”。 外壳命令语言。单一 UNIX 规范。第 7 期。IEEE 1003.1。 2016。公开组。
- ”防爆命令”。
ex
。 FreeBSD 通用命令手册。 2013年11月2日。 :help cmdline-lines
(新VIM):help cmdline-lines
(维姆):exusage
(nvi)