<?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-3564315887645433114</id><updated>2011-08-29T21:27:45.818-07:00</updated><category term='screen'/><category term='vim'/><title type='text'>fg3 developer blog (deprecated)</title><subtitle type='html'>Buy land while supplies last</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://dearfrankg.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3564315887645433114/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://dearfrankg.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Frank</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://4.bp.blogspot.com/_-tUbbSEqrUM/ShXHtw6VaRI/AAAAAAAACGs/Wjmf5hoq5s8/S220/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>7</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3564315887645433114.post-763375079333740703</id><published>2009-10-03T11:28:00.000-07:00</published><updated>2009-10-03T11:33:10.978-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='screen'/><title type='text'>My screen settings</title><content type='html'>&lt;pre&gt;&lt;br /&gt;&lt;br /&gt;# Customization by frankg&lt;br /&gt;# reference:&lt;br /&gt;hardstatus alwayslastline&lt;br /&gt;hardstatus string '%{= WG}[ %{G}%H %{g}][%= %{=kw}%?%-Lw%?%{r}(%{k}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B}%Y-%m-%d %{G}%c %{g}]'&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/3564315887645433114-763375079333740703?l=dearfrankg.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dearfrankg.blogspot.com/feeds/763375079333740703/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3564315887645433114&amp;postID=763375079333740703&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3564315887645433114/posts/default/763375079333740703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3564315887645433114/posts/default/763375079333740703'/><link rel='alternate' type='text/html' href='http://dearfrankg.blogspot.com/2009/10/my-screen-settings.html' title='My screen settings'/><author><name>Frank</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://4.bp.blogspot.com/_-tUbbSEqrUM/ShXHtw6VaRI/AAAAAAAACGs/Wjmf5hoq5s8/S220/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3564315887645433114.post-8428145983179333711</id><published>2009-03-13T13:48:00.000-07:00</published><updated>2009-03-23T10:11:37.679-07:00</updated><title type='text'>Creating a local fedora repo</title><content type='html'>Things you should know ahead of time:&lt;br /&gt;-- You'll need a lot of HDD space so create a separate 40GB partition&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;br /&gt;# install some requirements:&lt;br /&gt;yum install createrepo&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# create directories:&lt;br /&gt;mkdir -p /var/www/html/yum/base/10/i386&lt;br /&gt;mkdir -p /var/www/html/yum/updates/10/i386&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# sync the fedora 10 mirror with the repo directories&lt;br /&gt;# NOTES: &lt;br /&gt;# -- more &lt;a href="http://mirrors.fedoraproject.or/mirrorlists/publiclist/"&gt;mirror sites&lt;/a&gt;&lt;br /&gt;# -- prepend the rsync command with the next line to deal with a proxy server&lt;br /&gt;#                 RSYNC_PROXY="server.domain.com:3128" &lt;br /&gt;#&lt;br /&gt;# The base RPMs&lt;br /&gt;rsync -avrt rsync://mirrors.tummy.com/fedora/linux/releases/10/Everything/i386/os/Packages/ /var/www/html/yum/base/10/i386/&lt;br /&gt;&lt;br /&gt;# The update RPMs&lt;br /&gt;rsync -avrt rsync://mirrors.tummy.com/fedora/linux/updates/10/i386/ --exclude=debug/ /var/www/html/yum/updates/10/i386/&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# Create local repo data &lt;br /&gt;# This will create a repodata directory along side your RPMs&lt;br /&gt;createrepo /var/www/html/yum/base/10/i386&lt;br /&gt;createrepo /var/www/html/yum/updates/10/i386&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# automate it by resyncing the updates directory via cron job &lt;br /&gt;23 4 */2 * * /usr/bin/rsync -avrt ........(resync updates)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# update yum configuration &lt;br /&gt;# edit /etc/yum.conf  Append file with this:&lt;br /&gt;#---------------------------------------------------&lt;br /&gt;# added by frankg &lt;br /&gt;# used 127.0.0.1 because we have a dynamic IP &lt;br /&gt;# you should use your static IP of possible&lt;br /&gt;[base-local]&lt;br /&gt;name=Fedora $releasever - $basearch&lt;br /&gt;failovermethod=priority&lt;br /&gt;baseurl=http://127.0.0.1/yum/base/$releasever/$basearch&lt;br /&gt;#mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&amp;arch=$basearch&lt;br /&gt;enabled=1&lt;br /&gt;gpgcheck=0&lt;br /&gt;&lt;br /&gt;[updates-local]&lt;br /&gt;name=Fedora $releasever - $basearch - Updates&lt;br /&gt;failovermethod=priority&lt;br /&gt;baseurl=http://127.0.0.1/yum/updates/$releasever/$basearch/&lt;br /&gt;#mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&amp;arch=$basearch&lt;br /&gt;enabled=1&lt;br /&gt;gpgcheck=0&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.howtoforge.com/setting-up-a-local-yum-repository-fedora8"&gt;Reference Article&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3564315887645433114-8428145983179333711?l=dearfrankg.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dearfrankg.blogspot.com/feeds/8428145983179333711/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3564315887645433114&amp;postID=8428145983179333711&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3564315887645433114/posts/default/8428145983179333711'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3564315887645433114/posts/default/8428145983179333711'/><link rel='alternate' type='text/html' href='http://dearfrankg.blogspot.com/2009/03/creatin-fedora-repo.html' title='Creating a local fedora repo'/><author><name>Frank</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://4.bp.blogspot.com/_-tUbbSEqrUM/ShXHtw6VaRI/AAAAAAAACGs/Wjmf5hoq5s8/S220/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3564315887645433114.post-4125504484277523928</id><published>2009-01-02T14:43:00.000-08:00</published><updated>2009-01-02T15:54:26.983-08:00</updated><title type='text'>Viewing perl source in the browser</title><content type='html'>Nothing like getting sidetracked while in the middle of a project.  I've done this a million times but of course forget every time I do it.  So time to blog about it so I have a reference.&lt;br /&gt;&lt;br /&gt;The issue:&lt;br /&gt;I'm trying to view perl source code in the browser because I find it more flexible than VIM for browsing.  Using the default configuration for the server and browser, when I click on a .pl file it opens a dialog box.  &lt;br /&gt;&lt;br /&gt;The real issue:&lt;br /&gt;Well, the real issue that I was having was that I was using a URL like "file:///...".  This type of URL is handled by the browser and never sent to the web server.  So all the server config options in the world will not solve the problem. The trick is to serve the file with your web server so that you can use a URL like "http://servername/path/to/file".  &lt;br /&gt;&lt;br /&gt;The solution:&lt;br /&gt;1. serve the files you want to view&lt;br /&gt;I added a symbolic link to my root directory "/var/www/html/opt --&gt; /opt&lt;br /&gt;Make sure you have permissions set to allow your web user or group access.&lt;br /&gt;&lt;br /&gt;2. create a conf file for handling .pl files&lt;br /&gt;# filename: /etc/httpd/conf.d/perl.conf&lt;br /&gt;# I like to view .pl files in my browser&lt;br /&gt;AddType text/plain .pl &lt;br /&gt;&lt;br /&gt;3. restart web server &lt;br /&gt;&lt;br /&gt;4. clear cache in the browser &lt;br /&gt;&lt;br /&gt;5. view the .pl file in your browser.&lt;br /&gt;&lt;br /&gt;okay, back to work!!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3564315887645433114-4125504484277523928?l=dearfrankg.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dearfrankg.blogspot.com/feeds/4125504484277523928/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3564315887645433114&amp;postID=4125504484277523928&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3564315887645433114/posts/default/4125504484277523928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3564315887645433114/posts/default/4125504484277523928'/><link rel='alternate' type='text/html' href='http://dearfrankg.blogspot.com/2009/01/viewing-perl-source-in-browser.html' title='Viewing perl source in the browser'/><author><name>Frank</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://4.bp.blogspot.com/_-tUbbSEqrUM/ShXHtw6VaRI/AAAAAAAACGs/Wjmf5hoq5s8/S220/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3564315887645433114.post-2225472295667967544</id><published>2007-11-19T21:32:00.000-08:00</published><updated>2007-11-19T22:31:22.664-08:00</updated><title type='text'>perl installers</title><content type='html'>This is the story about the evolution of perl installers&lt;br /&gt;&lt;br /&gt;First there was ExtUtil::MakeMaker&lt;br /&gt;The original joe.&lt;br /&gt;This module comes with perl.&lt;br /&gt;The godfather of perl install.&lt;br /&gt;&lt;br /&gt;Then there was Module::Build&lt;br /&gt;The next generation joe&lt;br /&gt;This module does not come with perl.&lt;br /&gt;The goal of this module is to duplicate the functionality of ExtUtil::MakeMaker without the need for 'make'.&lt;br /&gt;&lt;br /&gt;And now finally there Module::Install&lt;br /&gt;The better joe&lt;br /&gt;Module::Install comes packaged with the module you're installing, so the end user never has to install it.  You can also bundle other modules with your distribution/module.  You can also add custom install code to your module.&lt;br /&gt;&lt;br /&gt;Get all the details &lt;a href="http://www.ddj.com/article/printableArticle.jhtml?articleID=184416018&amp;dept_url=/web-development/"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3564315887645433114-2225472295667967544?l=dearfrankg.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dearfrankg.blogspot.com/feeds/2225472295667967544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3564315887645433114&amp;postID=2225472295667967544&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3564315887645433114/posts/default/2225472295667967544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3564315887645433114/posts/default/2225472295667967544'/><link rel='alternate' type='text/html' href='http://dearfrankg.blogspot.com/2007/11/perl-installers.html' title='perl installers'/><author><name>Frank</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://4.bp.blogspot.com/_-tUbbSEqrUM/ShXHtw6VaRI/AAAAAAAACGs/Wjmf5hoq5s8/S220/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3564315887645433114.post-7793865082819954716</id><published>2007-07-22T00:13:00.001-07:00</published><updated>2008-07-08T22:39:56.866-07:00</updated><title type='text'>3 steps to passwordless ssh remote login</title><content type='html'>1) GENERATE KEYS ON LOCAL_BOX&lt;br /&gt;=============================================================&lt;br /&gt;# NOTE: don't enter passwords&lt;br /&gt;local_box&gt; ssh-keygen -t dsa&lt;br /&gt;Generating public/private dsa key pair.&lt;br /&gt;Enter file in which to save the key (/home/user/.ssh/id_dsa):&lt;br /&gt;Enter passphrase (empty for no passphrase):&lt;br /&gt;Enter same passphrase again:&lt;br /&gt;Your identification has been saved in /home/user/.ssh/id_dsa.&lt;br /&gt;Your public key has been saved in /home/user/.ssh/id_dsa.pub.&lt;br /&gt;The key fingerprint is:&lt;br /&gt;4c:fd:65:ff:a8:50:50:5c:2d:a0:88:ab:d1:d5:3c:08 user@remote_box.domain.com&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2) PLACE PUBLIC KEY ON REMOTE_BOX&lt;br /&gt;=============================================================&lt;br /&gt;# copy public key to remote_box&lt;br /&gt;local_box&gt; scp ~/.ssh/id_dsa.pub user@remote_box:~/&lt;br /&gt;# Login to remote_box and append public key to authorized_key file &lt;br /&gt;remote_box&gt; cd ~/.ssh&lt;br /&gt;remote_box&gt; cat ~/id_dsa.pub &gt;&gt; authorized_keys&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3) REQUIRED CLEANUP&lt;br /&gt;=============================================================&lt;br /&gt;# Set permission as follows &lt;br /&gt;remote_box&gt; chmod 700 ~/.ssh&lt;br /&gt;remote_box&gt; chmod 600 ~/.ssh/authorized_keys &lt;br /&gt;# remove original key from home dir &lt;br /&gt;remote_box&gt; rm -f ~/id_dsa.pub&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;TEST IT &lt;br /&gt;=============================================================&lt;br /&gt;local_box&gt; ssh user@remote_box&lt;br /&gt;Last login: Sun Jul 22 03:46:03 2007 from box.domain.com&lt;br /&gt;remote_box&gt;&lt;br /&gt;&lt;br /&gt;NOTES&lt;br /&gt;=============================================================&lt;br /&gt;There are security issues with having keys with no pass-phrase &lt;br /&gt;I don't get into it here.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;KEYS FROM WINDOWS ( see -&gt; &lt;a href="http://kutzooi.co.uk/?p=howto&amp;i=pkeyauth"&gt;Kutzooi blog&lt;/a&gt; )&lt;br /&gt;=============================================================&lt;br /&gt;Using a public key created by 'PuTTYgen'&lt;br /&gt;&lt;br /&gt;Unfortunately the layout of the key that PuTTYgen creates differs from the layout that SSH (on Linux) excepts, this means that we need to edit the public key to make it usuable under Linux. Fortunately enough its not too hard.&lt;br /&gt;&lt;br /&gt;Open the public key that you created, it will look something like this:&lt;br /&gt;&lt;br /&gt;   ---- BEGIN SSH2 PUBLIC KEY ----&lt;br /&gt;   Comment: "user@host"&lt;br /&gt;   AAAAB3NzaC1kc3MAAACBANmj5ago5F/QP50X2nxD9FkSIDFoSVv1KavQNjlONStv&lt;br /&gt;   PuJvF1AQLcDYjGrtFnK8Wn7sEzz1VZcOYTDq6pxy0xDyoQLjYTWVpVM3vVLETfJc&lt;br /&gt;   XVNejswt6SGshEW4R1Ys9xKaTPwRejEHe8FLqEkapTCj56dp47J5JOHs4b8SkAPl&lt;br /&gt;   AAAAFQD89oWHllh2NDH0lIiEwqts0RArzwAAAIBAflemdNoJwPn6ayVyYNM2bO0p&lt;br /&gt;   szzguxKstAvEyojWuIo4srYqUj8c6x6QqLxIvjwi94J8BEDvo7+rmG2PLSwM5Ovm&lt;br /&gt;   jyfHUpPD+c6iPLvioGfwQB+B0M/E1frkwteophR9P1Jf1seRDemKL3pY37jdYpq7&lt;br /&gt;   NCsJhiMy/NGntcgoagAAAIEAmyxLKQpBDQ8nUT1Fv+YhdBgCWIDQixgwcGZJjJ3d&lt;br /&gt;   AiHyDlJ5jXp6ba4ccS5FW2F068yoLY3uQNh1Jt+aUrFyZoc33rrrk34czLK4FKNp&lt;br /&gt;   M9V2+KTI8EL/1JeM3/jjl9IhZTLRzSaQinKA5SAXhYnXxfFPlhPislY968Kzag0J&lt;br /&gt;   Dag=&lt;br /&gt;   ---- END SSH2 PUBLIC KEY ----&lt;br /&gt;&lt;br /&gt;You should edit the file to make it look like this:&lt;br /&gt;&lt;br /&gt;   ssh-dss AAAAB3NzaC1kc3MAAACBANmj5ago5F/QP50X2nxD9FkSIDFoSVv1KavQNjlONSt&lt;br /&gt;   vPuJvF1AQLcDYjGrtFnK8Wn7sEzz1VZcOYTDq6pxy0xDyoQLjYTWVpVM3vVLETfJcXVNejs&lt;br /&gt;   wt6SGshEW4R1Ys9xKaTPwRejEHe8FLqEkapTCj56dp47J5JOHs4b8SkAPlAAAAFQD89oWHl&lt;br /&gt;   lh2NDH0lIiEwqts0RArzwAAAIBAflemdNoJwPn6ayVyYNM2bO0pszzguxKstAvEyojWuIo4&lt;br /&gt;   srYqUj8c6x6QqLxIvjwi94J8BEDvo7+rmG2PLSwM5OvmjyfHUpPD+c6iPLvioGfwQB+B0M/&lt;br /&gt;   E1frkwteophR9P1Jf1seRDemKL3pY37jdYpq7NCsJhiMy/NGntcgoagAAAIEAmyxLKQpBDQ&lt;br /&gt;   8nUT1Fv+YhdBgCWIDQixgwcGZJjJ3dAiHyDlJ5jXp6ba4ccS5FW2F068yoLY3uQNh1Jt+aU&lt;br /&gt;   rFyZoc33rrrk34czLK4FKNpM9V2+KTI8EL/1JeM3/jjl9IhZTLRzSaQinKA5SAXhYnXxfFP&lt;br /&gt;   lhPislY968Kzag0JDag= user@host&lt;br /&gt;&lt;br /&gt;NOTICE &lt;br /&gt;This is all on one line.  'ssh-dss' at the beginning and 'user@host' (replace user,host) at the end.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3564315887645433114-7793865082819954716?l=dearfrankg.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dearfrankg.blogspot.com/feeds/7793865082819954716/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3564315887645433114&amp;postID=7793865082819954716&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3564315887645433114/posts/default/7793865082819954716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3564315887645433114/posts/default/7793865082819954716'/><link rel='alternate' type='text/html' href='http://dearfrankg.blogspot.com/2007/07/3-steps-to-passwordless-remote-login.html' title='3 steps to passwordless ssh remote login'/><author><name>Frank</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://4.bp.blogspot.com/_-tUbbSEqrUM/ShXHtw6VaRI/AAAAAAAACGs/Wjmf5hoq5s8/S220/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3564315887645433114.post-6064943930858141388</id><published>2007-07-11T14:27:00.000-07:00</published><updated>2007-07-11T16:03:57.019-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><title type='text'>more vim magic</title><content type='html'>Vim is a popular editor on the UNIX platform.  It became popular partially because of its ubiquity but also for its power.  In this blog entry I would like to show a few of the ways I use Vim to program with Perl.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Warning tabs in this document&lt;/span&gt;&lt;br /&gt;Vim can be configured to highlight tab characters, so that you will know that the code is jacked!  Many programmers get really pushed out of shape if the code has tabs in it.  It is generally considered bad practice to include tabs in the code.  Here I'll show how to configure Vim to highlight tabs to warn you of impending danger.&lt;br /&gt;&lt;pre&gt;" highlight tabs with set color&lt;br /&gt;highlight MyGroup ctermbg=yellow guibg=yellow&lt;br /&gt;match MyGroup /\t/&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;We found the tabs now what?&lt;/span&gt;&lt;br /&gt;A quick command will convert all tabs to spaces&lt;br /&gt;&lt;pre&gt;&lt;esc&gt;:retab&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Abbreviations&lt;/span&gt;&lt;br /&gt;If you find yourself typing the same sequence repeatedly they use abbreviations.&lt;br /&gt;&lt;pre&gt;The vim command to paste into your rc file &lt;br /&gt;iab #p  #! /usr/bin/perl -w&lt;br /&gt;&lt;br /&gt;# the syntax explanation:&lt;br /&gt;iab  # insert mode abbrevaition&lt;br /&gt;#p   # the abbrevaition to type&lt;br /&gt;...  # the rest is what gets pasted in instead&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Now to try it out go into insert mode and type "#p " without the quotes.  You should see the "#p" replaced with "#! /usr/bin/perl -w". &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Boiler Plates&lt;/span&gt;&lt;br /&gt;When creating complex documents like modules, contracts, anything with many sections, it can be difficult to remember important sections because there are just too many to remember them all.  Boiler plates are skeleton documents that allow you to remember every section and avoid having to type them all in.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;# create the boiler plate doc at ~/.code_templates/perl_application&lt;br /&gt;# type this into your rc file&lt;br /&gt;iab papp &lt;Esc&gt;:r ~/.code_templates/perl_application&lt;CR&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;To try this out just type "papp ". &lt;br /&gt;&lt;br /&gt;Setting things up at the root level should go a long ways towards making your more productive.  Ciao :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3564315887645433114-6064943930858141388?l=dearfrankg.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dearfrankg.blogspot.com/feeds/6064943930858141388/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3564315887645433114&amp;postID=6064943930858141388&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3564315887645433114/posts/default/6064943930858141388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3564315887645433114/posts/default/6064943930858141388'/><link rel='alternate' type='text/html' href='http://dearfrankg.blogspot.com/2007/07/more-vim-magic.html' title='more vim magic'/><author><name>Frank</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://4.bp.blogspot.com/_-tUbbSEqrUM/ShXHtw6VaRI/AAAAAAAACGs/Wjmf5hoq5s8/S220/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3564315887645433114.post-2488870134755638465</id><published>2007-07-11T14:16:00.001-07:00</published><updated>2010-12-02T08:44:23.283-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><title type='text'>sharpening the saw</title><content type='html'>As I started working I realized that my home directory was a mess, so I decided to sharpen the saw.&lt;br /&gt;&lt;br /&gt;The first step was to get a bit more organized by cleaning my home folder, so I moved everything into a projects folder.  Ahhh much better, a clean home directory is the result.&lt;br /&gt;&lt;br /&gt;Next, on to Vim.  I have a couple of issues that I needed to work out.  1) local setting were different for a number of users.  2) global settings were not quite getting the job done, partially because I was not 100% sure what was being set.&lt;br /&gt;&lt;br /&gt;I proceeded to wipe out the local settings for each user.&lt;br /&gt;&lt;pre&gt;# once for each user&lt;br /&gt;# WARNING: Make sure there is nothing important in there (backup if not sure) &lt;br /&gt;rm -rf ~/.vim/*&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;next I opened up the /etc/vimrc file and cleaned it up:&lt;br /&gt;&lt;br /&gt;&lt;span style="background-color: #ff2;" &gt;Updated OCT 2009&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;"////////////////////////////////////////////////////////////////////////////&lt;br /&gt;" Perl Best Practices&lt;br /&gt;"////////////////////////////////////////////////////////////////////////////&lt;br /&gt;&lt;br /&gt;set autoindent&lt;br /&gt;"Preserve current indent on new lines&lt;br /&gt;&lt;br /&gt;set textwidth=78&lt;br /&gt;"Wrap at this column&lt;br /&gt;&lt;br /&gt;set backspace=indent,eol,start&lt;br /&gt;"Make backspaces delete sensibly&lt;br /&gt;&lt;br /&gt;set tabstop=3&lt;br /&gt;"Indentation levels every 3 columns&lt;br /&gt;&lt;br /&gt;set expandtab&lt;br /&gt;"Convert all tabs typed to spaces&lt;br /&gt;&lt;br /&gt;set shiftwidth=3&lt;br /&gt;"Indent/outdent by 3 columns&lt;br /&gt;&lt;br /&gt;set shiftround&lt;br /&gt;"Indent/outdent to nearest tabstop&lt;br /&gt;&lt;br /&gt;set matchpairs+=[:]&lt;br /&gt;"Allow % to bounce between angles too&lt;br /&gt;&lt;br /&gt;" Set F5 to toggle paste method&lt;br /&gt;nnoremap &amp;lt;F5&amp;gt; :set invpaste paste?&amp;lt;Enter&amp;gt;&lt;br /&gt;imap &amp;lt;F5&amp;gt; &amp;lt;C-O&amp;gt;&amp;lt;F5&amp;gt;&lt;br /&gt;set pastetoggle=&amp;lt;F5&amp;gt;&lt;br /&gt;&lt;br /&gt;" highlight tabs with set color&lt;br /&gt;highlight MyGroup ctermbg=yellow guibg=yellow&lt;br /&gt;match MyGroup /\t/&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;That's about it for tonight.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3564315887645433114-2488870134755638465?l=dearfrankg.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dearfrankg.blogspot.com/feeds/2488870134755638465/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3564315887645433114&amp;postID=2488870134755638465&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3564315887645433114/posts/default/2488870134755638465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3564315887645433114/posts/default/2488870134755638465'/><link rel='alternate' type='text/html' href='http://dearfrankg.blogspot.com/2007/07/this-is-test-this-is-test.html' title='sharpening the saw'/><author><name>Frank</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://4.bp.blogspot.com/_-tUbbSEqrUM/ShXHtw6VaRI/AAAAAAAACGs/Wjmf5hoq5s8/S220/photo.jpg'/></author><thr:total>0</thr:total></entry></feed>
