Можно ли выкопать весь блок кода 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 снова.
Esc
shift V
, чтобы войти в режим визуальной линии.d
, чтобы удалить выбранные строкиp
, чтобы вставить строки после строки или нажмите shift P
, чтобы вставить перед строкойНадеюсь, что это поможет.
vim-indent-object работает очень хорошо. Стоит сделать снимок.