Полезные vim-плагины. подборка лучших представителей и их установка

NERDTree

Этот плагин является плагином, который будет установлен практически все персонал R & D — дерево каталогов, которое может поддерживать быстрое переключение файла без выхода из VIM и может сделать разработчики быстро овладеть структурой каталогов проекта, которая является разработкой для улучшения Эффективность необходима. Результаты предварительного просмотра показаны ниже:

2. Конфигурация

Nerdtree может быть использован непосредственно по умолчанию. Конечно, после изменения какого-либо отображения вы можете сделать дерево каталога использовать больше сердца. Наиболее распространенная конфигурация доступна в ~ / .vimrc Добавьте следующую команду для быстрого открытия дерева каталога с помощью Ctrl + N.

3. Используйте

Использование дерева каталогов в основном для достижения соответствующего эффекта, набрав следующую команду в командном режиме VIM.

: Быстрая справочная документация

: Откройте каталог или откройте файл, создайте буфер, или вы можете использовать для открытия закладки

: Откройте файл, но курсор остается в Nerdtree, создал буфер

: Откройте файл, создайте вкладку, то же самое одинаково для закладок

: Откройте файл, но курсор остается в Nerdtree, создал вкладку, которая вступает в силу на закладки

: Горизонтальная сегментация создает окно окна, созданный буфер

: Окно окна создания горизонтального сегментации, но курсор остается в Nerdtree

: Вертикальная сегментация создает окно окна, созданный буфер

: А Ги, пойти похоже

: Свернуть текущий открытый каталог

: Коллапс все открытые каталоги

: Откройте выбранный каталог на пути управления файлами

: Удалить закладки

Раскраски

luochen1990/rainbow

Это раскраска скобочек всеми цветами радуги для vim. Достоинства в том что она
есть и вроде как худо-бедно поддерживается. Недостатки как по мне в том что
нельзя ограничить уровень вложенности(мне не по душе когда цвета) начинают
повторяться, также мне не нравится что не всегда можно управлять семантикой, то
есть он просто считает уровень скобок(любых) вне зависимости от их
характеристик. На фоне того что есть для emacs смотрится как-то слабо. Также не
раскрашивает скобки в отдельности, без пар, не позволяет раскрашивать операторы
не так как скобки и проч. В настоящее время не использую, потому что версия от
otommod/rainbow у меня ломает подсветку, а оригинал неправильно
инициализируется(не очень понял почему). Суть того как это выглядит изображена
вот на этой картинке:

Файлы синтаксиса.

Я использую следующие дополнительные файлы для подсветки в vim:

  • vim-tmux
  • vim-json
  • vim-toml
  • vim-mathematica
  • vim-javascript
  • vim-git
  • Dockerfile
  • vim-golang
  • vim-regionsyntax
  • css
  • moonscript
  • vim-puppet
  • clighter
  • Clamp

Компания плагинов для синтаксиса разных типов файлов. В общем-то рассказать
особо нечего, кроме последнего. Эти два плагина используют clang для
семантической раскраски. Получается в общем-то даже лучше, чем, в настоящий
момент в том же Clion от Jetbrains. Но с оговорками. В общем оно(подсветка) как
бы пляшет туда сюда и постоянно видны “следы” инкрементальной компиляции. Clamp
возможно работает лучше, но я его пока не тестировал из-за того что neovim
у меня в целом в процессе вялой настройки.

Поддержка git

Для интеграции git в vim я использую следующие плагины:

vim-fugitive
vim-github-dashboard
github-issues
vim-merginal
junegunn/gv
DirDiff.vim
vim-gitgutter

Пачка плагинов для поддержки git в vim. Здесь самый главный это fugitive,
также мне очень нравится смотреть последние коммиты с помощью GV. Думаю добавить
это в интеграцию одной своей приблуды, про которую я расскажу чуть позже, чтобы
использовать вместо tig. Mergial это простой плагин для того чтобы разбираться
с конфликтами слияний. В общем-то он так прост, что и рассказать особо нечего,
остальные плагины по желанию. Про vim-fugitive я уже говорил, с ним наоборот
лучше обратиться к официальной документации.

Автодополнение

Valloric/YouCompleteMe

Первый у нас это youcompleteme, про который я уже рассказывал. Это быстрый
и удобный автокомплитер для vim. Также есть биндинги для emacs, atom и других
редакторов c помощью ycm, но я не проверял как они работают.

Достоинства:

  • Самая высокая скорость работы
  • Fuzzy-finding
  • Поддержка довольно большого количества языков

Недостатки:

  • Требуется поддержка python
  • Требуется компиляция

Чтобы собрать его нужно воспользоваться примерно следующей командой(за
подробностями можно обратиться к документации):

Теперь к настройке. Во-первых, если вы заметили, то все настройки плагинов
у меня заключены в “скобки” из конструкций вида вроде if
neobundle#tap(‘YouCompleteMe’) … endif. Это сделано для того чтобы не
выполнять настройку плагинов тогда, когда они не используются, что с одной
стороны создает что-то вроде дополнительного уровня абстракции(четко видно где
настройки какого плагина), а с другой позволяет потенциально немного ускорить
загрузку. В любом случае ускорение точно будет в тех случаях, когда команды
“тяжелые”.

Вот что у меня сделано для ycm:

Останавливаться на каждой опции это довольно круто, к тому же большая часть
говорит сама за себя. Часть с SetCompleteFunc, возможно, экспериментальная
и работать не будет из-за некорректной работы ultisnips. Но вообще было бы
интересно проверить возможно ли в динамике переключить youcompleteme на что-то
ещё, видимо так оно там и оказалось. Для youcompleteme характерно некоторое
замедление скорости работы, так что для типов файлов из
g:ycm_filetype_blacklist он не используется. Большая часть опций более или
менее стандартные. Не рекомендовал бы использовать preview window, потому что
хоть это и кажется удобным на практике это приводит только к дерганьям
интерфейса и тормозам при работе.

Возможно есть комплитеры быстрее, но я их не знаю.

Тем не менее грех о них не упомянуть:

  • neocomplete. Требует lua, что делает его невозможным для использования
    в neovim на настоящий момент. Из достоинств, как мне кажется, большая
    информативность некоторых видов автокомплита по сравнению с youcompleteme.
    Когда я в последний раз его пробовал скорость была так себе, возможно
    в настоящий момент это изменилось.
  • clang_compete. Не универсальный, работает медленней чем youcompleteme,
    следовательно не нужен.
  • AutoComplPop. Довольно старый, использование его не имеет смысла как по мне.
  • supertab. Довольно неплохой, активно поддерживается, автокомплит не совсем
    auto, а с помощью tab. Возможно неплохое решение для слабых компьютеров, но
    я не использую.
  • Shougo/deoplete.nvim. Выглядит круто, честно говоря пока не пробовал.
    Возможно в будущем это будет классный проект, но в настоящий момент он ещё
    не вылез из детских яслей.

Чем хорош Vim в плане разработки на Python?

Согласно философии Vim, разработчики
куда более продуктивны, если им не
приходится отрывать руки от клавиатуры.
Код должен естественным образом
перетекать из их мыслей на экран через
пальцы и клавиши. Использование мыши и
прочих устройств замедляет преобразование
мыслей в код.

В редакторе Vim очень логичный и
структурированный язык команд. Когда
новичок приступает к ознакомлению с
редактором, названия команд могут
показаться ему непонятными и, как
следствие, трудными для запоминания.
Но все они строятся и комбинируются,
подчиняясь определенным правилам. Когда
вы усваиваете эти правила, язык команд
становится понятным и предсказуемым.

coc.nvim

Есть много интеллектуальных плагинов, есть общиеYouCompleteMe、deoplete.nvim、coc.nvimПодождите, где YCM известен как легендарный самый интеллектуальный плагин для завершения VIM, включая грамматическое завершение интеллекта, ошибку синтаксиса, скачок функции и другие функции. Тем не менее, его зависимость является сложным, и машина внутреннего развития компании не может подключаться к внешней сети, одна ручная обновление / монтажная зависимость действительно повредит ????, сдавайся. В конце концов, после сравнения нескольких интеллектуальных завершенных плагинов для одновременной и простотой установки и простоты использования я выбрал интеллектуальное новое шоу COC.NVIM. Плагин выделяется следующим образом :

  • Несколько методов запуска,Поддержка ручного триггераОтказ По умолчанию всегда автоматический режим указывает, что входные слова первые буквы и символ триггера, который можно настроить для триггера режима, указывающий, что только триггер при въезде на символ триггера или настроен на None, указывающий отключенный автоматический триггер. Корпус связывания может быть вызван вручную в любом режиме триггера.

  • Нечеткий матч, умный случайОтказ Основана с YCM.

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

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

Давайте посмотрим на полный эффект ~

Монтаж

COC.NVIM опирается на Nodejs, поэтому мы должны сначала установить Nodejs

Установите COC.NVIM, также нужно использовать vim-plug, настроить его в файл ~ / .vimrc

Введите в командной строке VIMЕсли есть аналогично следующей информации, плагин успешно установлен

2. Конфигурация

COC.NVIM — это просто платформа, которая позволяет устанавливать различные языковые плагины для достижения разных языков. Таким образом, у нас есть только соответствующие языковые плагины, чтобы составить. Возьмите C / C ++ в качестве примера:

Введите командный режим в VIMЧтобы настроить файл конфигурации для COC.NVIM

PS: В этом режиме конфигурации COC в основном зависит от Clangd, поэтому вам необходимо заранее установить Clangd.

Как только конфигурация завершена, вы можете сделать это напрямую.

3. Продвинутый

Только что сказал, что COC.NVIM в качестве платформы сама также содержит различные расширения, которые могут быть установлены с плагинами расширения с высоким порядком для этой платформы, установив следующую команду. Например, вы не хотите настроить его вышеВы также можете заполнить автоматическое завершение C / C ++ C / C ++ напрямую, установив плагин Coc-Clangd.

Установить команду

Удалить команду

Просмотр установлен

Обновить команду

Кроме того, вы можете сопоставить расширения COCS, что делает его более в соответствии с вашими действующими привычками. Конфигурация следующим образом в ~ / .vimrc

Плагины Vim

  • Getting more from Vim with plugins. В этой статье вы найдете список плагинов с описаниями и примечаниями относительно их полезности. Также интересны комментарии внизу статьи, поскольку читатели предлагают альтернативные варианты для некоторых плагинов, упомянутых в тексте.
  • Powerline — это популярный плагин Vim для усовершенствования строки состояния. Работает в Python 2 и 3.
  • VimAwesome — это директория с плагинами Vim. Пополняется при помощи Vim.org, GitHub и предложений пользователей.
  • Command-T — плагин Vim для быстрого нечеткого поиска файлов.
  • YouCompleteMe — движок автодополнения кода и плагин, полезный для работы с Python.

Шаг 4. Установим плагины и настроим их

Полным списком своих плагинов делиться не буду: ты сам с легкостью найдешь все нужное тебе запросами типа . Вместо этого приведу общие, которые будут полезны для переходящего с Sublime или Atom.

nerdtree

Это боковая панель с файловой структурой проекта. Аналог Sidebar в Sublime или Atom. Все привычно — выбираешь файл, открываешь его нажатием на Enter в нужном буфере. Можно установить каталог, от которого плясать.

Из полезных трюков предлагаю замапить открытие и скрытие этой панельки по + :

Показывать скрытые файлы по умолчанию:

Включать NERDTree для всех табов:

CtrlP

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

Нажимаешь + , вводишь , и плагин находит файл .

indentLine

Плагин рисует линии отступа в коде, помогая отслеживать вложенность. Раньше я использовал vim-indent-guides, но его глюки меня порядком достали. Плагин indentLine работает вроде бы получше.

Из полезных настроек предлагаю выставить символ отступа:

Дефолтный «крокодил» уж больно отвлекает внимание

vim-startify

Плагин добавляет удобный стартовый экран для твоего Vim. На нем можешь выбрать последние открытые файлы, перейти к проекту (в терминологии Vim — session).

Из полезностей нелишним будет добавить следующие строки:

Это заставит vim-startify нормально работать вместе с NERDTree.

vim-easy-align

Отличный плагин для быстрого выравнивания блоков кода по символам. Другими словами, чтобы из

быстро сделать

В наличии регулярки, безумный синтаксис и целая страница с примерами команд выравнивания кода для разных языков

Обрати внимание на строки из start guide:. Первая запускает EasyAlign в интерактивном режиме по (например, ), вторая — то же самое для блока ()

Первая запускает EasyAlign в интерактивном режиме по (например, ), вторая — то же самое для блока ().

Goyo и удобное написание текстов

Хороший помощник для тех, кто много пишет. Плагин убирает все лишние панели, индикаторы и центрирует текст, позволяя сфокусироваться на создании контента. По сути, это реализация distraction-free mode, вокруг которой даже делали отдельные текстовые редакторы вроде ommwriter.

Я забиндил переключение в этот режим по + в . По дороге отключается все, что не нужно, и включаются нужные опции:

Вообще, для файлов в формате Markdown у меня автоматически включаются такие настройки:

vim-airline

Must-have-панель со статусной информацией по текущему открытому файлу. Наверняка ты видел ее в большинстве скриншотов Vim в интернете — плагин очень популярен. Панель интерактивная, показывает текущий режим работы, раскладку, кодировку, позицию курсора в файле, строке и многое другое.

Также советую глянуть проект-сателлит vim-airline-themes. Это коллекция тем для vim-airline, которая позволяет твоей статусной строке органично вписываться в основную цветовую схему редактора.

Выводы

Vim нельзя воспринимать как просто еще один текстовый редактор. Это нечто сродни командной строке Unix. Те, кто не умеет ее использовать, считают командную строку анахронизмом. Те, кто умеет и знает, используют ее постоянно и выполняют свои задачи намного быстрее людей, предпочитающих графический интерфейс.

Как и у командной строки, у Vim очень высокий порог вхождения. Его нельзя просто запустить и начать использовать. Сначала ты должен понять, как он работает, на каких принципах базируется и почему он именно такой, какой есть. Затем тебе придется заучить множество команд, попрактиковаться, набить руку — только тогда Vim станет для тебя действительно удобным, и ты уже не променяешь его ни на какой другой редактор.

Нужно ли тебе это? Зависит от того, насколько часто ты работаешь с текстовыми данными: пишешь статьи, код, редактируешь HTML. Vim может сделать эту работу намного более эффективной. При этом навыки пригодятся и при работе в других программах — плагины с режимом Vim есть почти для всех популярных сред разработки. Я, к примеру, использую плагин IdeaVim в Android Studio. Он позволяет получить мощь команд Vim, не отказываясь от богатых возможностей среды Idea.

:wq!

『Инструкции по чтению』

1) Vim имеет несколько файлов конфигурации vimrc, таких как / etc / vimrc, этот файл влияет на Vim всей системы. Также существует ~ / .vimrc, этот файл влияет только на пользовательский Vim. И конфигурация в файле ~ / .vimrc переопределит конфигурацию в / etc / vimrc. Здесь мы изменяем только файл ~ / .vimrc.

2) Плагин Vim устанавливается в каталог runtimepath Vim, и вы можете запустить команду «set rtp», чтобы просмотреть его в командной строке Vim. Здесь мы выбираем установку в каталог ~ / .vim и создаем его, если нет.

3) Когда в этой статье говорится «Запустить команду cmdxx в командной строке Vim», это означает запустить команду cmdxx в режиме командной строки Vim, то есть войти в режим командной строки, набрав двоеточие «:» в обычном режиме Vim, а затем Затем введите команду cmdxx. В следующем описании двоеточие «:» будет опущено.

4) Если нет описания «Запустить команду в командной строке Vim», то команда выполняется в оболочке.

5) Если команда разделена пробелом или есть символы, которые легко спутать с текстом, я буду использовать двойные кавычки, чтобы отличить команду от текста. Поэтому читателям не следует вводить кавычки в начале и в конце команды при реальной работе.

6) Описание комбинации сочетаний клавиш в этой статье. Сочетание клавиш в виде ab означает одновременное нажатие клавиш a и b, а сочетание клавиш в виде «ab c» означает одновременное нажатие клавиш a и b. , Затем отпустите клавишу ab, а затем нажмите клавишу c.

7) Я использую систему Ubunt 11.10, а версию Vim — Vi IMproved 7.3.

Режимы работы

Основное отличие vim от многих других редакторов заключается в том, что в нем несколько режимов редактирования, а не один, как в большей части других. В других программах особые функции, например, копирование текста, приводится в действие комбинациями клавиш. В vim для разделения этих функций и набора текста используются разные режимы.

Нормальный режим

Режим по умолчанию, в котором vim находится после запуска. Применяется для быстрой навигации по документу и редактирования: в нем можно копировать, вставлять, перемещать, удалять и изменять текст. Переход из других режимов осуществляется нажатием клавиши «escape». Для набора текста не используется.

Режим вставки

Для набора текста нужно перейти в режим “вставки”. Он похож на интерфейс набора текста многих других программ. Вводимый вами текст появляется на экране в документе, каждая клавиша соответствует своему символу. Перейти в этот режим можно следующим образом:

i — в текущем положении курсораa — на следующем символе после текущего положенияI — в начале текущей строкиA — в конце текущей строки

Режим визуального выделения

Позволяет визуально выделять текстовые фрагменты. Затем к ним можно применять команды нормального режима для редактирования или форматирования.

v — режим обычного (посимвольного) визуального выделения перемещением курсора вверх, вниз, влево или вправо

V — режим построчного визуального выделения. Строки выделяются целиком перемещением вверх или вниз

-v — режим блочного визуального выделения. Выделяется прямоугольный участок, который можно увеличивать и уменьшать. Позволяет выбирать фрагменты нескольких линий.

Синтаксис VIM

Начнем мы, как обычно с запуска программы, а также опций, которые ей можно передать. Синтаксис Vim очень прост:

$ vim опции имя_файла

Или:

$ vi опции имя_файла

Простой запуск vim без указания имени файла приведет к созданию пустого файла. А теперь давайте рассмотрим основные опции запуска:

  • +номер – переместить курсор к указной строке после запуска.
  • +/шаблон – выполнить поиск по шаблону и переместить курсор к первому вхождению
  • “+команда” – выполнить команду после запуска программы
  • -b – двоичный режим, для редактирования исполняемых файлов.
  • -d – режим поиска различий в файлах, нужно указать несколько файлов для открытия.
  • -g – графический режим.
  • -n – не использовать автосохранение для восстановления файла при сбое.
  • -R – режим только для чтения.
  • -w – сохранить все действия в файл.
  • -x – шифровать файл при записи.
  • -C – режим совместимости с Vi.

Выход из Vim

Выход без сохранения изменений:

Как запомнить: quit dammit! (закройся, чёрт возьми!)

Выход с сохранением изменений:

Как запомнить: write to disk and quit

Для перемещения по открытому файлу используйте стрелки.

Перемещение на строку 285:

Поиск слова «import»:

Изменение текста в Vim

Вставка текста там, где стоит курсор:

Как запомнить: insert

Вставка текста в конце текущей строки:

Как запомнить: Append

Выход из режима редактирования (возврат в стандартный режим):

Выделение текста в Vim

Переход в визуальный режим:

Как запомнить: visual

Для выделения текста используйте стрелки.

Выход из визуального режима:

Копирование, удаление, вставка

Копирование выделенного текста в буфер:

Как запомнить: yank

Удаление выделенного текста:

Как запомнить: delete

Копирование текущей строки в буфер:

Как запомнить: yank yank

Копирование трёх строк, включая текущую, в буфер:

Удаление текущей строки и помещение её в буфер:

Как запомнить: delete delete

Удаление 5 строк, включая текущую:

Вставка из буфера перед текущей строкой:

Примечание: заглавная P

Вставка из буфера после текущей строки:

Отмена и восстановление последнего изменения в Vim

Отмена последнего изменения:

Как запомнить: uh-oh

Восстановление последнего отменённого изменения:

Вывод изменений:

Отмена двух последних изменений:

Многоуровневое дерево отката изменений Vim очень мощное, подробнее о нём можно почитать в документации.

Работа с файлом в Vim

Открытие файла index.html вместо текущего:

Сохранение текущего файла:

Как запомнить: write to disk

Сохранение файла с изменённым именем, например, changes.txt:

Поиск и замена всех вхождений строки в файле:

Поиск и замена с запросом подтверждения замены:

Как запомнить: confirm

Подсветка синтаксиса и отступы

Включение подсветки синтаксиса:

Включение автоматических отступов:

Увеличение отступов нескольких строк при выделении их в визуальном режиме:

Вкладки в Vim

Открытие server.py в новой вкладке:

Как запомнить: tab edit

Переход на вкладку справа:

Как запомнить: tab next

Переход на предыдущую вкладку слева:

Как запомнить: tab previous

Для закрытия вкладки переключитесь на неё и используйте команду  или .

Разделённый экран в VIM

Открытие templates/base.html в режиме вертикального разделения экрана:

Как запомнить: vertical split

Открытие shared.js в режиме горизонтального разделения экрана:

Как запомнить: the ’default’ horizontal split

Перемещение между «частями» экрана:

Для закрытия экрана переключитесь на него и используйте команду  или .

Настройка Vim: файл .vimrc

Многие команды, используемые для изменения вида и поведения Vim, можно сделать включёнными по умолчанию, поместив их в .vimrc — файл конфигурации Vim, который расположен в домашнем каталоге.

Например, добавление этих строк в  сделает подсветку синтаксиса и автоматическую корректировку отступов включёнными по умолчанию:

Командный режим

Используется для продвинутого редактирования, изменения параметров и управления. В нем выполняется сохранение, выход из программы, продвинутый поиск и многое другое. Активируется клавишей двоеточия “:”.

Команды управления

Команды управления задаются вводом “:” перед каждой командой.

:q — выход из программы. Действие не будет выполнена, если не сохранить изменения:q! — выход из программы с отменой всех изменений, которые не были сохранены:w — сохранить изменения. При первичном сохранении или сохранении в другой файл укажите имя через пробел:e — редактировать указанный далее файл:bn — редактировать следующий файл (если открыто несколько файлов):bp — редактировать предыдущий файл (если открыто несколько файлов):qw – сохранить файл и выйти

Объединение команд

Как упоминалось выше, эффективность vim обусловлена возможностью строить цепочки разных действий. Лучше всего этот принцип иллюстрируется, если представлять команды vim в виде языка. Клавиши в нормальном режиме играют роль различных частей речи.

Например, для копирования 5 слов представьте эту фразу как команды, которые понимает vim. Это будет выглядеть так:

:y5w (y — копировать, 5 — количество, w — слов)

Удалить текст от текущей позиции до окончания файла:

:dG (d — удалить, G — переход в конец файла)

Также полезно усвоить ряд используемых в действиях vim принципов. Например, сдвоенный символ обычно распространяет действие команды на всю строку. Следующая команда скопирует не один символ, а строку целиком:

:yy

С другой стороны, соответствующая команде заглавная буква часто действует от положения курсора до окончания линии. В случае с изменением текста это будет следующая команда:

:C

Чтобы выполнить операцию с несколькими символами или строками, укажите перед командой число. Например, такая команда заменит весь текст от текущего положения курсора до окончания следующей строки:

:2C

leaderF

Когда дело доходит до плагина размывания VIM, первая первая реакция людей является Ctrlp.Vim, Ctrlp очень популярен, но по сравнению с другими аналогичными плагинами, он написан с Viml (это делает его в том же плагине, это не отлично) Отказ Вот нечеткий плагин поиска —Lead, как от производительности, либо точности соответствия, далеко за пределами Ctrlp .

Leaderf — это плагин VIM, написанный в Python, который может быстро найти целевой файл в нечеткий поиск в яростном взгляде. Он также имеет много производных: быстро открыть или находить буфер, последний использованный файл (MRU), теги (включая функции, классы, переменные и т. Д.), История команды, строка в файле, справка Vim, Marks и т. Д. ,

2. Используйте

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

Ищите слово в текущем файле

Поиск функции текущего файла (это очень интересно, перечислено ниже список всех функций и переменных в файле)

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Мой редактор ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: