Как вытащить целый блок в Vim? - PullRequest
23 голосов
/ 07 октября 2009

Возможно ли вытащить целый блок кода Python в Vim?

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

Ответы [ 11 ]

23 голосов
/ 07 октября 2009

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

8 голосов
/ 30 июля 2012

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

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

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

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

8 голосов
/ 26 декабря 2010

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

Модификаторы i и a означают in и all .

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

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

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

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

4 голосов
/ 07 октября 2009

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

3 голосов
/ 08 октября 2009

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

3 голосов
/ 08 октября 2009
  1. Введите визуальный выбор линии, нажав «V»
  2. Когда закончите выбор блока, нажмите 'y'
  3. Вставьте его где-нибудь с помощью 'p' или 'P'
3 голосов
/ 07 октября 2009

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

1 голос
/ 24 июня 2012

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

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

0 голосов
/ 13 октября 2017

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

0 голосов
/ 03 октября 2017
  1. В .py файле нажмите Esc
  2. Нажмите shift V, чтобы войти в режим визуальной линии
  3. Подсветка клавишами вверх и вниз
  4. Нажмите d, чтобы удалить выбранные строки
  5. Перейдите к строке, в которую вы хотите поместить строки, и нажмите p, чтобы вставить строки после строки, или нажмите shift P, чтобы вставить строку перед строкой.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...