Как стать автором
Обновить
3.45

VIM *

Свободный текстовый редактор

Сначала показывать
Порог рейтинга
Уровень сложности

Эффективное использование Vim

Время на прочтение11 мин
Количество просмотров74K

Введение


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

Эта статья — не набор “волшебных команд” и рецептов (cookbook, как называют такие наборы по-английски), хотя они тут тоже присутствуют, а, скорее, попытка описать, как общие принципы построения эргономичных интерфейсов можно применить в практике использования Vim, чтобы сделать из него удобную и эффективную среду работы с текстами.

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

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

Продуктивная работа в vim с использованием snipMate

Время на прочтение4 мин
Количество просмотров11K
В этой статье я хочу рассказать об одном замечательном плагине для vim, который значительно ускоряет написание кода, вёрстку и редактирование текстов.

snipMate — позволяет быстро вставить в документ текстовый шаблон с помощью ключевого слова + <tаb> и предоставляет удобную навигацию по вставленному шаблону.
Читать дальше →

Плагины VIM о которых следует знать, часть 2: repeat.vim

Время на прочтение2 мин
Количество просмотров7.2K
Продолжаю переводить статьи Петериса Круминса. Оригинал статьи

Вот Первая часть и её оригинал.
Читать дальше →

Плагины VIM о которых следует знать, часть 1: surround.vim

Время на прочтение3 мин
Количество просмотров16K
Топик — вольный перевод статьи Vim Plugins You Should Know About, Part I: surround.vim Петериса Круминса.

UPD: вторая часть

Что такое плагин surround.vim? Вот что говорит о нем автор, Тим Поп (Tim Pope):

Surround.vim работает со всем, что «окружает»: скобками, кавычками, тегами XML и т.п. Плагин предоставляет сочетания клавиш, которыми можно легко удалять, изменять и добавлять пары таких окружающих элементов.
Читать дальше →

Еще одна шпаргалка

Время на прочтение2 мин
Количество просмотров16K
VIM содержит сотни команд, выучить их все невозможно, да и по правде говоря «зазубривание» — дело неблагодарное. Читая различные факи и туториалы я взял за правило заносить новые для меня команды в отдельный файл, сопровождая их кратким описанием. В процессе работы с редактором я часто заглядываю в этот файл и с течением времени многие команды из него пополняют мой стандартный набор. Своим файлом-шпаргалкой я и хочу с вами поделиться.
Читать дальше →

Автоматическая индексация файлов проекта

Время на прочтение9 мин
Количество просмотров13K
Несмотря на то, что статей по теме «использование Vim в качестве IDE» достаточно много, результат меня не удовлетворял. Мне очень не хватало автоматической, прозрачной для пользователя (то есть меня) генерации тегов для всех файлов в проекте, причем файлы проекта совсем необязательно должны лежать в одной директории и ее поддиректориях, а формировать список файлов должно быть легко и приятно.

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

Долгие поиски плагинов с необходимым функционалом не увенчались успехом, поэтому было принято решение написать такой плагин. Я назвал его indexer.
Читать дальше →

Вкладки

Время на прочтение2 мин
Количество просмотров34K

Открываем


VIM Tabs
Открыть вкладку можно тремя разными способами, самый простой и интуитивный :tabnew в нормальном режиме, он откроет новую вкладку с пустым буфером. Можно сразу открыть вкладку с файлом, передав его имя как параметр

:tabnew futuri.co

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

vim -p habra.sh habr.py
Читать дальше →

Vim 7.3 вышел

Время на прочтение1 мин
Количество просмотров1.7K
Наконец-то зарелизился лучший в мире текстовый редактор, величайшая IDE и то, чего так не хватает емаксу. Это если троллить.
А если серьезно, в релиз входит всё то, что было заявлено в бете, плюс:
Читать дальше →

Вышел Vim 7.3 public beta

Время на прочтение1 мин
Количество просмотров1K
logoВышла публичная бета следующей версии эзотерического текстового редактора Vim. В новой версии 7.3 нам предлагают сохраняющееся между запусками undo, интерфейсы к lua и python3. Новая фича под кодовым названием 'conceal text' позволяет при раскраске текста скрывать его части. Это очень удобно при wiki-форматировании — метасимволы, отвечающие за заголовки, выделение и прочие радости форматирования можно просто скрыть и видеть раскрашенный цветом текст.
Кроме вышеперечисленного, добавили то, чего я ждал долгие годы — возможность установить vertical guideline (вертикальная линия, отмечающая где кончается ширина текста в 78/80/скольконадо символов. Название команды — 'colorcolumn'.
Новость на официальном сайте
Скачать инсталлятор для Windows
Скачать приложение для MacOS (Intel MacOS 10.6+)
Скачать runtime и исходники для UNIX

Vim и кириллица: парочка приёмов

Время на прочтение2 мин
Количество просмотров58K
image

Раньше для редактирования обычных русскоязычных текстов, я обычно откладывал Vim в сторонку и прибегал к помощи других редакторов. Причиной этому была парочка очень неприятных косяков:
  1. На каждый чих приходилось сто раз переключать раскладку, чтобы корректно ввести пару команд и вернуться обратно. Например, замена буквы-опечатки в только что написанном слове, выливалось в: switch → добраться до буквы, нажать r → switch → [нужная буква] → switch → A → [пишем дальше]. Ад!
  2. Штатный spell checker букву «ё» не любил и любое слово с её участием предлагал заменить на аналог через «е». А я ё люблю, меня это расстраивало.

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

VIM и JSLint

Время на прочтение4 мин
Количество просмотров3.1K
Вышло так, что я почти не пишу на хабрахабр — тому есть свои причины. Но очень хотелось бы поделиться одной вещью, которая наверняка будет полезна всем тем, кто работает с JavaScript'ом в vim’е, к тому же на хабрахабре я подобного материала не нашёл.
Читать дальше →

Vim. Одновременное изменение нескольких файлов. Развернутый пример с комментариями

Время на прочтение2 мин
Количество просмотров6.2K
Бывают ситуации когда нужно выполнить какую-то последовательность действий одновременно в нескольких файлах. Конечно, для этого можно использовать разные инструменты (навскидку: bash + sed/awk, python/perl, ...) — какие-то будут менее приспособлены для выполнения поставленной задачи, какие-то — более. Сейчас мы рассмотрим пример решения одной такой простой задачи средствами редактора Vim.

Рассмотрим простой пример: вставка строки в начало каждого файла.
Читать дальше →

Серия скринкастов по VIM

Время на прочтение1 мин
Количество просмотров5.8K
Если вы хотели начать работать с VIM, но вас что-то останавливало, то перед вами прекрасная возможность начать снова.

Ну а если вы уже продвинутый Vimmer то для вас тоже найдётся что посмотреть.

Ближайшие события

.vimrc, который всегда со мной

Время на прочтение2 мин
Количество просмотров67K
Моему .vimrc уже больше восьми лет. Он помнит времена PentiumII, Debian Potato и gcc настолько древнего, что я уже и не помню его версии. Он развивался с пятой версии Vim, приобретал полезные фрагменты и избавлялся от ненужных. И вот внезапно захотелось поделиться с вами его содержимым. Весь файл я показывать пока не буду, лишь пройдусь по некоторым, на мой взгляд, интересным моментам.
Читать дальше →

Выполняем sudo при записи

Время на прочтение1 мин
Количество просмотров7.1K
В дополнение к предыдущей заметке "Делаем файлы сценариев исполняемыми"...

В практике системного администратора иногда случается так, что начинаешь править какой-либо сценарий, автоматизирующий процесс резервного копирования, например, а в конце концов выясняется, что не хватает прав на запись в данный файл, который, возможно, принадлежит пользователю root. Чтобы не сильно изворачиваться в подобной ситуации, сохранение изменений производим командой
:w !sudo tee %

Вопросы безопасности в данном случае находятся в рамках sudo.

Настройка отступов в VIM

Время на прочтение2 мин
Количество просмотров75K
Процесс смены Komodo IDE на VIM я начал с изучения всевозможных туториалов и хау ту, однако, что удивительно, ни в одном из них мне не удалось встретить человеческого описания процесса настройки отступов. В одних предлагали регулировать ширину отступа с помощью опции tabstop, в других — с помощью softtabstop, в третьих — выставлять и то и другое и shiftwidth в придачу. После нескольких часов экспериментов с настройками я понял, что единственный способ не только заставить все работать, но и понять, почему оно работает — читать документацию. Своими «открытиями» я и хочу с вами поделиться.
Читать дальше →

Vim как IDE для веб-разработки, и не только.

Время на прочтение12 мин
Количество просмотров102K
В данной статье рассматриваются мощные плагины, позволяющие повысить удобство разработки в VIM, а также даются ценные указания по их доработке и использованию. В том числе, используемых команд и горячих клавиш.

Рассмотрена настройка через конфигурационный файл vimrc и приведены ссылки на статьи с описанием отдельных моментов.

Кого-то VIM оттолкнет, показавшись поначалу слишком сложным или неудобным. Однако не стоит недооценивать его гибкость и возможность настройки себя, ведь из VIM можно буквально вылепить идеальный редактор/IDE, таким, каким вы представляете его себе.

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

Я постарался писать как можно компактней, но без потери содержательной части, но статья все-равно вышла довольно объемной. Материал логически разбит на несколько разделов и совсем не обязательно читать его по порядку. Тем не менее, прочитать сведения по установке плагинов и настройке vimrc я рекомендую настоятельно.


Читать дальше →

vim, и как сделать из него полноценную IDE.

Время на прочтение2 мин
Количество просмотров15K
Vim (сокр. от Vi Improved, произносится Вим) — свободный режимный текстовый редактор, созданный на основе более старого vi. Ныне это один из мощнейших текстовых редакторов с полной свободой настройки и автоматизации, и созданным благодаря этому расширениям и надстройкам. (с)wiki

Вот и настроим. У меня была цель — сделать из Vim полноценную IDE для perl. Но таким же путем это делается и для любого другого языка.

Читать дальше →

Устрой bug fix day

Время на прочтение1 мин
Количество просмотров1.2K
FIXME, TODO, XXX стандартный способ указать в комментариях: «Эй! Будет время — исправь этот грязный хак!». К примеру любимый (и не любимый) многими Eclipse имеет замечательное окошко где отображаются всё TODO по проекту.
Что нам мешает сделать это в vim? Что для этого нужно? grep и quick fix window.
Выполнив в vim команду :grep или :vimgrep, список совпадений будет доступен в quick fix window, доступное по :copen или :cw
Я повесил это чудо на хоткей:
map <F6> :vimgrep /fixme\\|todo/j *.[c,cpp,h,hpp,py]<CR>:cw<CR>

Поменяй расширения на нужные вам, F6 и начинай наконец фиксить!

Окна и буферы

Время на прочтение2 мин
Количество просмотров46K
В vim 7 появились табы — привычный способ навигации по файлам. Когда я работал в eclipse я не раз замечал, что часто скакать между табами не удобно, а знакомство с буферами в emacs натолкнуло на прочтение документации по окнам/буферам в vim.

Читать дальше →

Вклад авторов