<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2649340435170225153</id><updated>2011-10-17T10:37:28.748-07:00</updated><category term='ctags'/><category term='vim'/><category term='tskeleton'/><title type='text'>Полезные заметки начинающего программиста</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://vkhandus.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2649340435170225153/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://vkhandus.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Вадим</name><uri>http://www.blogger.com/profile/00410292940261689669</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>6</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2649340435170225153.post-7964647785032402094</id><published>2009-04-10T00:38:00.000-07:00</published><updated>2009-04-10T01:22:42.156-07:00</updated><title type='text'>Как сделать из домашней линукс машины простейший роутер за 5 минут</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Исходные условия&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;Машина с ОС Linux, c двумя сетевыми адаптерами (первый будет смотреть на ADSL модем раздающий интернет, второй - на вторую машину)&lt;/li&gt;&lt;li&gt;Машина которая желает подключится в интернет через Linux машину.&lt;/li&gt;&lt;li&gt;Настроенный ADSL роутер.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;Настройка сетевых интерфейсов Linux - маршрутизатора&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:times new roman;"&gt;Выполняем &lt;/span&gt;&lt;span style="font-family:courier new;"&gt;ifconfig &lt;/span&gt;и смотрим название наших сетевых интерфейсов. Вероятнее всего это будет eth0 и eth1.&lt;/li&gt;&lt;li&gt;Правим конфигурационный файл интерфейсов /etc/network/interfaces вашим любимым редактором. Должно получится что-то вроде этого:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;auto lo eth0 eth1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;iface lo inet loopback&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;iface eth0 inet static&lt;/span&gt;&lt;span style="font-family:courier new;"&gt; # интерфейс смотрящий на ADSL роутер&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;address 192.168.1.3 # IP адрес&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;netmask 255.255.255.0 # маска подсети&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;gateway 192.168.1.1 # адрес ADSL модема(роутера)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;iface eth1 inet static # интерфейс смотрящий на внутренюю сеть&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;address 192.168.10.1&lt;/span&gt;&lt;span style="font-family:courier new;"&gt; # IP адрес&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;netmask 255.255.255.0&lt;/span&gt;&lt;span style="font-family:courier new;"&gt; # маска подсети&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:times new roman;"&gt;Теперь делаем рестарт коммандой &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;sudo /etc/init.d/network restart&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Настройка сетевого интерфейса машины в сети&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Для Windows&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Создаем новое сетевое подключение&lt;/li&gt;&lt;li&gt;Используем слудующие настройки&lt;br /&gt;&lt;ul&gt;&lt;li&gt;IP: &lt;span style="font-family:courier new;"&gt;192.168.10.2&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Netmask: &lt;span style="font-family:courier new;"&gt;255.255.255.0&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Route: &lt;span style="font-family:courier new;"&gt;192.168.10.1&lt;/span&gt;&lt;/li&gt;&lt;li&gt;DNS: настройки DNS берем от линукс машины- роутера, они записаны в файле &lt;span style="font-family:courier new;"&gt;/etc/resolv.conf &lt;/span&gt;(см. строчки начинающиеся с &lt;span style="font-family:courier new;"&gt;nameserver&lt;/span&gt;)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Для Linux&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Прописываем в &lt;span style="font-family:courier new;"&gt;/etc/network/interfaces&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;auto lo eth0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;iface lo inet loopback&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;iface eth0 inet static&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;address 192.168.10.2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;netmask 255.255.255.0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;gateway 192.168.10.1&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Копируем в &lt;span style="font-family:courier new;"&gt;/etc/resolv.conf&lt;/span&gt; строчки начинающиеся с &lt;span style="font-family:courier new;"&gt;nameserver&lt;/span&gt; из такого же файла роутер-машины.&lt;/li&gt;&lt;li&gt;sudo /etc/init.d/network restart&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Теперь роутер-машина должна пинговаться (ping 192.168.10.1)&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight: bold;"&gt;Включение маршрутизации на Linux-роутере&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Создаем скрипт следующего содержания&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#!/bin/sh&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;INET="eth0"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;INETIP="192.168.1.3"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;iptables -F INPUT&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;iptables -F FORWARD&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;iptables -F OUTPUT&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;iptables -P INPUT ACCEPT&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;iptables -P OUTPUT ACCEPT&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;iptables -P FORWARD ACCEPT&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;iptables -t nat -A POSTROUTING -o $INET -j SNAT --to-source $INETIP&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;echo "1" &gt; /proc/sys/net/ipv4/ip_forward&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:courier new;"&gt;Даем ему права на выполнение&lt;br /&gt;chmod +x &lt;имя скрипта&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:courier new;"&gt;Копируем в удобное место&lt;br /&gt;sudo cp &lt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;имя скрипта&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&gt; /root/.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:courier new;"&gt;Ставим для выполнения при загрузке, для этого добавляем следущую строчку в /etc/rc.local перед exit 0&lt;br /&gt;/root/&lt;имя скрипта&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:courier new;"&gt;Первый раз запускаем скрипт вручную&lt;br /&gt;sudo /root/&lt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;имя скрипта&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2649340435170225153-7964647785032402094?l=vkhandus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vkhandus.blogspot.com/feeds/7964647785032402094/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2649340435170225153&amp;postID=7964647785032402094' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2649340435170225153/posts/default/7964647785032402094'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2649340435170225153/posts/default/7964647785032402094'/><link rel='alternate' type='text/html' href='http://vkhandus.blogspot.com/2009/04/5.html' title='Как сделать из домашней линукс машины простейший роутер за 5 минут'/><author><name>Вадим</name><uri>http://www.blogger.com/profile/00410292940261689669</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2649340435170225153.post-6146591243209057511</id><published>2009-03-05T13:12:00.000-08:00</published><updated>2009-03-05T13:16:08.191-08:00</updated><title type='text'>Николай Луганский играет Рахманинова</title><content type='html'>&lt;object width="480" height="295"&gt;&lt;param name="movie" value="http://www.youtube.com/v/WhLDse5R8dQ&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/WhLDse5R8dQ&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="295"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Причем очень хорошо играет как по мне&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2649340435170225153-6146591243209057511?l=vkhandus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vkhandus.blogspot.com/feeds/6146591243209057511/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2649340435170225153&amp;postID=6146591243209057511' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2649340435170225153/posts/default/6146591243209057511'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2649340435170225153/posts/default/6146591243209057511'/><link rel='alternate' type='text/html' href='http://vkhandus.blogspot.com/2009/03/blog-post.html' title='Николай Луганский играет Рахманинова'/><author><name>Вадим</name><uri>http://www.blogger.com/profile/00410292940261689669</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2649340435170225153.post-8311235582832734742</id><published>2008-07-08T01:09:00.000-07:00</published><updated>2008-07-08T03:12:45.512-07:00</updated><title type='text'>Сегодня должны запустить БАК</title><content type='html'>&lt;pre wrap=""&gt;Блин, ловлю себя на мысли, что все таки хочу чтобы запуск LHC накрылся концом света. Чисто чтоб поржать :) Если какой-нить ученый говорит про то что все херня и никаких черных дыр не будет у меня все же крутится мысль: "Чувак, да что ты знаешь про бозоны Хиггса". И видимо я не один такой. Стоит в гугле набрать: "когда за" и по автодополнению сразу видно что всем интересно когда ж его наконец запустят (кроме девочек которые вбивали "когда забеременеть").&lt;br /&gt;&lt;br /&gt;UPD: Судя по сайту http://www.lhcountdown.com запуск опять перенесли на месяц. Так что ждемс :)&lt;br /&gt;UPD: Мне кажется коллайдер все же втихаря запустили. Потому что все вопросы, заданные нашему проджект менеджеру, пропадают в черной дыре.&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2649340435170225153-8311235582832734742?l=vkhandus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vkhandus.blogspot.com/feeds/8311235582832734742/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2649340435170225153&amp;postID=8311235582832734742' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2649340435170225153/posts/default/8311235582832734742'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2649340435170225153/posts/default/8311235582832734742'/><link rel='alternate' type='text/html' href='http://vkhandus.blogspot.com/2008/07/blog-post.html' title='Сегодня должны запустить БАК'/><author><name>Вадим</name><uri>http://www.blogger.com/profile/00410292940261689669</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2649340435170225153.post-1086465158335303278</id><published>2008-06-18T01:21:00.000-07:00</published><updated>2008-06-18T01:26:41.205-07:00</updated><title type='text'>Я знаю русский язык!!! :)</title><content type='html'>&lt;table  style="background: rgb(255, 228, 147) none repeat scroll 0% 50%; text-align: justify; width: 510px; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;font-size:11pt;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&lt;strong&gt;Результаты тестирования&lt;/strong&gt;&lt;br /&gt;8 из 8 - Поздравляем, вы - вымирающий вид россиянина, отлично знающего свой родной русский язык. Вы один из немногих носителей элитарного знания, доступного в наше время единицам (4% от общего числа опрошенных). Второй вариант: вы - выпускник, которого хорошо натаскали на сдачу экзамена по русскому языку. Третий вариант: вы – репетитор. Или просто закончили филологический факультет и пошли работать не по специальности.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Я проверил свои знания русского языка и получил пятерку.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.rb.ru/poll/7/img/5.gif" align="center" width="500" height="164" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;a href="http://www.rb.ru/poll/7/"&gt;Сходи, проверься?&lt;/a&gt;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2649340435170225153-1086465158335303278?l=vkhandus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vkhandus.blogspot.com/feeds/1086465158335303278/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2649340435170225153&amp;postID=1086465158335303278' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2649340435170225153/posts/default/1086465158335303278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2649340435170225153/posts/default/1086465158335303278'/><link rel='alternate' type='text/html' href='http://vkhandus.blogspot.com/2008/06/blog-post.html' title='Я знаю русский язык!!! :)'/><author><name>Вадим</name><uri>http://www.blogger.com/profile/00410292940261689669</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2649340435170225153.post-3718994367769784220</id><published>2008-03-01T09:28:00.000-08:00</published><updated>2008-05-15T01:18:28.845-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tskeleton'/><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><title type='text'>tskeleton плагин для vim</title><content type='html'>Еще одна полезность для vim — это плагин tskeleton.&lt;br /&gt;При разработке вам часто приходится открывать новый файл и писать все по новой, эти ненависные гарды (#ifndef #define #endif), одну и ту же шапку документации, один и тот же заученный кусок кода для главной функции, одни и те же строки для реализации конструктора и деструктора класса. (ну или на чем вы там программируете? ;)). А еще можно написать готовые скелеты для циклов for, условий if... и.т.д.&lt;br /&gt;&lt;br /&gt;Берусь вам в этом помочь ;)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1. Качаем и устанавливаем плагин.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Взять его нужно &lt;a href="http://www.vim.org/scripts/script.php?script_id=1160"&gt;вот здесь&lt;/a&gt;.&lt;br /&gt;Для установки качаем его себе, открываем vim-ом, далее набираем&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;:so %&lt;/span&gt;&lt;br /&gt;Думаете все заработает? Ах нет :) Еще как оказалось необходимо таким же образом скачать и установить tlib &lt;a href="http://www.vim.org/scripts/script.php?script_id=1863"&gt;здесь&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2. Качаем и устанавливаем "заготовочки" для шаблонов.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Даже если вы и не программируете на предлагаемом наборе&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;batch.bat&lt;/li&gt;&lt;br /&gt;&lt;li&gt;deplate.txt&lt;/li&gt;&lt;br /&gt;&lt;li&gt;latex.tex&lt;/li&gt;&lt;br /&gt;&lt;li&gt;php.inc.php&lt;/li&gt;&lt;br /&gt;&lt;li&gt;php.php&lt;/li&gt;&lt;br /&gt;&lt;li&gt;plugin.vim&lt;/li&gt;&lt;br /&gt;&lt;li&gt;ruby.rb&lt;/li&gt;&lt;br /&gt;&lt;li&gt;shell.sh&lt;/li&gt;&lt;br /&gt;&lt;li&gt;text.txt&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;...то в любом случае они пригодятся для того чтобы лучше разобраться как написать шаблон для вашего любимого языка ( если ваш оказался здесь и это виндовский bat файл - то помните: "&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Any machine that doesn't have Perl on it is a sad machine indeed&lt;/span&gt;&lt;/span&gt; (c)").&lt;br /&gt;&lt;br /&gt;Экзамплы можно найти в zip архиве на вышеуказаном сайте tskeleton (&lt;a href="http://www.vim.org/scripts/download_script.php?src_id=7022"&gt;tSkeleton-Samples.zip&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Распаковываем и кладем в директорию ~/.vim ( если вы не знаете что означает тильда перед наклонной палочкой, может не стоит дальше читать?). В общем случае на нужную директорию указывает переменная g:tskelDir. Для того чтобы посмотреть куда она указывает наберите в vimе &lt;span style="font-weight: bold;"&gt;:echo g:tskelDir.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Шаблоны плагин подгружает прямо из корня директории skeletons, в то время как скачанные экзамплы хранятся в папке prefabs этой директории. Поэтому для эксперемента представим что мы пхп программеры и перенесем/скопируем 3 файла&lt;br /&gt;&lt;br /&gt;php.class.php&lt;br /&gt;php.inc.php&lt;br /&gt;php.php&lt;br /&gt;&lt;br /&gt;из ~/.vim/skeletons/prefabs  в ~/.vim/skeletons/&lt;br /&gt;&lt;br /&gt;Далее набираем vim ~/.vimrc и добавляем 3 строчки&lt;br /&gt;&lt;br /&gt;let g:tskelUserName="Vadim\ Khandus"&lt;br /&gt;let g:tskelUserEmail="vkhandus@gmail.com"&lt;br /&gt;let g:tskelUserWWW="http://vkhandus.blogspot.com"&lt;br /&gt;&lt;br /&gt;вставив туда вместо моих свои данные (прошу вас сделайте это - я не хочу краснеть за ваш код ;)).&lt;br /&gt;&lt;br /&gt;Вроде все !!!!!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Тестируем:&lt;br /&gt;&lt;br /&gt;vim &lt;имя&gt;.php&lt;br /&gt;vim &lt;имя&gt;.class.php&lt;br /&gt;vim &lt;имя&gt;.inc.php&lt;br /&gt;&lt;br /&gt;&lt;имя&gt; возьмите на ваш вкус (только без пошлостей, медведов и первонахов!!!)&lt;br /&gt;&lt;br /&gt;Остальное читайте в :h tSkeleton&lt;br /&gt;И вот еще видео пример использования:&lt;br /&gt;&lt;br /&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-1899ac3686a8af3" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v22.nonxt7.googlevideo.com/videoplayback?id%3D01899ac3686a8af3%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329907805%26sparams%3Did,itag,ip,ipbits,expire%26signature%3DD42464DD406EE73AC296C1E511A42D05F1B4F58.1E22530AC8C256F5DDDE7D1841D751211921341A%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D1899ac3686a8af3%26offsetms%3D5000%26itag%3Dw160%26sigh%3D2n6LHcuRXq2UR8SLqpOVL4vXeFQ&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v22.nonxt7.googlevideo.com/videoplayback?id%3D01899ac3686a8af3%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329907805%26sparams%3Did,itag,ip,ipbits,expire%26signature%3DD42464DD406EE73AC296C1E511A42D05F1B4F58.1E22530AC8C256F5DDDE7D1841D751211921341A%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D1899ac3686a8af3%26offsetms%3D5000%26itag%3Dw160%26sigh%3D2n6LHcuRXq2UR8SLqpOVL4vXeFQ&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2649340435170225153-3718994367769784220?l=vkhandus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=1899ac3686a8af3&amp;type=video%2Fmp4' length='0'/><link rel='replies' type='application/atom+xml' href='http://vkhandus.blogspot.com/feeds/3718994367769784220/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2649340435170225153&amp;postID=3718994367769784220' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2649340435170225153/posts/default/3718994367769784220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2649340435170225153/posts/default/3718994367769784220'/><link rel='alternate' type='text/html' href='http://vkhandus.blogspot.com/2008/03/tskeleton-vim.html' title='tskeleton плагин для vim'/><author><name>Вадим</name><uri>http://www.blogger.com/profile/00410292940261689669</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2649340435170225153.post-7226737089601834473</id><published>2008-02-29T02:17:00.000-08:00</published><updated>2008-02-29T13:40:12.583-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><category scheme='http://www.blogger.com/atom/ns#' term='ctags'/><title type='text'>Использование ctags в редакторе vim</title><content type='html'>&lt;strong&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;1. Что такое &lt;a href="http://ctags.sourceforge.net/"&gt;ctags&lt;/a&gt;?&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Это утилита которая умеет генерировать специальный индексный файл (файл с тегами) сканируя исходные файлы и выделяя из них объекты, типичные для различного множества языков.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span&gt;&lt;span&gt;2. Для чего нужен &lt;a href="http://ctags.sourceforge.net/"&gt;ctags&lt;/a&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;?&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;Этот файл с тегами позволяет редактору быстро и легко  локализовать нужный объект. Вот примерный список редакторов, умеющих &lt;/span&gt;&lt;span&gt;&lt;a href="http://ctags.sourceforge.net/"&gt;ctags:&lt;/a&gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;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.&lt;br /&gt;В моем случае мы кроме прямого назначения будем использовать эту утилиту для "умного" авто дополнения. Но об этом позже.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;strong&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;3. Где взять &lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;a href="http://ctags.sourceforge.net/"&gt;ctags&lt;/a&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;?&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;Ну это не проблема, умей вы пользоваться гуглем :). Для моего дистрибутива похоже что &lt;/span&gt;&lt;span&gt;&lt;a href="http://ctags.sourceforge.net/"&gt;ctags&lt;/a&gt;&lt;/span&gt;&lt;span&gt; шел вместе со стандартной поставкой пакета vim-full (ubuntu 7.10). И отлично работал вместе с vim даже когда я о нем не подозревал :).&lt;br /&gt;В любом случае для дебианоподобных дистров можно выполнить команду&lt;br /&gt;&lt;span&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span&gt;sudo apt-get install ctags&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;которая установит пакет с нужными зависимостями.&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&lt;strong&gt;4. Как мне создать теговый файл для моего С\С++ проекта?&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Простой способ:&lt;br /&gt;&lt;span&gt;&lt;blockquote&gt;ctags -R&lt;/blockquote&gt;&lt;/span&gt;создаст файл tags рекурсивно обойдя файлы текущей директории.&lt;br /&gt;&lt;br /&gt;Я предпочитаю способ посложнее:&lt;br /&gt;&lt;span&gt;&lt;blockquote&gt;ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .&lt;/blockquote&gt;&lt;/span&gt;Разберемся в опциях:&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;span&gt;--c++-kinds=+p&lt;/span&gt;    - добавляет прототипы к базе тэгов для С\С++ файлов&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;--fields=+iaS&lt;/span&gt;    - используемые поля: наследование (i), доступ (a), сигнатура функции (S)&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;    --extra=+q&lt;/span&gt;    - добавляет контекстную информацию к тегу. (без этой опции скрипт не может получить методы класса (Without this option, the script cannot get class members.))&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-size:130%;"&gt;5. Как добавить тег файл к текущей сессии vim?&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;blockquote&gt;:set tags+=/path/to/file&lt;/blockquote&gt;&lt;/span&gt;Некоторые пути сканируются по умолчанию, это:&lt;br /&gt; ./tags,./TAGS,tags,TAGS&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;6. Как использовать &lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span&gt;&lt;a href="http://ctags.sourceforge.net/"&gt;ctags&lt;/a&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt; в моем коде?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Я приведу самые распространенные комбинации, все остальное можно прочитать набрав в vim :h ctags&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;CTRL-]&lt;/span&gt;    - перейти на определение тега(в новом буфере)&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;CTRL-t&lt;/span&gt;    - возвратиться назад по стеку вызовов&lt;br /&gt;[i    - показать первую строку содержащую слово под курсором, поиск с начала файла.&lt;br /&gt;]i    -&lt;/span&gt;&lt;span&gt; показать первую строку содержащую слово под курсором, поиск с текущей позиции.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style="font-weight: bold;"&gt;[I&lt;/span&gt;    - показать все вхождения данного тега&lt;br /&gt;]I    - &lt;/span&gt;&lt;span&gt;показать все вхождения данного тега с текущей позиции курсора&lt;/span&gt;&lt;br /&gt;&lt;span&gt;[ CTRL-I    - &lt;/span&gt;&lt;span&gt;перейти на определение тега(в новом буфере)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;] CTRL-I    -&lt;/span&gt;&lt;span&gt; перейти на определение тега(в новом буфере) с текущей позиции курсора&lt;/span&gt;&lt;br /&gt;&lt;span&gt;CTRL-W i    - открыть новое окно с курсором на строке ключевого слова.&lt;br /&gt;&lt;br /&gt;Всеми пользоваться конечно же не обязательно, я думаю мне на этот момент хватит только выделенных болдом комбинаций.&lt;br /&gt;&lt;br /&gt;Рекомендую добавить такую строчку в ваш ~/.vimrc&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span&gt;&lt;span&gt;map &amp;lt;F4&amp;gt; [I:let nr = input("Which one: ")&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;Bar&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;exe "normal " . nr ."[\t"&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;CR&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;f4&gt;&lt;bar&gt;&lt;cr&gt;&lt;/cr&gt;&lt;/bar&gt;&lt;/f4&gt;&lt;/span&gt;Это  позволит увидеть все вхождение тега, выбрать нужное и отрыть его в новом окне по нажатию F4&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2649340435170225153-7226737089601834473?l=vkhandus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vkhandus.blogspot.com/feeds/7226737089601834473/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2649340435170225153&amp;postID=7226737089601834473' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2649340435170225153/posts/default/7226737089601834473'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2649340435170225153/posts/default/7226737089601834473'/><link rel='alternate' type='text/html' href='http://vkhandus.blogspot.com/2008/02/ctags-vim.html' title='Использование ctags в редакторе vim'/><author><name>Вадим</name><uri>http://www.blogger.com/profile/00410292940261689669</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry></feed>
