【发布时间】:2019-01-25 21:12:54
【问题描述】:
我发现$d命令在vim的ex模式下不能工作,但是在vim的命令行模式下可以工作。如下:
我有一个名为 foo 的文件,其内容如下:
$ cat foo
line1
line2
line3
line4
line5
我试图在 vim 的 ex 模式下删除 foo 文件的最后一行。 最后一行是line5所在的那一行。
$ vim -E -s foo <<-EOF
> $d
> w
> EOF
但是,foo文件的内容并没有改变,最后一行仍然存在:
$ cat foo
line1
line2
line3
line4
line5
以下我使用vim的命令行模式执行$d命令:
1 line1
2 line2
3 line3
4 line4
5 line5
~
~
1 foo 0x6C 1,1 all
:$d
结果是:
$ cat foo
line1
line2
line3
line4
最后一行已成功删除。
除了使用$d 命令,我还使用了1d 命令和1,2d 命令,这两个命令都可以正常工作。
更新:添加示例
foo文件内容如下:
$ cat foo
line1
line2
line3
line4
line5
我在bash中用vim的ex模式处理了这个文件:
$ vim -E -s foo <<-EOF
> 1d
> 2,3d
> $d
> w
> EOF
结果是:
$ cat foo
line2
line5
我期望的结果是只保留line2所在的行。
但是line5所在的那行还在,应该用$d命令删除。
为什么?谁能帮帮我?
【问题讨论】:
标签: vim