Блин, ловлю себя на мысли, что все таки хочу чтобы запуск LHC накрылся концом света. Чисто чтоб поржать :) Если какой-нить ученый говорит про то что все херня и никаких черных дыр не будет у меня все же крутится мысль: "Чувак, да что ты знаешь про бозоны Хиггса". И видимо я не один такой. Стоит в гугле набрать: "когда за" и по автодополнению сразу видно что всем интересно когда ж его наконец запустят (кроме девочек которые вбивали "когда забеременеть").
UPD: Судя по сайту http://www.lhcountdown.com запуск опять перенесли на месяц. Так что ждемс :) UPD: Мне кажется коллайдер все же втихаря запустили. Потому что все вопросы, заданные нашему проджект менеджеру, пропадают в черной дыре.
Результаты тестирования 8 из 8 - Поздравляем, вы - вымирающий вид россиянина, отлично знающего свой родной русский язык. Вы один из немногих носителей элитарного знания, доступного в наше время единицам (4% от общего числа опрошенных). Второй вариант: вы - выпускник, которого хорошо натаскали на сдачу экзамена по русскому языку. Третий вариант: вы – репетитор. Или просто закончили филологический факультет и пошли работать не по специальности.
Я проверил свои знания русского языка и получил пятерку.
Еще одна полезность для 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 И вот еще видео пример использования:
Это утилита которая умеет генерировать специальный индексный файл (файл с тегами) сканируя исходные файлы и выделяя из них объекты, типичные для различного множества языков.
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. В моем случае мы кроме прямого назначения будем использовать эту утилиту для "умного" авто дополнения. Но об этом позже.
Ну это не проблема, умей вы пользоваться гуглем :). Для моего дистрибутива похоже что ctags шел вместе со стандартной поставкой пакета vim-full (ubuntu 7.10). И отлично работал вместе с vim даже когда я о нем не подозревал :). В любом случае для дебианоподобных дистров можно выполнить команду
sudo apt-get install ctags
которая установит пакет с нужными зависимостями.
4. Как мне создать теговый файл для моего С\С++ проекта?
Разберемся в опциях: --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
Я приведу самые распространенные комбинации, все остальное можно прочитать набрав в 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