I started to write this .vimrc file because I wanted my programs to use 4-space (actual spaces!) identation.
That was a simple need, but, after a quick research, I found many features that made Perl programming more enjoyable in Vim.
Without more delay, here's my .vimrc file:
" use visual bell instead of beeping
set vb
" incremental search
set incsearch
" syntax highlighting
set bg=light
syntax on
" autoindent
autocmd FileType perl set autoindent|set smartindent
" 4 space tabs
autocmd FileType perl set tabstop=4|set shiftwidth=4|set expandtab|set
+ softtabstop=4
" show matching brackets
autocmd FileType perl set showmatch
" show line numbers
autocmd FileType perl set number
" check perl code with :make
autocmd FileType perl set makeprg=perl\ -c\ %\ $*
autocmd FileType perl set errorformat=%f:%l:%m
autocmd FileType perl set autowrite
" dont use Q for Ex mode
map Q :q
" make tab in v mode ident code
vmap <tab> >gv
vmap <s-tab> <gv
" make tab in normal mode ident code
nmap <tab> I<tab><esc>
nmap <s-tab> ^i<bs><esc>
" paste mode - this will avoid unexpected effects when you
" cut or copy some text from one window and paste it in Vim.
set pastetoggle=<F11>
" comment/uncomment blocks of code (in vmode)
vmap _c :s/^/#/gi<Enter>
vmap _C :s/^#//gi<Enter>
" my perl includes pod
let perl_include_pod = 1
" syntax color complex things like @{${"foo"}}
let perl_extended_vars = 1
" Tidy selected lines (or entire file) with _t:
nnoremap <silent> _t :%!perltidy -q<Enter>
vnoremap <silent> _t :!perltidy -q<Enter>
" Deparse obfuscated code
nnoremap <silent> _d :.!perl -MO=Deparse 2>/dev/null<cr>
vnoremap <silent> _d :!perl -MO=Deparse 2>/dev/null<cr>
Most of the features are self-evident when you open your next perl script. Other features deserve some comments:
- Use ":make" to check your code: it will call "perl -c" to verify your code and, if there are any erros, the cursor will be positioned in the offending line.
- Get rid of the Ex mode: I often entered in Ex mode when I wanted to type ":q"...
- Indent code with tabs: Use "v" to select a region, or indent line by line in normal mode. (Use shift-tab to unindent.)
- Press F11 to toggle the "paste mode", disabling autoindent so that any text you paste won't loose its original layout.
- UPDATE: added some hints from the comments.
I hope you'll find those tricks useful!
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|