Я визуально выбираю блок кода (scss) в Vim и пытаюсь переместить его так, чтобы он отображался после строки 6.
После визуального выбора строк я использую следующую команду: m -6
Однако на самом деле линии не перемещаются, как я ожидал. Смотрите этот Gif результата:
Видите ли вы, как результат заканчивается выручка? Мое понимание состоит в том, что команда move должна перемещать блок выбранного кода после указанной линии?
Таким образом, после команды перемещения код будет выглядеть так:
&.on-Grey_C7 {
}
&.on-Grey_BB {
border: 1px solid brighten($color-yellow, -31);
}
Что я делаю не так?
2 ответа
Даже если вы создали линейное визуальное выделение сверху вниз и ваш курсор находится в строке 173, когда вы выполняете команду Ex (например, :move
) в диапазоне, курсор вернется в начало выбор (например, строка 171), и, следовательно, ваше смещение неверно ('<,'>m -4
верно).
Чтобы избежать необходимости мысленно настраивать смещение, вы можете использовать команду o
в визуальном режиме (перед вводом командной строки с помощью :
), чтобы переместить курсор в начало выделения.
o
или без него при визуальном выборе он приводит к одному и тому же результату.
'relativenumber'
вы можете просто прочитать количество строк для перемещения.
:Move
, которая учитывает это, но я бы рекомендовал просто принять это, так как это влияет и на другие команды.
Все сработало правильно, вы плохо поняли адрес.
:'<,'>m -6
Перемещает ваш блок под строку с номером (your 1st selected line number -6)
В вашем случае номер вашей первой выбранной строки - 171
, поэтому ваша заблокированная строка была перемещена под строку: 171-6 = 165, которая начинается с 166. vim делает это в точности правильно.
В вашем случае вам следует сделать:
:'<,'>m 6
Который перемещает ваш блок под линию (абсолютная строка #) 6
Чтобы понять адрес, :h address
Вы также можете открыть новый буфер, выполнить !!seq 20
, а затем немного поиграть.
Похожие вопросы
Новые вопросы
vim
Vim - это бесплатный модальный текстовый редактор с открытым исходным кодом, доступный для большинства основных платформ. Это позволяет с высокой эффективностью выполнять многие задачи по редактированию текста, но имеет крутую кривую обучения. Чтобы изучить основы, запустите ": help vimtutor". Для вопросов, не связанных с программированием, используйте https://vi.stackexchange.com/.
m {line-number}
. В вашем случае это будетm 6
после выбора блока. это полезно прочитать