Thursday, March 7, 2013

brackets, parentheses, curly braces in BASH

In Bash, test and [ are builtins.
The double bracket enables additional functionality. For example, you can use && and || instead of-a and -o and there's a regular expression matching operator =~.
The braces, in addition to delimiting a variable name are used for parameter expansion so you can do things like:
  • Truncate the contents of a variable
    $ var="abcde"; echo ${var%d*}
  • Make substitutions similar to sed
    $ var="abcde"; echo ${var/de/12}
  • Use a default value
    $ default="hello"; unset var; echo ${var:-$default}
  • and several more

Wednesday, March 6, 2013

Vim folding, auto fold xml, fold, unfold

To allow folds based on syntax add something like the following to your .vimrc:
set foldmethod=syntax
set foldlevelstart=1

let javaScript_fold=1         " JavaScript
let perl_fold=1               " Perl
let php_folding=1             " PHP
let r_syntax_folding=1        " R
let ruby_fold=1               " Ruby
let sh_fold_enabled=1         " sh
let vimsyn_folding='af'       " Vim script
let xml_syntax_folding=1      " XML

zo -- To open a fold block
zc -- To fold a block
zr -- Fold less
zm -- Fold more