Как стать автором
Поиск
Написать публикацию
Обновить
1.56

VIM *

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

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

Настройка наследования отступа для длинных строк

Время на прочтение2 мин
Количество просмотров1.5K
Речь пойдет о том, как vim «сворачивает» (делает то, что по английски называется wrap) длинные строки. Допустим, у вас есть очень длинная строка кода, которая начинается с некоторым отступом. Скорее всего, если вы используете :set wrap и :set showbreak=->, она выглядит вот так:

Not-indented line
	Once indented line
		Twice indented line, which is long enough
->to be wrapped. 


А хотелось бы, чтобы выглядела вот так:

Not-indented line
	Once indented line
		Twice indented line, which is long enough 
		->to be wrapped. 


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

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

VimCommander: работаем с удалённой системой по ssh

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

Прелюдия


Пользовался я ViM'ом и был доволен. Как-то раз узнал, что он ко всей его могучести умеет быть небольшим проводником по файловой системе (прим. достаточно выполнить vim .). Позже раскопал, что гораздо удобнее это делать добавив плагин NERD_Tree — он действительно удобен и я был бы рад если бы на его основе был сделан VimCommander, однако Leandro (автор VimCommander) пошёл другим путём и старался подражать MidnightCommander. Ну что ж, надо обучить VC работать с удаленными системами по ssh, решил я, ведь его старший брат (mc) вполне неплохо делает это. Примерно с такими мыслями я открыл shell и набрал vim ~/.vim/plugin/vimcommander.vim.
Читать дальше →

Небольшой лайфхак с редактированием буфера обмена

Время на прочтение4 мин
Количество просмотров13K
Я часто сталкиваюсь с такой ситуацией: пишу себе спокойно текст в чем-то (скажем, письмо в веб-интерфейсе гмейла), и вдруг, в какой-то момент возникает необходимость что-то переделать… и случается раздражение. Случается оно от того что редактирование в браузере (да и много где еще) не предполагает некоторых привычных для программиста удобств, вроде автоматической замены, регулярных выражений и макросов. При этом, вроде бы и не сложно скопировать текст в буфер и отредактировать его в правильном редакторе (Vim, Emacs, ...), но очень уж не хочется отрываться от контекста и совершать какие-то телодвижения, отвлекающие от текущей задачи… И вот, я уже расставляю отступы (нумерую список, заменяю слово, ...) вручную — результат достигнут, да и времени потрачено совсем не много, но осадочек остался…

Знакомая ситуация? Если ответ «да», в вашей операционной системе работает bash и ваша первая ассоциация к слову «редактор» это не «Microsoft Office» значит нам есть что обсудить под катом :)

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

Vim портирован на iOS

Время на прочтение1 мин
Количество просмотров4K
imageБрам сегодня прислал письмо про то, что, мол, если у вас есть iPad — вы теперь можете запускать любимый редактор и на нём.

Смысл сего действа для меня, например, тайна великая за семью печатями есть, ибо я не понимаю, зачем запускать Vim на устройствах без клавиатуры, но может кому-то будет полезно. Вопрос о целесообразности запуска Vim'a на телефоне также остаётся открытым.

Исходники лежат на GitHub и распространяются под той же лицензией, что и Vim.

viewdoc — удобный доступ к любой документации

Время на прочтение2 мин
Количество просмотров2.4K
Для просмотра разной внешней документации (man/perldoc/pydoc/etc.) в Vim есть множество плагинов и рецептов. Проблема в том, что одни не настраиваются на открытие окон с документацией удобным мне способом, другие не расширяются для поддержки новых источников документации, третьи глючат и написаны слишком криво чтобы их можно было относительно просто пофиксить и выслать патч автору. На днях меня эта ситуация окончательно достала, и я написал плагин viewdoc, решающий все эти проблемы.

Он прост внутри и удобен в использовании, предоставляет единый пользовательский интерфейс для работы с любой документацией (включая встренный :help), умеет определять требуемую документацию по контексту, гибко настраивается, и очень просто расширяется (внешними плагинами или прямо в ~/.vimrc) для добавления новых источников документации. Основной недостаток — тестировался только в linux, может работать в других *nix, точно не будет работать в винде.
Читать дальше →

Цветовые схемы в Vim

Время на прочтение3 мин
Количество просмотров40K
Про vim написано столько, что трудно себе представить, что какие-то темы остались неосвещёнными.Ан нет… Есть кое-что о чём написано совсем немного.Восполняем пробел. Я надеюсь что эта заметка понравится вимоводам и вимоманам.
Читать дальше →

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

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

Введение


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

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

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

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

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

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

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

О заменах в Vim, использующих регулярные выражения

Время на прочтение6 мин
Количество просмотров62K
Привет, хабр! Ни для кого не секрет, что старина Vim очень хорош для решения разнообразнейшего круга проблем. Я бы хотел немного пописать об одной из составляющих, которые делают наш любимый редактор настолько мощным, насколько мощным он является — об инструментарии замен, использующем регулярные выражения. Свое повествование я планирую построить, рассказывая о том, как я решал пару специфических задач, и дополняя этот рассказ некоторыми базовыми справочными сведениями.

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

Pathogen. Организуем плагины

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

Проблема


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

Решение


Pathogen позволяет устанавливать плагины в отдельные директории совершенно прозрачно для вима, причем плагины размещенные «по-старому» продолжат работать (например коллекция цветовых схем).

Пример директорий на рабочей машине:
$ ls ~/.vim/bundle/
eclim          nerdtree             vim-align     vim-haml      vim-ruby           vim-vividchalk
gist           PreciseJump          VimCalc       vim-markdown  vim-ruby-debugger  wombat256mod
IndexedSearch  snipmate.vim         vim-cucumber  vim-rails     vim-shoulda
jquery         SuperTab-continued.  vim-fugitive  vim-repeat    vim-surround
matchit.zip    textile.vim          vim-git       Vim-R-plugin  vim-tcomment

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

Плагины 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 и т.п. Плагин предоставляет сочетания клавиш, которыми можно легко удалять, изменять и добавлять пары таких окружающих элементов.
Читать дальше →

Убираем лишние запятые из javascript-кода

Время на прочтение1 мин
Количество просмотров4.2K
Когда пишешь на js, часто возникают ситуации, когда то тут, то там остаются строчки вида ",)" или ",}" или ",]". В ff, chrome код с такими фрагментами работает, а вот в IE нет.

Лекарство для вима:

autocmd BufWritePre *.js :%s/\(.*\),\(\s*\n*\s*\)\(\}\|\]\|)\)/\1\2\3/e

Регулярка написана на коленке, но она работает и фиксит большинство проблем с запятыми по коду.

Дополнения приветствуются!

UPD:

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

var a = "[,]";
var a = /[,]/;


превратится в:

var a = "[]";
var a = /[]/;


Если в вашем коде есть регулярки и/или строки с похожими конструкциями, то лучше использовать jslint для валидации. Для вима можно использовать github.com/hallettj/jslint.vim

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

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

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

Syntastic. Плагин для невнимательных и многоязычных

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

Мотивация


Как часто вы, написав код, запускаете его и видите сообщение о синтаксической ошибке? Я часто. А как часто, найдя и исправив эту ошибку, вы вновь, запуская код, видите похожее сообщение?
Я часто…
Причин тому несколько:
  • я очень невнимательный
  • я пишу на многих языках


И еще ничего, если это просто какой-то скриптик или страничка и воспроизвести код быстро. А если это нечто, что бы его воспроизвести требует что-то там перезапустить, где-то там выйти/зайти и т.д. и т.п.

Я это терпел и пытался быть внимательным пересматривая код перед запуском. Но иногда и это не помогало. Файлы с исходниками бывают длинными и потерять одну другую скобочку бывает не сложно.
Читать дальше →

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

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

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

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

Вкладки

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

Открываем


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

:tabnew futuri.co

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

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

Плагин для Vim, который обеспечивает удобное переключение раскладки клавиатуры в X11

Время на прочтение1 мин
Количество просмотров1.7K
Дополнение к тому самому плагину для Vim, который обеспечивает удобное переключение раскладки клавиатуры в Mac OS X, теперь обеспечивает удобное переключение раскладки клавиатуры в Gnome, KDE, twm и многих других замечательных штуках для сервера на букву X -)
Читать дальше →

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

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