вторник, 8 июля 2008 г.

Сегодня должны запустить БАК

Блин, ловлю себя на мысли, что все таки хочу чтобы запуск LHC накрылся концом света. Чисто чтоб поржать :) Если какой-нить ученый говорит про то что все херня и никаких черных дыр не будет у меня все же крутится мысль: "Чувак, да что ты знаешь про бозоны Хиггса". И видимо я не один такой. Стоит в гугле набрать: "когда за" и по автодополнению сразу видно что всем интересно когда ж его наконец запустят (кроме девочек которые вбивали "когда забеременеть").

UPD: Судя по сайту http://www.lhcountdown.com запуск опять перенесли на месяц. Так что ждемс :)
UPD: Мне кажется коллайдер все же втихаря запустили. Потому что все вопросы, заданные нашему проджект менеджеру, пропадают в черной дыре.

среда, 18 июня 2008 г.

Я знаю русский язык!!! :)

Результаты тестирования
8 из 8 - Поздравляем, вы - вымирающий вид россиянина, отлично знающего свой родной русский язык. Вы один из немногих носителей элитарного знания, доступного в наше время единицам (4% от общего числа опрошенных). Второй вариант: вы - выпускник, которого хорошо натаскали на сдачу экзамена по русскому языку. Третий вариант: вы – репетитор. Или просто закончили филологический факультет и пошли работать не по специальности.

Я проверил свои знания русского языка и получил пятерку.



Сходи, проверься?

суббота, 1 марта 2008 г.

tskeleton плагин для vim

Еще одна полезность для vim — это плагин tskeleton.
При разработке вам часто приходится открывать новый файл и писать все по новой, эти ненависные гарды (#ifndef #define #endif), одну и ту же шапку документации, один и тот же заученный кусок кода для главной функции, одни и те же строки для реализации конструктора и деструктора класса. (ну или на чем вы там программируете? ;)). А еще можно написать готовые скелеты для циклов for, условий if... и.т.д.

Берусь вам в этом помочь ;)

1. Качаем и устанавливаем плагин.

Взять его нужно вот здесь.
Для установки качаем его себе, открываем vim-ом, далее набираем
:so %
Думаете все заработает? Ах нет :) Еще как оказалось необходимо таким же образом скачать и установить tlib здесь.

2. Качаем и устанавливаем "заготовочки" для шаблонов.

Даже если вы и не программируете на предлагаемом наборе


  • batch.bat

  • deplate.txt

  • latex.tex

  • php.inc.php

  • php.php

  • plugin.vim

  • ruby.rb

  • shell.sh

  • text.txt


...то в любом случае они пригодятся для того чтобы лучше разобраться как написать шаблон для вашего любимого языка ( если ваш оказался здесь и это виндовский bat файл - то помните: "Any machine that doesn't have Perl on it is a sad machine indeed (c)").

Экзамплы можно найти в zip архиве на вышеуказаном сайте tskeleton (tSkeleton-Samples.zip).

Распаковываем и кладем в директорию ~/.vim ( если вы не знаете что означает тильда перед наклонной палочкой, может не стоит дальше читать?). В общем случае на нужную директорию указывает переменная g:tskelDir. Для того чтобы посмотреть куда она указывает наберите в vimе :echo g:tskelDir.

Шаблоны плагин подгружает прямо из корня директории skeletons, в то время как скачанные экзамплы хранятся в папке prefabs этой директории. Поэтому для эксперемента представим что мы пхп программеры и перенесем/скопируем 3 файла

php.class.php
php.inc.php
php.php

из ~/.vim/skeletons/prefabs в ~/.vim/skeletons/

Далее набираем vim ~/.vimrc и добавляем 3 строчки

let g:tskelUserName="Vadim\ Khandus"
let g:tskelUserEmail="vkhandus@gmail.com"
let g:tskelUserWWW="http://vkhandus.blogspot.com"

вставив туда вместо моих свои данные (прошу вас сделайте это - я не хочу краснеть за ваш код ;)).

Вроде все !!!!!


Тестируем:

vim <имя>.php
vim <имя>.class.php
vim <имя>.inc.php

<имя> возьмите на ваш вкус (только без пошлостей, медведов и первонахов!!!)

Остальное читайте в :h tSkeleton
И вот еще видео пример использования:

пятница, 29 февраля 2008 г.

Использование ctags в редакторе vim

1. Что такое ctags?

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

2. Для чего нужен ctags?

Этот файл с тегами позволяет редактору быстро и легко локализовать нужный объект. Вот примерный список редакторов, умеющих
ctags:
Vi и его наследники (Elvis, Vim, Vile, Lemmy), CRiSP, Emacs, FTE (Folding Text Editor), JED, jEdit, Mined, NEdit (Nirvana Edit), TSE (The SemWare Editor), UltraEdit, WorkSpace, X2, Zeus.
В моем случае мы кроме прямого назначения будем использовать эту утилиту для "умного" авто дополнения. Но об этом позже.

3. Где взять ctags?

Ну это не проблема, умей вы пользоваться гуглем :). Для моего дистрибутива похоже что
ctags шел вместе со стандартной поставкой пакета vim-full (ubuntu 7.10). И отлично работал вместе с vim даже когда я о нем не подозревал :).
В любом случае для дебианоподобных дистров можно выполнить команду
sudo apt-get install ctags
которая установит пакет с нужными зависимостями.

4. Как мне создать теговый файл для моего С\С++ проекта?

Простой способ:
ctags -R
создаст файл tags рекурсивно обойдя файлы текущей директории.

Я предпочитаю способ посложнее:
ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .
Разберемся в опциях:

--c++-kinds=+p - добавляет прототипы к базе тэгов для С\С++ файлов

--fields=+iaS - используемые поля: наследование (i), доступ (a), сигнатура функции (S)
--extra=+q - добавляет контекстную информацию к тегу. (без этой опции скрипт не может получить методы класса (Without this option, the script cannot get class members.))

5. Как добавить тег файл к текущей сессии vim?

:set tags+=/path/to/file
Некоторые пути сканируются по умолчанию, это:
./tags,./TAGS,tags,TAGS


6. Как использовать
ctags в моем коде?

Я приведу самые распространенные комбинации, все остальное можно прочитать набрав в vim :h ctags

CTRL-] - перейти на определение тега(в новом буфере)
CTRL-t - возвратиться назад по стеку вызовов
[i - показать первую строку содержащую слово под курсором, поиск с начала файла.
]i -
показать первую строку содержащую слово под курсором, поиск с текущей позиции.
[I - показать все вхождения данного тега
]I -
показать все вхождения данного тега с текущей позиции курсора
[ CTRL-I - перейти на определение тега(в новом буфере)
] CTRL-I - перейти на определение тега(в новом буфере) с текущей позиции курсора
CTRL-W i - открыть новое окно с курсором на строке ключевого слова.

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

Рекомендую добавить такую строчку в ваш ~/.vimrc
map <F4> [I:let nr = input("Which one: ")<Bar>exe "normal " . nr ."[\t"<CR>

Это позволит увидеть все вхождение тега, выбрать нужное и отрыть его в новом окне по нажатию F4