Подтвердить что ты не робот

Как вырвать весь блок в Vim?

Можно ли выкопать весь блок кода Python в Vim?

Будь это def, for, if и т.д. блок...

4b9b3361

Ответ 1

Вы можете вытащить абзац с помощью y}. Это не будет выдергивать все методы, если у вас есть пустая строка.

Ответ 2

Если вы хотите вытащить все, кроме {, используйте yi{ (или yi}). Если вы хотите включить фигурные скобки, используйте ya{ (или ya}).

Модификаторы i и a означают внутри и все.

Чтобы вырвать слово независимо от того, где в слове вы находитесь: yiw

Чтобы сохранить содержимое круглых скобок: yi); если вы хотите включить их, используйте ya(

Вы можете сделать то же самое для " или ' с помощью yi", ya" или yi' и ya'.

Конечно, вы не ограничены дерганием. Вы можете удалить слово с помощью diw или изменить его с помощью ciw и т.д. И т.д....

Ответ 3

Отличный дополнительный пакет Python-mode включает в себя некоторые команды для навигации по классам, методам и функциональным блокам.

  • Чтобы вытащить метод: y a M (внутренний метод: y i M)

  • Чтобы вынуть класс: y a C

Есть и другие удобные движения, такие как переход от функции к функции (] ]). Подробнее см. полный список ключей.

Ответ 4

Там есть vim add-on script python_fn.vim, который имеет в качестве одной из своих функций привязку клавиш для визуального выбора блок кода Python с помощью ]v. Вы могли бы затем вытащить его с помощью y как обычно.

Ответ 5

Обычно я использую только режим визуальных блоков. Shift-V, переместить и "y" выделить выделенный блок. Там так много ярлыков я могу сохранить в памяти сразу:)

Ответ 6

  • Введите визуальный выбор линии, нажав 'V'
  • Закончив выбор блока pres 'y'
  • Вставьте его где-нибудь с помощью "p" или "P"

Ответ 7

Вы можете комбинировать поиск с yank, поэтому, если ваша функция заканчивается на return retval, вы можете ввести y/return retval

Ответ 8

Я создал плагин с именем spacebox, который делает визуальный выбор всех строк с тем же или большим отступом, что и текущая строка.

С пробелом Python, таким как он есть, вы можете поместить курсор на строку ниже def или if и выдать команду :SpaceBox, чтобы выбрать ваш "блок".

Ответ 9

Просто сложите класс с помощью za, а затем используйте визуальный режим (V), чтобы выбрать свернутый класс. Таким образом, вам не нужно слишком много прокручивать. Затем просто дергайте y. Когда вы закончите, yanking разворачивает класс с помощью za снова.

Ответ 10

  • В файле .py нажмите Esc
  • Нажмите shift V, чтобы войти в режим визуальной линии.
  • Выделите клавиши со стрелками вверх и вниз
  • Нажмите d, чтобы удалить выбранные строки
  • Перейдите к строке, в которую вы хотите поместить строки, и нажмите p, чтобы вставить строки после строки или нажмите shift P, чтобы вставить перед строкой

Надеюсь, что это поможет.

Ответ 11

vim-indent-object работает очень хорошо. Стоит сделать снимок.