Почему в 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!

  • Копировать grep-выход из редактора vim
  • Как включить и использовать сводку кода в Vim?
  • Как преобразовать текстовое содержимое в буфер в список местоположений в vim?
  • быстро измените следующие несколько строк в vim?
  • Как вы получаете содержимое буфера в виде строки в vim?
  • Vim Открыть файл в режимах с несколькими разделителями
  • Проблемы с цветами после обновления до Debian Stretch (vim 8.0)
  • Vim gg = G (полный файл цели) без потери текущей позиции
  • Заменить символы Unicode в VIM?
  • Как я могу отключить нестандартные параметры vim?
  • Как написать команду в vim для запуска нескольких команд?
  • Linux и Unix - лучшая ОС в мире.