Friday, April 24, 2009

Friday, March 27, 2009

Vim tips: split viewport

:sp will split the Vim window horizontally. Can be written out entirely as :split .

:vsp will split the Vim window vertically. Can be written out as :vsplit .

Ctrl-w Ctrl-w moves between Vim viewports.

Ctrl-w j moves one viewport down.

Ctrl-w k moves one viewport up.

Ctrl-w h moves one viewport to the left.

Ctrl-w l moves one viewport to the right.

Ctrl-w = tells Vim to resize viewports to be of equal size.

Ctrl-w - reduce active viewport by one line.

Ctrl-w + increase active viewport by one line.

Ctrl-w q will close the active window.

Ctrl-w r will rotate windows to the right.

Ctrl-w R will rotate windows to the left.

Vim tips: folding

Folding function:

:1,100 fold
% fold line 1 to 100

:zo
% unfold the block. z open

:zc
% fold the block again. z close

Ok, the fun part is to save this folding thing when you open the file next time, right? Add the following two line to your ~/.vimrc file.
au BufWinLeave * mkview
au BufWinEnter * silent loadview

Thursday, March 26, 2009

Prepare resume using Latex and bibtex

This was a pain of ass. I used at least two hours to figure out how to use bibtex to list my publications. It turned out very nice in the end. Here are some links I used.

1. Latex and res.cls bibtex

2. Remove * (star) from the first line!!

The second link was really useful !! Saved my day!

Wednesday, March 25, 2009

How to use 'find' command (from a website)

I just paste this here for convenience. This is from this link.

Introduction

The find command allows the Unix user to process a set of files and/or directories in a file subtree.

You can specify the following:

  • where to search (pathname)
  • what type of file to search for (-type: directories, data files, links)
  • how to process the files (-exec: run a process against a selected file)
  • the name of the file(s) (-name)
  • perform logical operations on selections (-o and -a)

Search for file with a specific name in a set of files (-name)

find . -name "rc.conf" -print

This command will search in the current directory and all sub directories for a file named rc.conf.

Note: The -print option will print out the path of any file that is found with that name. In general -print wil print out the path of any file that meets the find criteria.

How to apply a unix command to a set of file (-exec).

find . -name "rc.conf" -exec chmod o+r '{}' \;

This command will search in the current directory and all sub directories. All files named rc.conf will be processed by the chmod -o+r command. The argument '{}' inserts each found file into the chmod command line. The \; argument indicates the exec command line has ended.

The end results of this command is all rc.conf files have the other permissions set to read access (if the operator is the owner of the file).

How to apply a complex selection of files (-o and -a).

find /usr/src -not \( -name "*,v" -o -name ".*,v" \) '{}' \; -print

This command will search in the /usr/src directory and all sub directories. All files that are of the form '*,v' and '.*,v' are excluded. Important arguments to note are:

  • -not means the negation of the expression that follows
  • \( means the start of a complex expression.
  • \) means the end of a complex expression.
  • -o means a logical or of a complex expression.
    In this case the complex expression is all files like '*,v' or '.*,v'

The above example is shows how to select all file that are not part of the RCS system. This is important when you want go through a source tree and modify all the source files... but ... you don't want to affect the RCS version control files.

How to search for a string in a selection of files (-exec grep ...).

find . -exec grep "www.athabasca" '{}' \; -print

This command will search in the current directory and all sub directories. All files that contain the string will have their path printed to standard output.

If you want to just find each file then pass it on for processing use the -q grep option. This finds the first occurrance of the search string. It then signals success to find and find continues searching for more files.

find . -exec grep -q "www.athabasca" '{}' \; -print

This command is very important for process a series of files that contain a specific string. You can then process each file appropriately. An example is find all html files with the string "www.athabascau.ca". You can then process the files with a sed script to change those occurrances of "www.athabascau.ca" with "intra.athabascau.ca".

Saturday, March 21, 2009

bibtex is a good thing to have

1. Download "jabref" (you can google it), then install. It works on Windows, OSX and linux ...

2. Learn how to use jabref? You can google it. There is a video about it. I like this link.

3. You can export it to html and even for MS word!! Well, I guess this little thing was born for tex, so there is no problem for latex users.

Saturday, March 14, 2009

Neumann reported his car accident

Despite being a notoriously bad driver, he nonetheless enjoyed driving (frequently while reading a book) - occasioning numerous arrests as well as accidents. He reported one of his car accidents in this way: "I was proceeding down the road. The trees on the right were passing me in orderly fashion at 60 miles per hour. Suddenly one of them stepped in my path." (The von Neumanns would return to Princeton at the beginning of each academic year with a new car.)

Arbitrary parameters

With four parameters, I can fit an elephant, and with five, I can make him wiggle his trunk. -- Johnny von Neumann.