Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

abitkin

by abitkin (Monk)
on Aug 06, 2002 at 21:57 UTC ( #188181=user: print w/ replies, xml ) Need Help??

Bio

I have quite a bit of experince with php, c++, java, and a multitude of other languages. Currently my summer job requires me to do some work in perl, and that's why I'm here.

I speak geek fairly fluently, along with user (very fluently thanks to my parents.) I'm always willing to learn something new.

Quotes

People are much easier to kill before they've had their coffee.
Tune fur sleep

Laugh O' Minute Links

Ford Testifies to Stop Ride Sharing
God vs Perl Gods
99.9% of Highschool Seniors Can't Read Perl
Student Suspended Over Suspected Use of PHP
Linux Kernel Delayed By Microsoft's Army of Evil Monkeys (Read Microsoft Purchases Evil From Satan first)
Microsoft Purchases Evil From Satan
God Angrily Clarifies 'Don't Kill' Rule
Jesus' Email Campaign Fails

Other Stuff

Stats
Old Rank:Old Date:New Date:
1)Initiate:08/06/2002???
2)Novice:08/07/2002???
3)Acolyte:  08/10/2002???
4)Scribe:08/15/2002???
5)Monk: 08/31/2002 8/7/2007
6)Friar: 10/16/2004 Not there Yet
7)Abbot: Not there Yet Not there Yet
8)Bishop: Not there Yet Not there Yet
9)Pontiff: Not there Yet Not there Yet
10)Saint: Not there Yet Not there Yet
<image height=350 width=800 src="http://tinymicros.com/pm/index.php?goto=PlotChartImage_VH&nodeid=188181">

My Useful VIM Stuff

File: $VIM/_vimrc

"*****************************************************************
" Title   : .vimrc
" Date    : 1/9/2001
" Version : 2.0
" 
" History :
"   1/9/2001   - Added header comment.
"   1/9/2001   - Made backspace= line use vim 5.4 and earlier syntax
"   1/9/2001   - Set noexpandtab when editing makefiles
"   1/15/2001  - Correctly set expandtab when leaving makefiles
"******************************************************************

"** Turn syntax highlighting on (must be after terminfo stuff above)
syntax on
set ff=unix

"** Attempt to use 16 color terminal **
if has("terminfo")
  set t_Co=16
  set t_AB=^[[%?%p1%{8}%<%t%p1%{40}%+%e%p1%{92}%+%;%dm
  set t_AF=^[[%?%p1%{8}%<%t%p1%{30}%+%e%p1%{82}%+%;%dm
else
  set t_Co=16
  set t_AB=^[[3%dm
  set t_AF=^[[4%dm
endif

"** Make the color used for comments readable on a black background
"highlight Comment ctermfg=Cyan
highlight Comment ctermfg=Cyan

"** Turn on line numbers in status bar
set ruler

"** Tell vim to set the title on xterms (needed for imwheel to detect vim)
set title

"** Tabstops should be two spaces, expand by default
set tabstop=4
set shiftwidth=4
set noexpandtab

"** Don't do "C" smart indenting by default, but do auto indent.
set nocindent
set si
set autoindent

"** Allow backspacing before start of indent, back around eol, etc
set backspace=2

"** More generous tags file location
set tags=./tags,tags,../tags

if !exists("autocommands_loaded")
  let autocommands_loaded=1

  "** C/C++
  autocmd BufNewFile,BufRead *.c,*.cpp,*.C,*.cxx,*.h set cindent
  autocmd BufLeave *.c,*.cpp,*.C,*.cxx,*.h set nocindent

  "** Perl
  autocmd BufNewFile,BufRead *.pl,*.pm set cindent
  autocmd BufLeave *.pl,*.pm set nocindent
endif

if has('syntax')
    let perl_include_pod=1
    let java_highlight_java_lang_ids=1
    let java_highlight_debug=1
    let java_allow_cpp_keywords=1
    let is_bash=1
    syntax on
    if v:version >= 600
    filetype plugin indent on
    endif
endif

let g:initals="KIN"
let g:myname="Scott Atkins"
let g:email1="kin@cypress.com"
let g:email2=""
let g:email3=""

" load my personal settings
so $VIM/kin/personal.vim
$VIM/kin/personal.vim
"########################################
" File -        personal.vim
" Author -      Scott Atkins
" Date -        Wednesday, September 11, 2002
" E-Mail -      kin@cypress.com
"               
"               
" Des‎crip‎tion - VIM Personal Settings File
"########################################

" load tab complete
so $VIM/kin/tabcomplete.vim

" load new windows file
so $VIM/kin/mswin2.vim

" load comments
so $VIM/kin/comments.vim

" load matchMe
so $VIM/kin/matchMe.vim

" Set colors
colors murphy

" Other config options

" set vim to wrap the cursor
" at the end of a line (in
" insert mode)
set whichwrap=>,<,b,s,h,l,~,[,]

" No more hit enter to continue
set shortmess=a

" 1 line command line
set cmdheight=1

" Set line numbering, visual bell
" and other such options
set nu
set vb
set esckeys
set showcmd
set sm
set mousehide
set guioptions+=a

" Set PHP to c++ syntax
if !exists("autocommands_loaded")
  let autocommands_loaded=1

  "** Php
  autocmd BufNewFile,BufRead *.php,*.php4 set cindent
  autocmd BufLeave *.php,*.php4 set nocindent
endif

" Windows Help
if has("win32")
    let winhelpfile='windows.hlp'
    map K :execute "!start winhlp32 -k <cword> " . winhelpfile
endif

if has("gui_running")
  " If the current buffer has never been saved, it will have no name,
  " call the file browser to save it, otherwise just save it.
  :map <silent> <C-S> :if expand("%") == ""<CR>:browse confirm w<CR>:else<CR>:confirm w<CR>:endif<CR>
endif
imap <c-s> <c-o><c-s><cr>

map <F2> ma][%0"xy$`a:echo @x<cr>
imap <F2> <esc>ma][%0"xy$`ai<c-o>:echo @x<cr>

" make up and down work correctly
imap <silent> <Down> <C-o>gj
imap <silent> <Up> <C-o>gk
nmap <silent> <Down> gj
nmap <silent> <Up> gk

" Status Bar
function VarSet(var,ret1,ret2)
    if a:var != ''
        return a:ret1
    else
        return a:ret2
    endif
endfunction

function FileInfo()
    return CompVar().VarSet(&ft,'['.&ft.'-','[').&ff.'] '
endfunction

set ls=2
set statusline=%<%f%h%m%r%=%b\ 0x%B\ %{FileInfo()}%l,%c%V\ %P

hi StatusLine term=bold cterm=bold ctermfg=lightblue guifg=lightblue gui=none guibg=#333333

hi StatusLineNC term=NONE cterm=NONE ctermfg=Black guifg=#666666 gui=None guibg=#333333

" Set the window size
" win 100 45

" wrap at word
set lbr!

" fullscreen
" au GUIEnter * simalt ~x

nmap ,s :so $VIM/_vimrc<cr>
nmap ,v :e $VIM/_vimrc<cr>

" Escape Toggle
map <esc> :startinsert<cr>

" Start in insert mode
:startinsert
$VIM/kin/tabcomplete.vim
"########################################
" File -        tabcomplete.vim
" Author -      Scott Atkins
" Date -        Monday, August 05, 2002
" E-Mail -      kin@cypress.com
"               
"               
" Des‎crip‎tion - fixes small things
"               with vim such as using
"               tab to complete words
"               starting in insert mode
"               and escape switches
"               modes.  Plus there are
"               file headers and comment
"               functions for most file
"               types.
"########################################

" This code is from vim.org in the tips
" section.
function! InsertTabWrapper(direction)
    let col = col('.') - 1
    if !col || getline('.')[col - 1] !~ '\k'
        return "\<tab>"
    elseif "backward" == a:direction
        return "\<c-p>"
    else
        return "\<c-n>"
    endif
endfunction


" Bind the tab-complete
inoremap <tab> <c-r>=InsertTabWrapper ("forward")<cr>
inoremap <s-tab> <c-r>=InsertTabWrapper ("backward")<cr>
$VIM/kin/mswin2.vim
" Set options and add mapping such that Vim behaves a lot like MS-Windows
"
" Maintainer:   Bram Moolenaar <Bram@vim.org>
" Last change:  2002 Mar 05

" set the 'cpoptions' to its Vim default
if 1    " only do this when compiled with expression evaluation
  let s:save_cpo = &cpoptions
endif
set cpo&vim

" backspace in Visual mode deletes selection
vnoremap <BS> d

" CTRL-X and SHIFT-Del are Cut
vnoremap <C-X> "+x

" CTRL-C and CTRL-Insert are Copy
vnoremap <C-C> "+y

" CTRL-V and SHIFT-Insert are Paste
map <C-V>       "+gP

cmap <C-V>      <C-R>+
imap <C-V>      <ESC><C-V><ESC>

" Use CTRL-Q to do what CTRL-V used to do
noremap <C-Q>       <C-V>

" CTRL-Z is Undo; not in cmdline though
noremap <C-Z> u
inoremap <C-Z> <C-O>u

" CTRL-Y is Redo (although not repeat); not in cmdline though
noremap <C-Y> <C-R>
inoremap <C-Y> <C-O><C-R>

" CTRL-A is Select all
noremap <C-A> gggH<C-O>G
inoremap <C-A> <C-O>gg<C-O>gH<C-O>G
cnoremap <C-A> <C-C>gggH<C-O>G

" restore 'cpoptions'
set cpo&
if 1
  let &cpoptions = s:save_cpo
  unlet s:save_cpo
endif
$VIM/kin/matchMe.vim
"########################################
" File -        matchMe.vim
" Author -      Scott Atkins
" Date -        Wednesday, August 21, 2002
" E-Mail -      kin@cypress.com
"########################################

" This code fixes my problem with 
" does the one format for perl, and acts
" correctly with hashes.
function! InsertBrackets()
    let fileType = &ft
    if fileType == 'perl'
        let col = col('.') - 1
        if !col || getline('.')[col - 1] !~ '\k' && getline('.')[col - 1] !~ '\$' && getline('.')[col - 1] !~ '@' && getline('.')[col - 1] !~ '%'  && getline('.')[col - 1] !~ '#'
            return "{\<cr>\<bs>}\<esc>ko"
        else
            return "{}\<esc>i\<c-o>:echo \<cr>"
        endif
    else
        return "{\<cr>\<bs>}\<esc>ko"
    endif
endfunction

" This code jumps out of the brackets
function! JumpNext(startChar, endChar,oneItem)
    let ret1 = "\<esc>:if \"0\"==searchpair('".a:startChar."','','".a:endChar."','W','synIDattr(synID(line(\".\"), col(\".\"), 0), \"name\") =~? \"string\"')\<cr>exec(\"normal i\\<right>".a:oneItem."\")\<cr>endif\<cr>i\<right>"
    return ret1
endfunction

" Added toggle.
" Date: Thursday, August 29, 2002 @ 07:57 AM
" Thanks to: Alex A. Naanou <alex_nanou@yahoo.com> 
fun! s:Toggle_Edit2()
    if exists('b:edithelpers_on') && b:edithelpers_on == 1
        if (!exists('b:edithelpers2_on') || b:edithelpers2_on == 0)
            let b:edithelpers2_on=1
            " mappings
            inoremap > <c-r>=JumpNext("<",">","\<m-.>")<cr>
            inoremap ) <c-r>=JumpNext("(",")","\<m-0>")<cr>
            inoremap ] <c-r>=JumpNext("[","]","\<m-=>")<cr>
            inoremap } <c-r>=JumpNext("{","}","\<m-]>")<cr>
            inoremap <m-=> ]
            inoremap <m-]> }
            inoremap <m-.> >
            inoremap <m-0> )
        else
            unlet b:edithelpers2_on
            iunmap >
            iunmap )
            iunmap ]
            iunmap }
            iunmap <m-=>
            iunmap <m-]>
            iunmap <m-.>
            iunmap <m-0>
        endif
    endif
endfun

" Added toggle.
" Date: Thursday, August 29, 2002 @ 07:57 AM
" Thanks to: Alex A. Naanou <alex_nanou@yahoo.com> 
fun! s:Toggle_Edit()
    if !exists('b:edithelpers_on') || b:edithelpers_on == 0
        let b:edithelpers_on=1
        " mappings
        inoremap " ""<esc>i<c-o>:echo <cr>
        inoremap ' ''<esc>i<c-o>:echo <cr>
        inoremap < <><esc>i<c-o>:echo <cr>
        inoremap ( ()<esc>i<c-o>:echo <cr>
        inoremap [ []<esc>i<c-o>:echo <cr>
        inoremap { <c-r>=InsertBrackets ()<cr>
        inoremap <m--> [
        inoremap <m-/> "
        inoremap <m-[> {
        inoremap <m-,> <
        inoremap <m-9> (
        inoremap <m-'> '
        if !exists('b:edithelpers2_on') || b:edithelpers2_on == 0
            call <SID>Toggle_Edit2()
        endif
    else
        iunmap "
        iunmap '
        iunmap <
        iunmap (
        iunmap [
        iunmap {
        iunmap <m-->
        iunmap <m-/>
        iunmap <m-[>
        iunmap <m-,>
        iunmap <m-9>
        iunmap <m-'>
        if exists('b:edithelpers2_on') && b:edithelpers2_on == 1
            call <SID>Toggle_Edit2()
        endif
        unlet b:edithelpers_on
    endif
endfun
function VarExists(var, val1, val2)
    if exists(a:var) | return a:val1 | else | return a:val2 | endif
endfunction
function CompVar()
    return VarExists('b:edithelpers_on',VarExists('b:edithelpers2_on','[BC-J] ','[BC] '),'')
endfunction

nnoremap <silent><F9> :call <SID>Toggle_Edit()<CR>
inoremap <silent><F9> <C-O>:call <SID>Toggle_Edit()<CR>
call <SID>Toggle_Edit()
nnoremap <silent><F8> :call <SID>Toggle_Edit2()<CR>
inoremap <silent><F8> <C-O>:call <SID>Toggle_Edit2()<CR>
" F-8 toggles the jump
" F-9  toggles the bracketing feature and overrides F-8
$VIM/kin/comments.vim
"########################################
" File -        comments.vim
" Author -      Scott Atkins
" Date -        Wednesday, August 21, 2002
" E-Mail -      kin@cypress.com
"               
"               
"########################################

" This code is from vim.org from the
" enhanced commentify s‎crip‎t (v. 1.8)
"
" it is used in a diffrent way here.
function s:getFileType()
    let fileType = &ft
    if fileType  == 'ox' || fileType == 'cpp' || fileType == 'php' || fileType == 'java'
        let commentSy = '//'
    elseif fileType == 'ftf'
        let commentSy = '//'
    elseif fileType == 'vim'
        let commentSy = '"'
    elseif fileType == 'lisp' || fileType == 'scheme' || fileType == 'dosini'
        let commentSy = ';'
    elseif fileType == 'tex'
        let commentSy = '%'
    elseif fileType == 'caos'
        let commentSy = '*'
    elseif fileType == 'm4' || fileType == 'config' || fileType == 'automake'
        let commentSy = 'dnl '
    elseif fileType == 'python' || fileType == 'perl' || fileType == 'make' || fileType =~ '[^w]sh$' || fileType == 'tcl' || fileType == 'jproperties'
        let commentSy = '#'
    elseif fileType == 'vb' || fileType == 'aspvbs'
        let commentSy == "'"
    elseif fileType == 'plsql' || fileType == 'lua'
        let commentSy = '--'
    else
        execute 'echo "File not supported"'
        let commentSy = ''
    endif
    unlet fileType
    return commentSy
endfunction

" This code just adds my initials and the
" date/time for any changes I make to 
" other people's s‎crip‎ts/source files
function MyComment()
    let commentSy = s:getFileType()
    let s:line=line(".")
    call append(s:line,commentSy." Added/Changed by ".g:initals)
    call append(s:line+1,commentSy." Date: ".strftime("%A, %B %d, %Y @ %I:%M %p"))
    unlet s:line
    unlet commentSy
endfunction

" This code is for adding function
" headers as I'm writing functions.
function! FunctionHeading()
    let commentSy = s:getFileType()
    let fun = input("Function Name? ")
    let s:line=line(".")
    let retaa = commentSy."########################################\<cr> Function - ".fun."\<cr>Author -        ".g:myname."\<cr>Date -     ".strftime("%A, %B %d, %Y")."\<cr>Input -       \<esc>mzA\<cr>ReturnVal -   \<cr>Des‎crip‎tion -  \<cr>\<bs>########################################\<cr>\<bs>"
    let fileType = &ft
    if fileType == 'perl'
        let retb = "sub ".fun."{\<cr>   \<esc>mzi\<cr>}"
        let retc = retaa . retb
        let retaa = retc
        unlet retb
        unlet retc
    endif
    return retaa . "\<esc>`zA"
    unlet retaa
    unlet fun
    unlet s:line
    unlet commentSy
endfunction

" This code writes my standard header
" to a s‎crip‎t or source file.
function! FileHeading()
    if has("gui_running")
        if expand("%") == ""
            browse confirm w
        endif
    endif
    let commentSy = s:getFileType()
    let name = expand("%:t")
    let s:line=line(".")
    let fileType = &ft
    let retA = ""
    let retI = ""
    if s:line == 1 && fileType == 'perl'
        let retA = "#!/usr/local/bin/perl -w\<cr>\<bs>"
        let retI = "use strict;\<cr>"
    endif
    let retB = commentSy."########################################\<cr>"
    let retC = " File -     ".name."\<cr>Author -       ".g:myname."\<cr>Date -"
    let retD = "        ".strftime("%A, %B %d, %Y")."\<cr>E-Mail -      "
    let retE = g:email1."\<cr>              ".g:email2."\<cr>"
    let retF = g:email3."\<cr>\<bs>\<bs>\<bs>\<bs>Des‎crip‎tion - \<esc>"
    let retG = "mzi\<cr>Flags -     \<cr>Notes -        \<cr>\<bs>"
    let retH = "########################################\<cr>\<bs>"
    let retJ = "\<esc>`zA "
    let retK = retA . retB . retC . retD . retE . retF . retG . retH . retI . retJ
    unlet retA
    unlet retB
    unlet retC
    unlet retD
    unlet retE
    unlet retF
    unlet retG
    unlet retH
    unlet retI
    unlet retJ
    return retK
    unlet s:line
    unlet commentSy
endfunction

" Bind all the comment keys
inoremap <F3>  <c-r>=FileHeading()<cr>
inoremap <F4>  <c-r>=FunctionHeading()<cr>
imap <F5>  <esc>mz:execute MyComment()<cr>`zjjA

Log In?
Username:
Password:

What's my password?
Create A New User
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (5)
As of 2014-09-24 02:08 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (244 votes), past polls