Почему в vim первый операнд в движении (m) 1 и последний операнд 0?

Учитывая следующий файл

1 2 3 4 5 

Когда я говорю :1m3

файл выглядит следующим образом:

 2 3 1 4 5 

Но когда я говорю :3m1 это выглядит так

 1 3 2 4 5 

Я думал, что 3 должны быть до 1. Почему так?

2 Solutions collect form web for “Почему в vim первый операнд в движении (m) 1 и последний операнд 0?”

Как отметил Стефан Чазелас, используя vim help с :h :m он утверждает следующее:

 :[range]m[ove] {address} *:m* *:mo* *:move* *E134* Move the lines given by [range] to below the line given by {address}. 

Поэтому, перемещая линию 1 ниже строки 3, результат будет таким, как указано в вопросе. Но если нужно перенести линию 3 в первую строку, ее нужно переместить ниже строки 0

Команды вроде :copy и :move помещают цель ниже строки, заданной {address} . Вы можете использовать адрес 0 для перехода к первой строке. Некоторые команды (например :put ) также поддерживают отмену до / после :put!

  • Что это за тема vim?
  • Движение навигации для пропуска комментариев
  • Скопируйте путь из vim netrw
  • Странное поведение VIM
  • понимать шаблоны в vim
  • Перейти к конкретному символу в строке в VI
  • Удаление текстовых объектов Word в VIM
  • Vim запоминает настройки отредактированных файлов
  • Почему в команде «: normal» ^ [кажется, не работает с A? (ВИМ)
  • Почему мне нужно нажать пробел после команды в Vim?
  • Vim shared copy register
  • Interesting Posts
    Linux и Unix - лучшая ОС в мире.