Я использую Vim уже около 7 месяцев, в основном я пишу код на javascript, но иногда на bash или python. Я подобрал много хитростей для его использования и часто выкрикиваю «если я не могу; не делай этого, узнай как» или «если я думаю, что можно что-то улучшить, узнай как». Мне очень трудно делать большие реструктуризации файлов, перемещая блоки кода из одного файла в другой. Я пытался использовать :vsplit чтобы сделать вещи немного проще. Но это все еще кажется неуклюжим. Каков наилучший способ или способ перемещения относительно больших блоков (10-30 строк) кода вокруг файла?

1 ответ1

0

Самый простой способ будет:

  1. Вырежьте блок, который вы хотите переместить, либо напрямую (например, di{ ), либо после визуального выбора (например, vipd ).

  2. перейдите туда, где вы хотите, чтобы этот блок был и вставьте.

И я не вижу в этом ничего "неуклюжего".

Как вы делаете это прямо сейчас и почему это неуклюже?

Во всяком случае, вот красота Ex команд:

:'<,'>m33    <-- move the currently selected text to after line 33
:50,62m19    <-- move lines 50 to 62 to after line 19
:-23,+15m13  <-- move 13th line above to 15th line below to after line 13
:'{,'}m'a    <-- move the current paragraph to after mark a
:?^foo?,'bm. <-- move 1st line matching ^foo upward to mark b to after the current line

О, боже ... Смотрите :exusage :help :move и :help range .

Обратите внимание, что у Vim есть способы помочь вам перемещаться:

  • отметки, ma чтобы поставить отметку a , 'a чтобы перейти к отметке a , см . :help mark-motions
  • список переходов, <C-o> чтобы перейти назад, <C-i> чтобы перейти вперед, см . :help jumplist

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .