Friday, March 2, 2012

Important history options to be placed in .bashrc

Configuring the command-line history options in .bash_login (or .bashrc) is really useful. The following is a cadre of settings that I use on my Macbook Pro.
Setting the following makes bash erase duplicate commands in your history
export HISTCONTROL="erasedups:ignoreboth"
I also jack my history size up pretty high too.
export HISTFILESIZE=500000 export HISTSIZE=100000
Another thing that I do is ignore some commands from my history. No need to remember the exit command.
export HISTIGNORE="&:[ ]*:exit"
You definitely want to set histappend. Otherwise, bash overwrites your history when you exit.
shopt -s histappend
Another option that I use is cmdhist. This lets you save multi-line commands to the history as one command.
shopt -s cmdhist

Tuesday, February 14, 2012

Some Vim shortcuts

Some productivity tips:
Smart movements
* and # search for the word under the cursor forward/backward. 
w to the next word 
W to the next space-separated word 
b / e to the begin/end of the current word. (B / E for space separated only) 
gg / G jump to the begin/end of the file.
%jump to the matching { .. } or ( .. ), etc.. 
{ / } jump to next paragraph.
Quick editing commands
I insert at the begin. 
A append to end. 
o / O open a new line after/before the current. 
v / V visual mode (to select text!) 
Shift+R replace text 
C change remaining part of line.
Combining commands
Most commands accept a amount and direction, for example:
cW = change till end of word 
3cW = change 3 words 
BcW = to begin of full word, 
change full word ciW = change inner word. 
ci" = change inner between ".." 
ci( = change text between ( .. ) 
4dd = delete 4 lines 
3x = delete 3 characters. 
3s = substitute 3 characters.
Useful programmer commands
r replace one character (e.g. rd replaces the current char with d).
 ~ changes case. 
J joins two lines 
Ctrl+A / Ctrl+X increments/decrements a number.
. repeat last command (a simple macro) 
= indent line (specify a range, or use visual mode)
Macro recording
Press q[key] to start recording. 
Then hit q to stop recording. 
The macro can be played with @[key].
VIM as a file comparator:
Use '-d' switch to compare two files in VIM. This command splits the VIM screen vertically and shows the differences.
vim -d