Блоґ одного кібера

Історія хвороби контуженого інформаційним вибухом

Згортання в Vim

with 6 comments

З’явився новий розділ вікіпідручника про Vim.

Vim дозволяє згортати деякі частини тексту в один рядок, якщо ви не плануєте з ними найближчим часом працювати, щоб вони не заважали вам читати документ. Це зручно, якщо ви наприклад написали довгий клас посеред програми, а тепер вам часто доводиться редагувати якісь константи на початку, і основний код в кінці. Перегортати щоразу 100-200 рядків – забагато мороки. Тому їх можна згорнути.

Команди роботи зі згортками в Vim починаються з букви z. Англійською згортка – fold. Буква z обрана тому, що вона схожа на зігнутий листок паперу.

Команди роботи зі згортками
  • zf#j створити згортку від курсора і на # рядків нижче.
  • zf/string створити згортку від курсора до рядка що містить “string”.
  • zj перейти до наступної згортки.
  • zk перейти до попередньої згортки.
  • zo відкрити згортку під курсором.
  • zO відкрити всі згортки під курсором.
  • zm збільшити рівень вкладеності закритих згорток на одиницю. (Закрити по одній згортці що містить інші згортки).
  • zM закрити всі відкриті згортки.
  • zr зменшити рівень вкладеності закритих згорток на одиницю (Відкрити всі зовнішні згортки, не чіпати їх вміст).
  • zR відкрити всі згортки.
  • zd видалити згортку під курсором.
  • zE видалити всі згортки.
  • [z переміститись на початок відкритої згортки
  • ]z переміститись на кінець відкритої згортки

Тепер відкриймо якийсь файл з достатньою кількістю рядків, і створимо першу згортку. Для цього поміщуємо курсор в перший рядок нашої згортки, і пишемо команду zf4j. zf (f – fold) означає створити згортку, а 4j – команда переміщення курсору 4 рази вниз. Це створює згортку п’яти рядків починаючи з нашого включно. Можна використати іншу довільну команду переміщення. Наприклад згорнути все аж до початку: zfgg, чи до першої появи в тексті слова “end”: zf/end.

Також згортки можна створювати в візуальному режимі (v, V, і навіть Ctrl+V), виділивши кілька рядків, і набравши zf.

Окрім цього, можна згорнути шматок тексту між відповідними дужками (одного рівня, вкладені пари дужок ігноруються, і теж згортаються). Для цього помістіть курсор біля відкриваючої дужки, і наберіть zfa). (Замість круглої дужки може бути фігурна, квадратна і кутова). Якщо ви знаходитесь на закриваючій дужці – вводьте zfa(, і Vim згорне від кінця до початку.

Згортки можуть бути вкладеними, тобто можна згорнути шмат тексту що вже містить згортки.

Згорнуті згортки виглядають так:

+-- 19 lines: (defun a2i (m)-------

Вони починаються з +--, якщо це згортка верхнього рівня, і збільшуюють кількість мінусів на початку, з кожним новим рівнем вкладення. Далі написана кількість згорнутих рядків, і текст першого з них.

Щоб розгорнути згортку під курсором наберіть zo (o – open). Щоб розгорнути згортку та всі вкладені в неї пишуть zO.

Розкрита згортка – це все одно згортка, редактор про неї пам’ятає, і якщо курсор знаходиться в ній, ми можемо закрити її назад командою zc.

Щоб повністю видалити згортку наберіть команду zd. Щоб видалити всі згортки – zE. Тільки будьте обережними, команда відміни u не працює для згорток, тому зміни будуть незворотніми.

Між згортками можна переміщуватись. zj – перейти до наступної згортки, zk – до попередньої.

Vim розглядає закриті згортки як рядки, тому dd видалить не тільки перший рядок тексту, а всі рядки згортки. Аналогічно і з yy.

Програмістів також може зацікавити змінна foldmethod, яка задає метод створення згорток. Її значення за замовчуванням – manual, тобто згортки створюються вручну, як було описано вище. Якщо з замінити її на

:set foldmethod=indent

то згортки створяться відповідно до вкладених блоків, але тоді їх не можна буде додавати та видаляти (зате перехід назад в режим manual не знищує створені в попередньому режимі згортки).

Посилання

  1. Vim tips: Folding fun
Advertisements

Written by bunyk

Квітень 27, 2011 at 01:00

Оприлюднено в Інструменти, Передруки

Tagged with ,

Відповідей: 6

Subscribe to comments with RSS.

  1. Я в шоці наскілький цей вім незручний..

    Андрій

    Квітень 27, 2011 at 08:03

    • А ви хоча б пробували з нього вийти? 🙂

      bunyk

      Квітень 27, 2011 at 10:09

      • “Давно, в молодости, я выходил из редактора “vi” с помощью кнопки Reset…” (c) bash.org.ru

        А взагалі дуже зручний редактор…. якщо вистачить терпіння розібратись.

        rchukh

        Квітень 27, 2011 at 17:53

      • хах, пробував) це найголовніша команда)

        Андрій

        Травень 1, 2011 at 16:53

        • Ну, може не найголовніша (“i” напевне головніша), але явно та команда яку починають гуглити найпершою.

          bunyk

          Травень 1, 2011 at 17:18

    • pacman -R vi vim

      Першим ділом на лінуксах =)

      danbst

      Квітень 27, 2011 at 12:45


Залишити відповідь

Заповніть поля нижче або авторизуйтесь клікнувши по іконці

Лого WordPress.com

Ви коментуєте, використовуючи свій обліковий запис WordPress.com. Log Out / Змінити )

Twitter picture

Ви коментуєте, використовуючи свій обліковий запис Twitter. Log Out / Змінити )

Facebook photo

Ви коментуєте, використовуючи свій обліковий запис Facebook. Log Out / Змінити )

Google+ photo

Ви коментуєте, використовуючи свій обліковий запис Google+. Log Out / Змінити )

З’єднання з %s

%d блогерам подобається це: