Вікна та буфери
У vim 7 з'явилися таби – звичний спосіб навігації по файлах. Коли я працював у eclipse, я не раз помічав, що часто скакати між табами не зручно, а знайомство з буферами в emacs наштовхнуло на прочитання документації по вікнах/буферах у vim.
Чим гарні буфери порівняно з табами? По-перше в vim таби - це теж буфери, тільки навігація по них проходить інакше. Проблема табів в тому, що вони націлені на візуальну навігацію, а коли ви захоплено програмуєте в vim, вам як і мені напевно ліньки тягтися до миші і ви точно знаєте який файл хочете редагувати, пишіть ім'я - і все! Ну це звичайно ж моє імхо :)
З буферами розібралися, поїхали далі. Як я сказав у першому абзаці - іноді потрібно часто скакати між файлами, і не таби не буфери просто так проблему не вирішують. Набагато зручніше було б розбити вікно на два по вертикалі чи горизонталі. Відразу з місця в кар'єр, бойовий приклад: вам потрібно дізнатися визначення якоїсь функції, якщо теги згенеровані, достатньо натиснути Ctrl-] щоб перейти на нього. Але відкриється новий буфер, що дуже зручно. Якщо ж натиснути Ctrl-w], то вікно буде розбите по вертикалі, і в новому вікні буде визначення. Зручно? Мені так. Віконце можна закрити старим добрим :q або видалити буфер :bd. Щоб зробити вікно єдиним (читай розгорнути), виконуємо комбінацію Ctrl-w o. Короткий опис роботи з вікнами:Ctrl-w стрілочки :) - переміститися на вікно вліво/вправо/вгору/внизStrl-w o - розгорнути вікно >Ctrl-w c - закритиCtrl-w s - розділити вікно по горизонталіCtrl-w v - теж, тільки по вертикаліCtrl-w ] - розділити і перейти на визначення чогось, що під курсоромCtrl-w f - розділити і в новому вікні відкрити файл шлях до якого знаходиться підкурсором, дуже зручно робити на інклюдах Команди::split - розділити, якщо вказаний файл то відкрити його:vsplit - теж тільки по вертикалі >:sb[uffer] — розділити та редагувати буфер. Важливий момент: якщо заново відкрити файл (наприклад через split) то буфер скидається, разом з історією скасування і положенням курсору
Власне про навігацію в vim розповів все, що хотів, за допомогою звертайтесь до :help window. Хочу лише додати доповнення тексту.
Додаток у vim робиться за Ctrl-n, Ctrl-p. Але ми можемо вказати який тип доповнень хочемо побачити:Ctrl-x Ctrl-f - файли, вони шукаються в поточному каталозіCtrl-x Ctrl-d - дефайниCtrl-x Ctrl-i - слова з поточного та відкритих файлівCtrl-x Ctrl-k - зі словникаCtrl-x Ctrl -] - всі тегиCtrl-x Ctrl-o - omni completion, такий собі intellisense який працює чудово з C, Python і т.д. Проте для роботи C++ необхідний сторонній плагін. Рекомендую.
Сподіваюся, був корисний.
Хардкорна конфа за С++. Ми запрошуємо лише профі.