← All posts tagged Vim

longedok

Подлое белорусское телевидение показало Беларусь — Франция, вместо Россия — Сербия. Но это ничего. Снукерный финал суперофигенный вышел. Я опупел, когда Хиггинс последний розовый даблом закатил. Трамп красавец. Но болел я таки за Вильямса весь чемпионат. Барсу — Реал даже не стал досматривать после хоккея. Кошу нафоткал, но фотки на бук скинуть забыл. А ещё плагин для вима запилил, который даже работает, но пока плохо. Плагин повторяет возможности Code Defenition Window в Visual Studio.

longedok
Vim

Алгоритм решения проблем/вопросов по vim'у:
обозначения:
%the_shortest_problem_description% — наиболее краткое (но при этом достаточно полное) описание проблемы, какое вы только сможете придумать.
%problem_description% — более развёрнутое описание проблемы.

(Переходить к следующему шагу нужно только если текущий завершился провалом)

0) убеждаемся, что у вас вообще vim (добавлено всвязи с #993416).
1) :help %the_shortest_problem_description%
2) :helpgrep %the_shortest_problem_desctiption%
3) vim.wikia.org ищем там %the_shortest_problem_desctiption%
4) отключаем все плагины, которые теоретически могут вызвать проблему, проверяем маппинги/опции в vimrc_
5) vim@conference.jabber.ru задаём %problem_description%
6) juick, сообщение с тегом *vim и текстом %problem_desctiption%

Обычно алгоритм заканчивается на 3-ем шагу, реже на 4-5. С момента разработки этого алгоритма, до 6-го шага я ещё не доходил ;)

longedok
Vim

Такие вот маппинги для редактирования и перезагрузки налету vimrc:
:nmap <Leader>u :source $MYVIMRC<CR>
:nmap <Leader>e :e $MYVIMRC<CR>
По умолчанию <Leader> это \, если кто не знал (то есть комманды будут иметь вид \u и \e). К слову, я перемапил себе leader на "," (let mapleader=",").

longedok
Vim

Пользуюсь такими вот незамысловатыми маппингами для перемещения по рассплитенным окошкам. Очень удобно.
noremap <C-h> <C-W>h
noremap <C-j> <C-W>j
noremap <C-k> <C-W>k
noremap <C-l> <C-W>l

longedok
Vim

autocmd CursorMoved * silent! exe printf("match Search \\<%s\\>", expand('<cword>'))
" подсвечивает все слова, которые совпадают со словом под курсором.
Подсмотрел в твиттере Дерека Уайтта.
(upd: исправленный варинт. прошлый был не совсем верным)

longedok
Vim

Перемещаться по рассплитенным окнам в виме по ctrl-hjkl архиудобно! Minibuff-плагин тоже, кстати, архиудобен (показывает очень минималистичный список открытых буфферов).

longedok
Vim

Занимался тюнингом своего вима. Прикручивал контекстнозависимое автодополнение для c++. Когда совсем ничего не получалось и опускались руки, я просто шёл на vimeo и смотрел видеоподкаст Дерека Уайта. Заряд особой, виомвской энергии получаешь прям.

longedok

Мне удалось скомпилировать на винде вим с поддержкой питона. Богомерзкий vimscript идёт в жепь. Напишу-ка я теперь какой-нибудь экстеншен, в образовательных целях.

longedok
Vim

На самом деле я был вскормлен и воспитан стаей диких Брэмов Муленааров. С тех пор vim в моей крови, костях и мозге. Иногда я перестаю ощущать связь между реальностью и редактором — все мои мысли напрямую транслируются в комнады. Гармония человека и программного обеспечения.

longedok
Vim

Таки дописал свой первый compiler plugin. Готового для open watcom в интернетах не нашёл. Пришлось помучаться конечно, но результат стоил того. Осталось правильно настроить vimc плагин и среда разработки для C++ будет готова :)

longedok

Мне попеременно взрывают мозг то lisp (scheme вот вчера вечером постарался), то vim. А вот представьте что бы было, если бы взять такой же мощный текстовый редактор и совместить его с lisp'ом! Ну, я имею в виду, чтобы расширения к нему на лиспе писать можно было. Какая мощная и клёвая хренотень получилась бы!

longedok
Vim

Ох vim. Каждое длительное чтение твоей документации наводит на меня священный ужас. Просто поражаешься иногда, твоим возможностям.

Правда и странностям тоже поражаешься. Например vim-script. Странные в этом вим-скрипте области видимости. a:variable_name — параметр функции, например. Без a: нельзя. Имена функций определяемых юзером должны начинаться с большой буквы. Объекты — это вообще словари, ключи которых имена функций, а значения — указатели на эти функции.

А вообще, походу чтения раздела про vim-script узнал парочку интересных команд для скроллинга и перемещения по тексту (zz, zt, zb, <c-d>, <c-u>). Раньше ими не пользовался.

longedok

Написал вот себе небольшой макрос для вима, чтобы привести все мои тэги в jubo к правильному виду. *tagname — неправильно, {tag:*tagname} — правильно. Собственно сам макрос:
mav$h"wyG$a [esc]"tph"wp'a
Как это работает: создаёте файл, в первой строке пишете фразу {tag:} , затем копируете её в буфер t (v$h"ty). Дальше копируете из jubo список тэгов и вставляете их со второй по n-ую строчку (где n кол-во тэгов). Переходите на последнюю строчку (G), создаёте за ней ещё одну (o) и пишете "add". Переключаетесь в обычный режим [esc] и переходите на вторую строку, стартуете запись макроса a (qa), повторяете приведённую выше последовательность и завершаете запись макроса (q). С третьей строчки, необходимое кол-во раз (общее_кол-во_строк минус 1) выполняете только что записаный макрос необходимое кол-во (x@a где x — необходимое кол-во раз). В последней строке файла будет результат. Вим рулед, да.

longedok
Vim

Жуйк, нужна помощь. Как сделать так, чтобы вим запускался нужных тебе размеров? А ещё лучше, чтобы размер окна вима был таким же, как и при прошлом закрытии. Нашёл в документации параметр -geometry WxH+X+Y, но он почему-то не хочет работать: выдаёт ошибку "слишком много аргументов редактирования".

longedok
Vim

С автодополнением для css я разобрался — там всё очень просто. Вместо обычного дополнения (ctrl-p) нужно было использовать omni-дополнение (ctrl-x ctrl-o). Вот с автоиндентами (автоматической расстановкой табуляции) пока проблемы. Я уже нашёл функцию, которая отвечает за инденты в css файлах — дело за малым: исправить её или переписать :)

longedok
Vim

Я конечно понимаю, что у всех сейчас хоккей и всё такое. Но не мог бы кто-нибудь подсказать, как заставить vim нормально работать с css файлами. У меня он работает как-то криво — нефига не дополняет, табы расставляет как-то очень по-левому или вобще не расставляет. Мб какой нибудь ftp плагин для этого дела есть хитрый?

longedok
Vim

В последнее время, часто вижу вопросы о том, как правильно ставить в vim`е пальцы на блок клавиш "hjkl" при слепой печати (кто в теме — тот поймёт). Лично я ставлю указательный палец на "j", а мизинец на ";". При перемещении влево сдвигаю указтельный на "h". Имхо, так удобнее всего.