A customized ~/.vimrc file
:syntax on "Turn on syntax highlighting :set laststatus=2 "Always show status line :set autowrite "Automatically write a file when leaving a modified buffer :set confirm "Start a dialog when a command fails (here when quit command fails) :set tabstop=4 "Number of spaces a TAB in the text stands for :set shiftwidth=4 "Number of spaces used for each step of (auto)indent :set hlsearch "Have vim highlight the target of a search :set incsearch "Do incremental searching :set ruler "Show the cursor position all the time :set number "Show line numbers :set ignorecase "Ignore case when searching :set title "Show info in the window title :set titlestring=PANKAJ:\ %F "Automatically set screen title :set noautoindent :set nosmartindent :set nocindent "Indent only if the file is of type cpp,c,java,sh,pl,php,asp :au FileType cpp,c,java,sh,pl,php,asp set autoindent :au FileType cpp,c,java,sh,pl,php,asp set smartindent :au FileType cpp,c,java,sh,pl,php,asp set cindent "Wrapping long lines :set wrapmargin=4 "Margin from the right in which to break a line. Set this value to 4 or 5 :set textwidth=70 "Line length above which to break a line "Defining abbreviations :ab #d #define :ab #i #include "Defining abbreviations to draw comments :ab #b /******************************************************** :ab #e ********************************************************/ :ab #l /*------------------------------------------------------*/ "Converting tabs to spaces :set expandtab
VIM Editor Tips
Navigating through VIM
Down (j), Up (k), left (h), right (l)
w (word forward), b (word backward)
W (word forward skip punctuation), B (word backward skip punctuation)
Page Down (Ctrl-f)
Page Up (Ctrl-b)
End of Line ($)
Start of Line (0)
Start of document (gg)
End of Document (G)
Jump to last place that you made an edit (g;)
Copy Pasting Contents
Surprisingly VIM inserts a lot of extra spaces when code is pasted from other applications. This can be corrected by executing the following in VIM mode
:set paste
OR
gg=G
Indentations can be corrected by running the following command in the system
indent -kr filename
Working with Visual Blocks
It is a feature that allows you to mark a block of text and perform editing operations on them. To enter visual blocks mode, press Ctrl+v, then use hjkl or arrow keys to highlight a block of text. Now operate on the first highlighted line as if you were in normal mode
Visual mode (v)
Visual line mode (V)
Visual block mode (Ctrl-v)
Converting tabs to spaces
Make sure you have :set expandtab set in your .vimrc file or otherwise execute set expandtab in normal mode and then run the following command to convert all tabs to spaces
:retab
Wrap a long line
Use (gq) to wrap the highlighted peice of text
Auto-Complete
Start typing the variable/function names and then (Ctrl-n) or (Ctrl-p) next and previous
Delete
delete character (x)
delete word (dw)
delete line (dd)
Auto-Indent
line (==)
entire document (gg=G)
Find/Replace
%s/oldword/newword/g OR %s#oldword#newword#g
%s/oldword/newword/gc OR %s#oldword#newword#gc
Split Windows
Horizontal Windows :split
Vertical Windows :vs
Shifting between Windows (Ctrl-shift-ww)
Map Commands
If you find yourself re-typing the same command over and over, map it to one of the function keys as follows:
:map <fx> cmd
This maps the command cmd to function key Fx. For example, to map F5 to the command :!gcc -c % (compiles the current file) in normal mode
Code Folding
For large code blocks, you might want to fold/hide away certain functions temporarily. To fold a selection, select it in visual then (zf). To open a fold (zo)
Changing the Line Number Background and Foreground color
:highlight LineNr guibg=grey
:highlight LineNr guifg=blue
:highlight LineNr ctermfg=white ctermbg=grey
No comments:
Post a Comment