Можно ли выкопать весь блок кода Python в Vim?
Будь это def, for, if и т.д. блок...
Можно ли выкопать весь блок кода Python в Vim?
Будь это def, for, if и т.д. блок...
Вы можете вытащить абзац с помощью y}. Это не будет выдергивать все методы, если у вас есть пустая строка.
Если вы хотите вытащить все, кроме {, используйте yi{ (или yi}). Если вы хотите включить фигурные скобки, используйте ya{ (или ya}).
Модификаторы i и a означают внутри и все.
Чтобы вырвать слово независимо от того, где в слове вы находитесь: yiw
Чтобы сохранить содержимое круглых скобок: yi); если вы хотите включить их, используйте ya(
Вы можете сделать то же самое для " или ' с помощью yi", ya" или yi' и ya'.
Конечно, вы не ограничены дерганием. Вы можете удалить слово с помощью diw или изменить его с помощью ciw и т.д. И т.д....
Отличный дополнительный пакет Python-mode включает в себя некоторые команды для навигации по классам, методам и функциональным блокам.
Чтобы вытащить метод: y a M (внутренний метод: y i M)
Чтобы вынуть класс: y a C
Есть и другие удобные движения, такие как переход от функции к функции (] ]). Подробнее см. полный список ключей.
Там есть vim add-on script python_fn.vim, который имеет в качестве одной из своих функций привязку клавиш для визуального выбора блок кода Python с помощью ]v. Вы могли бы затем вытащить его с помощью y как обычно.
Обычно я использую только режим визуальных блоков. Shift-V, переместить и "y" выделить выделенный блок. Там так много ярлыков я могу сохранить в памяти сразу:)
Вы можете комбинировать поиск с yank, поэтому, если ваша функция заканчивается на return retval, вы можете ввести y/return retval
Я создал плагин с именем spacebox, который делает визуальный выбор всех строк с тем же или большим отступом, что и текущая строка.
С пробелом Python, таким как он есть, вы можете поместить курсор на строку ниже def или if и выдать команду :SpaceBox, чтобы выбрать ваш "блок".
Просто сложите класс с помощью za, а затем используйте визуальный режим (V), чтобы выбрать свернутый класс. Таким образом, вам не нужно слишком много прокручивать. Затем просто дергайте y. Когда вы закончите, yanking разворачивает класс с помощью za снова.
Escshift V, чтобы войти в режим визуальной линии.d, чтобы удалить выбранные строкиp, чтобы вставить строки после строки или нажмите shift P, чтобы вставить перед строкойНадеюсь, что это поможет.
vim-indent-object работает очень хорошо. Стоит сделать снимок.