Vim Tips

FROM: http://my.opera.com/subjam/blog/vim-tips

 

Links



vim tutorial
Getting Started with Vim
Soup up vi for C/C++
copy & paste between vim session
手把手教你把Vim改装成一个IDE编程环境
vim tips and tricks

Tab operations



Vim tips: Using tabs
1.Open several files in tabs

vim -p [filename] [filename] ...


2.Open a new tab in vim

:tabnew [filename]
:tabe [filename]


3.Moving among different tabs

:tabn //previous tab
:tabp //next tab
:tabfirst //first tab
:tabfir   //first tab
:tablast  //last tab
gt //next tab
Ctrl+Page Dn/Up  //works when you have only one "terminal tab" open 
                 //It works too in gvim


4.Reposition tab

:tabm //move this tab to the last position
:tabm n //move this tab to the n-th position



File Explorer or File Manager



1. Vim built-in file explorer

:S



2. VimExplorer (highly recommended!)

:VE //open VimExplorer
<Backspace> //to the parent in the file tree
<Enter> //open the file using its associated default application
e   //open selected file in a new tab
;c  //start a shell from current path.
;e  //start another file manager(nautilus,konquer)
dd  //delete file under cursor
+f  //create a new file.
+d  //create a new directory.
m{a-z}  //put current path to register(a-z).
'{a-z}  //jump to path in register(a-z).
J       //view path in register.



3. The NERD tree (highly recommended!)

:NERDTree //open the NERD tree
o.......Open selected file, or expand selected dir
go......Open selected file, but leave cursor in the NERDTree
t.......Open selected node in a new tab
T.......Same as 't' but keep the focus on the current tab
<tab>...Open selected file in a split window
g<tab>..Same as <tab>, but leave the cursor on the NERDTree
!.......Execute the current file
O.......Recursively open the selected directory
x.......Close the current nodes parent
X.......Recursively close all children of the current node
e.......Open a netrw for the current dir



4. vtreexplorer

Latex Editing



Vim-Latex
A (very) quick introduction to Latex-Suite
VIM-LaTex FAQ
1. Debian has the package "vim-latexsuite", and the package installs files in system directory
/usr/share/vim/addons. I choose not to install the package but to download vim-latex and 
put it to my ~/.vim folder.

2. Compile latex 

/ll


3. View generated dvi file

/lv


4. Select dvi file viewer: add the following to .vimrc

let g:Tex_ViewRule_dvi = 'xdvi'



Python IDE



1. Python with a modular IDE (Vim)

Java IDE



1. Vim JDE
2. Vim JDE Manual


C/C++ Coding IDE



1. c.vim : C/C++-IDE

2. vim and linux CodingStyle

set noexpandtab                " use tabse, not spaces
set tabstop=8                  " tabstops of 8
set shiftwidth=8               " indents of 8
set textwidth=78               " screen in 80 columns wide, wrap at 78
set autoindent smartindent     " turn on auto/smart indenting
set smarttab                   " make <tab> and <backspace> smarter
set backspace=eol,start,indent 
" allow backspacing over indent, eol, & start



3.Fast Code Block Formatting
format the whole file

1G=G


format code block: visual select, then "=="

4. Exuberant Ctags

ctag *.c *.h  // generate tag file
ctags -R      // recursively
:set tags=/path/tags
ctrl + ]      // jump into the tag 
ctrl + t      // jump back



5. Cscope
The Vim/Cscope tutorial
Using Cscope on large projects
Vim documentation: if_cscop

cscope -Rbq
:cs add /path/cscope.out
 
cs find c|d|e|f|g|i|s|t name
0 or s 	
1 or g 	find definition
2 or d 	find callee
3 or c 	find caller
4 or t 	find string
6 or e 	egrep mode
7 or f 	find this file
8 or i 	find files that contain this file



6. Vim Taglist plugin (highly recommended!)

:Tlist
<space> //show the complete info for the item under cursor
<cr> //move to code


By default, the tag list will be sorted by the order in which the tags
appear in the file. You can sort the tags either by name or by order by
pressing the "s" key in the tag explorer window. 

7. CRefVim: a C-reference manual especially designed for Vim 

  <Leader>cr normal mode:  get help for word under cursor
                           Memory aid cr: (c)-(r)eference
  <Leader>cr visual mode:  get help for visually selected text
                           Memory aid cr: (c)-(r)eference
  <Leader>cw:              prompt for word CRefVim should search for
                           Memory aid cw: (c)-reference (w)hat
  <Leader>cc:   jump to table of contents of the C-reference manual
                Memory aid cc: (c)-reference (c)ontents



8. OmniCppComplete: C/C++ omni-completion with ctags database

9. SuperTab continued: Do all your insert-mode completion with Tab. 

10. Use sessions to save state of work

vim -S session.vim'
:mks[ession][!] <filename>'



11. minibufexpl.vim: Elegant buffer explorer - takes very little screen space 

bf //go to the first buffer
bp //go to the previous buffer
bn //go to the next buffer
b[num] //go to the num-th buffer
bd[num] //remove the num-th buffer



12. a.vim: Alternate Files quickly (.c --> .h etc)

:A switches to the header file corresponding to 
   the current file being edited (or vise versa)
:AS splits and switches
:AV vertical splits and switches
:AT new tab and switches
:AN cycles through matches



13. Automatic folding (add the following in .vimrc)

set foldmethod=syntax


command in vim

zr //unfold one level
zR //unfold all levels
zm //fold one level
zM //fold all levels



14. QuickFix Window

:cw //open
:cn //next item
:cp //previous item



15. Visual Mark: Visual mark, similar to UltraEdit's bookmark 

(1) For gvim, use "Ctrl + F2" to toggle a visual mark.
For both vim and gvim, use "mm" to toggle a visual mark.
(2) Use "F2" to navigate through the visual marks forward in the file.
(3) Use "Shift + F2" to navigate backwards. 

16. Organize/Navigate projects of files

17. Manage Sessions in Vim


Debugging in Vim



1. Clewn and vimGdb (highly recommended!)
I prefer using vimGdb although it requires you to patch vim source 
and compile. In order to use the key mappings provided by vimGdb, in your .vimrc
file, add 

source /home/username/.vim/macros/gdb_mappings.vim


or in vim session

run /home/username/.vim/macros/gdb_mappings.vim



List of key mappings in 'gdb_mappings.vim':

<Space> launch the interactive gdb input-line window
CTRL-Z  send an interrupt to GDB and the program it is running
B info breakpoints
L info locals
A info args
S step
I stepi
CTRL-N next: next source line, skipping all function calls
X nexti
F finish
R run
Q quit
C continue
W where
CTRL-U up: go up one frame
CTRL-D down: go down one frame
CTRL-B set a breakpoint on the line where the cursor is located
CTRL-E clear all breakpoints on the line where the cursor is located
CTRL-P Normal mode: print value of word under cursor
       Visual mode: GDB command "createvar" selected expression
CTRL-X print value of data referenced by word under cursor



In gdb window, you need to first "file [name of the executable]" to enable
the debugging. 


Other tips



1. Your personal vim setup is in ~/.vimrc and ~/.vim/...
System vim files are in /usr/share/vim

2. Copy & Paste between different sessions

"*yy //copy the current line to the clipboard 
     //you can use visual mode (ESC,v) to choose several lines 
"*p  //put whatever is on the clipboard in the document.


3. Select All

ggVG  //select all


4. Convert code to HTML

:TOhtml

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值