Difference between revisions of "Vim"
From MohidWiki
(→Configure VIM) |
|||
Line 104: | Line 104: | ||
> sudo vim $PATHTOFILETYPE/filetype.vim | > sudo vim $PATHTOFILETYPE/filetype.vim | ||
filetype.vim> au BufNewFile,BufRead *.[lang_suf] setf [lang] | filetype.vim> au BufNewFile,BufRead *.[lang_suf] setf [lang] | ||
+ | |||
+ | ===Code completion (intellisense) for C++=== | ||
+ | > sudo apt-get install vim exuberant-ctags | ||
+ | > wget [http://www.vim.org/scripts/script.php?script_id=1520 [omnicpp]] | ||
+ | |||
+ | *[http://design.liberta.co.za/articles/code-completion-intellisense-for-cpp-in-vim-with-omnicppcomplete/ Original blog post how-to] | ||
==Tips & tricks== | ==Tips & tricks== |
Revision as of 11:32, 12 June 2010
Here are some useful references for using Vim, the powerful customizable wrist-friendly text-editor:
Contents
Basic editing
[ESC] to return in normal mode.
i key to insert text.
h, j, k, l keys for moving around the text.
x key to delete a character.
rx keys replaces current character with the x character.
u key to undo an editing operation.
U key to undo all editing operations performed to the current line.
[Ctrl]-r keys to redo (undo the undo).
Motion keys
$ key to move to the end of line.
0 key to move to the beginning of line.
w key to move to the first character of the next word.
e key to move to the last character of the current(or next) word.
Operators
Operators are useful to perform operations a repeated number of times. Syntax is
Op [count] motion
wher Op is the operator, [count] is the number of times, and motion is the scope of the operation.
Delete
d key.
dd deletes the whole line.
Put
Whenever a delete operation is performed, the deleted characters are stored in the put variable.
p key.
example: 'dd' followed by 'p' performs a cut/paste one-line operation
Change
c key.
Cursor location
[CTRL-g] shows the cursor current position in text.
gg Goes to the beginning of text.
G Goes to the end of text.
[line]G goes to the given line.
Search
/text keys finds the first occurence of text in the buffer from the cursor.
?text keys finds the first backward occurence of text in the buffer from the cursor.
n key finds the next occurence of text.
N key finds the previous occurence of text.
[Ctrl-o]
[Ctrl-i]
Replace
s/old text/new text replaces first occurence in line.
s/old text/new text/g replaces all in line.
#,#s/old text/new text/g replaces all between lines # and #.
%s/old text/new text/g replaces all in buffer.
%s/old text/new text/gc replaces all in buffer but prompts before each replacement.
Add ftplugin
Copy the plugin into the $VIM/ftplugin
directory then type at the vim prompt
:filetype plugin on
Configure VIM
Edit the /etc/vimrc
file or the ~/.vimrc
in linux or the $VIM/_vimrc
file in windows.
Space indentation
This will correctly set <tabs> to 4 spaces.
set shiftwidth=4 " defines the indentation characters set tabstop=4 " defines the indentation characters set expandtab " defines the indentation characters
Syntax highlighting
:syntax on
Adding a new language in syntax highlighting
> cp [lang].vim ~/.vim/syntax/[lang].vim > locate filetype.vim > sudo vim $PATHTOFILETYPE/filetype.vim filetype.vim> au BufNewFile,BufRead *.[lang_suf] setf [lang]
Code completion (intellisense) for C++
> sudo apt-get install vim exuberant-ctags > wget [omnicpp]
Tips & tricks
# performing edits on multiple files (pipe separates commands) $ vim -c "argdo %s/ABC/DEF/g | w" *.txt > vim -c "argdo %s/FOO/BAR/g | update" `grep -l FOO *`
Windows users, you might want to check out Notepad++ instead of using vim.