Vim » proft.com.ua [Блог о Web, IT, life]

Расцветка кода в gVim

38 Vim Комментариев нет

Наткнулся сегодня на очень полезный сайт для тех, кто пользуется gVim‘ом - Vim Color Scheme

Это набор цветовых схем, для оформления синтаксиса исходного кода. Всего представлено 321 тема (на время публикации поста). Цветовые схемы разбиты по нескольким категориям: сначала по типу файла, а потом по цвету фона (темный или светлый). Тут же можно просмотреть примеры оформления и скачать понравившееся оформления.

Файлы копировать в папку /usr/share/vim/vim71/colors/
Смена цветовой схемы в gVim: colorscheme rdark

Настройка шрифта в VIM

52 Vim Комментариев нет

В этом посте опишу как настроить отображение шрифтов в GVim под Ubuntu и добится при этом удовлетворительного вида.

Установка произвольного шрифта и размера производится командой:

:set guifont=Courier\ New\ 13

Но можно выбрать желаемый шрифт в GUI окне, в котором отображается список установленных шрифтов в системе:

set guifont=*

Также не помешает под настроить межстрочный интервал (в пикселях):

set linespace=2

Установка новых шрифтов, производится копированием файла с шрифтом в папку ~/.fonts/

Для того, что бы убрать сглаживание у определенного шрифта (в данном случае Courier New), необходимо записать в файл ~/.fonts.config следующие содержимое:

<?xml version=”1.0″?>
<!DOCTYPE fontconfig SYSTEM “fonts.dtd”>
<fontconfig>
<match target=”font”>
<test qual=”any” name=”family”>
<string>Courier\ New</string>
</test>
<edit name=”antialias” mode=”assign”>
<bool>false</bool>
</edit>
</match>
</fontconfig>

После этого обновляем кэш шрифтов в системе выполнив в терминале команду sudo dpkg-reconfigure fontconfig

Комментирование кода в VIM

70 Vim Комментариев нет

Для VIM существует отличный плагин для комментирования исходников, имя ему The NERD Commenter. Он предоставляет множество операции и стилей для комментирования текстов программ, скриптов,  конфигов и т.д. Заявлена поддержка комментирования для 315 типов файлов,  как неудивительно есть большинство и тех которые нужны мне: apache config, css, javascript, php, xhtml, python, sql, xml, etc.

Далее »

Управление окнами в VIM

97 Vim Комментариев нет

Очень удобная возможность в VIM‘e разделить текущие окно на два половины (горизонтальная или вертикальная) для одновременного редактирования разных файлов или сравнения.

Команды для создания горизонтального окна :sp, :split или Ctrl-w n. Команда :sp может принимать аргументы в виде пути к файлу :sp filename.

Тоже самое, но для вертикального окна :vsp или :vsplit

Создание пустого вертикального окна :vne

Увеличение ширины текущего окна C-w >
Уменьшение ширины текущего окна C-w <
Увеличение высоты текущего окна C-w +
Уменьшение высоты текущего окна C-w -

Открытие файла в окне с переходом к первому найденному слову:
:sp +/слово filename

Открытие файла в окне с шириной в 5 линий:
:5 sp filename

Для выравнивания ширины окон в один размер нажимаем Ctrl-w =

Переключение между окнами :
Ctrl-w j – переход к нижнему окну
Ctrl-w k – переход к верхнему окну
Ctrl-w Ctrl-w – циклическое переключение

Для закрытия активного окна нажимаем Ctrl-w q

Ctrl-w r (R) – перемещение окон в прямом (обратном) направлении

Сравнение файлов в VIM

95 Vim Комментариев нет

Для запуска VIM с несколькими файлами для сравнения передаем пути к файлам аргументами и указываем ключ -d

vim -d file1 file2 [file3 [file4]]

Для запуска сравнения в уже открытом VIM’е набираем :diffsplit {filename} и в текущем окне откроется дополнительное горизонтальное окно с файлом {filename}. Для открытия в вертикальном окне пишем :vert diffsplit {filename}.

При внесении изменений в один из файлов VIM будет пытаться отображать изменения, если этого не происходит вводим :diffupdate для принудительного обновления.

Команды для перемещения между изменениями:

[c - переход к предыдущим различиям
]c - переход к следующим различиям

Две команды для копирования изменений из одного окна (или как еще называют буфера) в другое:

:diffg или do- внесение изменений из неактивного окна в текущие (там, где находится курсор)
:diffpu или dp - внесение изменений из активного окна в неактивное

VIM: выполнение команд при поиске

46 Vim Комментариев нет

В VIM’e можно не только производить поиск по регулярным выражениям, но и выполнять команды для совпавших строк.

Синтаксис :s/<regex>/=<command> выполнение команды <command> для каждого правила совпадения <regex>.

Например:

:g/^$/ d - удаление всех пустых строк в файле

Дополнительное чтиво Vim Regular Expressions 101

Сворачивание (folding) в VIM

83 Vim Комментариев нет

Часто когда работаешь с большими файлами, особенно исходниками программ, тяжело окинуть быстрым взглядом все методы/функции т.к. их тело мешает обзору. В VIM есть удобная возможность сворачивать текстовые блоки в одну линию (для кода - все тело метода сворачивается в заголовок метода).

VIM может сворачивать текстовые блоки по следующим правилам:

  • ручное сворачивание по метке (описано в :help fold-manual)
  • сворачивание на основании отступов в начале строк (описано в :help fold-indent)
  • использование выражений для сворачивания (описано в :help fold-expr)
  • сворачивание на основании синтаксиса (описано в :help fold-syntax)
  • использование разницы - сворачивание не изменившегося текста (описано в :help fold-diff)
  • вставка в тексте маркеров для обозначения точки сворачивания (описано в :help fold-marker)

Для начала использования необходимо активировать возможность сворачивания :set foldenable
Затем задать правило для сворачивания, например, :set foldmethod=indent (сворачивание на основании отступов в начале строк)

Существует множество команд для управления сворачиванием, я приведу только основные:

zc - свернуть блок
zo - развернуть блок
zM - закрыть все блоки
zR - открыть все блоки
za - инвертирование (если открыто - закрыть, если закрыто - открыть)

Дополнительное чтиво Vim documentation: fold

Запись макросов в VIM

70 Vim Комментариев нет

Выполнение сложных, монотонных задач часто может забирать много времени и не решатся через использование регулярных выражений. Vim предоставляет возможность записи последовательности действий:

  • введите в командном режиме qa - команда для записи всех последующих действий в регистр а (или любой другой, который укажите после q).
  • выполняем нужные операции
  • нажимаем снова q (в командном режиме) для остановки записи

Все, теперь макрос записан в регистр а. Вводим @a, в командном режиме, для выполнения содержимого регистра а.

Простой пример работы - перемещение текущей строки в начало файла:

  1. Переходим к желаемой строке, нажимаем qa
  2. Вносим изменения: нажимаем dd для вырезания строки в буфер
  3. Нажимаем m’ для установки метки
  4. :1 ENTER (или gg) - переход к первой строке файла
  5. P - вставка строки из буфера
  6. - возвращения к установленной метке (шаг 3)
  7. Нажимаем q для завершения записи макроса

Для исполнения записанного макроса переходим к следующей строке для перемещения в начало файла и нажимаем @a

В дополнение: команда @@ повторяет последний макрос.

Vim - наше все!

59 Vim Комментариев нет

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

Много я перебробовал текстовых редакторов, еще начиная с Bred (первых версий), потом всякие EditPad, EmEditor, Gsnote, notepad2, PsPad, UltraEdit и т.д. Всем им не хватала чего, в одном не было назначения горячих клавишей, другой не понимал кодировок, третий раствлял табы и пробелы где не попадя, у четвертого подхрамывал внешний вид … А что большего всего удручало, что на других ПК или после смены ОС приходилось все настраивать заново.

После всего я решил попробовать Vim - без предварительного обучения, а сразу им пользоватся затрудительно, и изменения под себя (благо все гибко настраивается) я “обрел” покой :) Все настолько стало “гладко и шелковисто” что просто не передать :-D

Режимы Vim’a:

Некоторые из особеностей Vim:

  • Мега удобное перемещение по тексту - один раз попробавши, задумываешся как раньше без этого обходился. Полный список можно найти в cheats, приведеных в конце поста.
  • Гибкое назначение клавиш для любого режима (maping)
  • Гибкое создание сокращений (Например, ab h1 <h1></h1>)
  • Метки: в командном режиме: установка метки mx (m - команда установки, х - метка), переход к установленной метке ‘x ( - команда перехода, х - метка). :marks - просмотр всех меток, ‘. - переход к месту последнего редактирования. Переход по истории перемещения по файлу : Ctrl-o и Ctrl-i.
  • 6 вариантов авто-завершение слов (Auto-completion), некоторые из них:
    • автозавершение из ранее набранных слов Ctrl-n
    • автозавершение из пользовтельского словаря Ctrl-x Ctrl-k
    • omni-завершение - автозавершение в зависимости от контекста
  • Запуск Vim с открытием на необходимой строке gvim +10 filename, или на первом найденом слове gvim +/foobar filename
  • Гибко настраиваемое выделения текста: можно выделать любую комбинацию букв, слов, чисел, назначать этим правилам совпадения разные цвета.
  • Проверка правописания: скачиваем необходимый словарь, переходим в нормальный режими нажимаем z=
  • Запись макросов
  • 9 типов регистров (:registers)
  • откаты с ветками (:undilist)
  • откаты по времени :earlier N(s|m|h)
  • 6 типов сворачивание текста
  • сессии редактирования (:mksessions name.vim / source name.vim)
  • встроенный механизм сравнения (:vert diffsplit filename)
  • работа с файлами на удаленном сервере по SCP, SFTP, RCP, HTTP, DAV, rsync, fetch

На память:

Дополнительное чтиво:

Мой .gvimrc:

Download: .gvimrc  .gvimrc (2.9 Кб, 30 hits)

 
Powered by WordPress