Я нашел команду $d
, которая не может работать в режиме ex vim. Но она может работать в режиме командной строки vim. Следующим образом:
У меня есть файл с именем foo, содержимое которого выглядит следующим образом:
$ cat foo
line1
line2
line3
line4
line5
Следующее, что я пытался удалить последнюю строку файла foo в ex-режиме vim. Последняя строка — это строка, в которой находится строка 5.
$ 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
Я обработал этот файл в ex-режиме vim в bash:
$ vim -E -s foo <<-EOF
> 1d
> 2,3d
> $d
> w
> EOF
Результат:
$ cat foo
line2
line5
В результате я ожидаю, что останется только строка, в которой находится строка 2. Но осталась строка, где находится строка5, ее надо удалить командой $d
.
Почему ? кто может мне помочь?