`
weiyinchao88
  • 浏览: 1184264 次
文章分类
社区版块
存档分类
最新评论

vim的强大功能如何获取

 
阅读更多
我不是Linux/UNIX的狂热爱好者,虽然我崇尚GNU的精神。
我以前的开发都是在Windows平台使用VC编写C/C++程序,
也使用Editplus写ASP/HTML等,偶尔使用SourceInsight尝试去浏览一些
大的项目源码。
在网络常常看到关于编辑器的争论,也就经常听到这样的话:
"Vi和Emacs是世界上上最强的两个编辑器"。
我在自己的PC上曾经安装过RedHat,但是通常不久之后,我都把
它们给删除了。的确类似我这样不是很有目的的钻研Linux的人,
很快就觉得Linux使用不方便,Vi更实在是看不出来有什么好用。
经常就听到有人讲Vi是如何如何的强大,什么的都能干。
还往往举一些例子,诸如可以正则表达式搜索等。
不过在我平时的工作,真的是很少看到谁在编程写代码时需要这么专业的编辑
技巧。有时候在安装好Linux时,我仅仅就是希望vi能象Editplus一样
好好的工作就可以了,我都不敢奢望它象VC一样方便。
可是在常见的Linux/UNIX入门书上,无一例外都或先将一下Vi的使用,
而且通常都会介绍InsertMode和CommandMode的区分,讲h,j,k,l
进行Move,讲:q,:wq,:q!退出,讲i,o,a插入,讲<escape>,
将dd,yy,p等Copy&Paste。(当然,这些是最基本的,你不得不会:-))
可是仅仅这些,我想大多数人真的很难觉得这是什么最强的编辑器。
感觉还不如Notepad,真是不明白啊:-(。
我这样的初学Linux者,常常在网上或者bbs上看到的vi技巧
总是这些不实用的命令,就象关于替换%s/foo/bar/gc等等都会成为
技巧介绍的文章,的确好迷惑的,因为这些对于Windows下的编辑器都是很基本的。
为什么那么多的人说Vi/Vim是最好的编辑器啊?我想总是有原因的。
虽然出来讲的人常常就是一句话,Vi是最好的。用vim+gcc+gdb,
想干什么干什么,呵呵。我不是狂热的Vim推崇者,
我只是希望我在Linux/Unix下编程的时候能有一个好的工具。
当我偶然的访问了一下vim.sourceforge.net,下载了几个Toprated的
vimscript和看完了Toprated的Tips,我的看法大有改变。
在花了一整天的时间学习和熟练这些Tip和Script后,我感到Vim还的确是
一个不错的工具了。
我先说说当我转到Vi进行编程时,我最希望有的一些功能,
这些功能可能很小,但是如果相当Editplus或VC没有时,我就觉得很不爽了。
当然也许是受Windows毒害太久了吧,呵呵。
1.怎样才能比较方便的同时编辑多个文件,例如多个文件间切换,
CopyPaste内容等。
2.我要在编辑文本中查找一个词,几乎书上教的都是使用"/word",
可是如果这个词就在光标下,我却要一个字符一个字符输入这个词,
不是很郁闷吗?例如:/i_want_to_search_this_long_word.
3.我的工作主要是C/C++编程,真是希望能想VC一样,在左边能看到
项目的文件列表,和Class,Function,Struct的列表,并且选择了
就能跳到相应的位置。
4.也是和编程相关的,在VC里面,Build了BrowseInfo后,F12就
可以很方便的在class,variable,constant等的definition,
implementationorreference间跳转,这非常方便非常有用。
5.在VC里面,在一个.C/.cpp文件中,对于include的文件,例如
#include"foo.h",你在foo处,<ctrl>+<shift>+g就可以跳到
这个头文件去,真是方便啊。难道vim不提供吗?
6.要是能在Vi中象Explorer一样查看文件列表,并可以选择就好了。
还有更多的问题,我就不必逐一列举了,因为我这篇文章不是要当
百科书,而是给那些用过vi后来放弃了(:-),当然不是转去Emacs那种),
和初学Linux/vi,但看了书本但觉得Vi很不好用的人看的。
OK,上面6个问题的解决之道。
1.vim.sourceforge.net下载排名No.3的bufexplorer.vim
2.vim.sf.net中Tips的No.1的"SuperStar",呵呵,当光标在这个
词上的时候,按*号就可以,和在Editplus中按Ctrl+F3一样方便。
另一个技巧是写了开始查找的/后,<ctrl+r><ctrl+w>就可以把光标下的
词复制到commandbuffer处,非常有用的Tip。
3.a)想要看到Class,Struct等列表,你需要No.1的taglist.vim,
有了它,Vim现在看着顺眼多了。b)希望有项目文件列表:你需要
No.7的Project.vim,有了它们俩,VC的左侧窗口基本都模拟出来了。:-)
4.有taglist.vim的帮助,你已经会觉得方便了许多,taglist需要ctags
才能实现,ctags的作用就是为C代码中Symbol建立tags,tags是什么?
你通过Vim的Help(:help)就明白了,挺象超链接的。可是ctags的功能
还不够强,因为这个工作cscope确实比它做的更好,也更强。如果你有兴趣
使用cscope,那你就应当看看cscope.sf.net,同时有很多的Vim版本是
没有内嵌cscope的支持的。你可以用在Vim中用:version查看。如果没有,
祝贺你,你有机会自己亲手把Vim编译一次了。呵呵,注意./configure
的时候--enable-cscope。有了cscope,用Vim看项目代码的确如虎添翼!
5.gf--就这么简单,呵呵。如果你还是找不到头文件,怎么办?
请:helppath.正确设置头文件所在的path很重要。
6.Try:Exand:Sex:e.and:e/usr/src,你就都明白了。
其它的
7.一定要去vim.sf.net上把Top10的script都放到自己的Vim中试试,
一定要把No.2的Tip保存下来,随时查看。
8.我在xterm中使用vim,但发现长时间编程用gvim也很好,你可以
把desert.vim下载下来,色彩不错哦,还保护视力。gvim=vim-g
P.S.
就到这里吧,写这篇文章是因为我花了一整天的时间来学习Vim,
以及安装测试使用这些Scripts,总算觉得使用Vim比较入门和顺手了。
其实接触和使用Vi也很长时间了,但是从来没有去过vim.sf.net,所以
一直觉得Vi很不好用,现在看法改变了,希望这篇文章能帮助那些
希望学好Vim的朋友入门。:-)
如果你正在学习Emacs,那你一定要去www.emacswiki.org看看那些Tip,
下载其中的script。不过我已经觉得Vim足够好了。因为我喜欢Vi方式的
用j来移动光标,而不是Emacs那样的Ctrl+n,需要两只手,呵呵。

引用自 http://www.smth.edu.cn/bbsgcon.php?board=LinuxApp&file=N/G.1061286675.00&num=1280


vim配置实例

<!--c1-->
CODE
<!--ec1-->
set nocompatible
source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
behave mswin

set guifont=FixedsysTTF:h14 "如果没有这个字体那就不要加
set tabstop=8
set softtabstop=4
set shiftwidth=4
colorscheme blue "在gvim下可以看到有多少coloscheme

set sw=4 " shiftwidth
set et " expandtab
set wm=8 " wrapmargin
set bs=2 " backspace
set ru " ruler
set ic " ignorecase "忽略大小写 但是输入中有大写的话不忽略
set is " incsearch
set scs " smartcase: override the 'ic' when searching
" if search pattern contains uppercase char
set vb t_vb= " set visual bell and disable screen flash
set backup " enable backup and define the backup file
set backupext=.bak
set hlsearch " hlsearch
" allow backspacing over everything in
" the insert mode
set backspace=indent,eol,start
set dir=e:/tmp/vimswap/vim1,e:/tmp/vimswap/vim2,e:/tmp/vimswap/vim3,e:/tmp/vimswap/vim4
" 设置swap文件的目录上面
set backupdir=e:/tmp/vimswap/vim1,e:/tmp/vimswap/vim2,e:/tmp/vimswap/vim3,e:/tmp/vimswap/vim4
"设置备份文件的目录上面 我不喜欢看到每个目录下都有备份 因为一般备份用不到


set diffexpr=MyDiff()
function MyDiff()
let opt = ''
if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
silent execute '!d:/tools/Vim/vim62/diff -a ' . opt . '"' . v:fname_in . '" "' . v:fname_new . '" > "' . v:fname_out . '"'
endfunction

"下面是设置自动folder的 而且是根据写C代码设置的 如果你不喜欢使用folder那么可以省略掉
au BufReadPost *.c,*.cpp syn region myFold start="{" end="}" transparent fold
au BufReadPost *.c,*.cpp syn sync fromstart
au BufReadPost *.c,*.cpp set foldmethod=syntax
set foldlevel=0
<!--c2-->
<!--ec2-->




更全点的配置文件
<!--c1-->
CODE
<!--ec1-->
" ----------------------------------------------------------------
" $Id: .vimrc.html,v 1.3 2003/06/16 23:29:15 thouveni Exp $
"
"
" Download <URL:http://touv.ouvaton.org/documents/MyDotFiles/.vimrc>
"
" ----------------------------------------------------------------

" -----------------------------------------------------------
" {{{ 1. General setup
" -----------------------------------------------------------

" enable backspace to delete anyting (includes /n) in insert mode
set backspace=2

" il parait que c'est mieux de ne pas 阾re compatible
set nocompatible

" ??? fait un bip lors d'une erreur
set errorbells

" Active les plugins et les indeantaions par type de fichier
filetype plugin indent on

" Quand on tape un ), vim montre furtivement le ( correspondant.
set showmatch

" On ne coupe pas les lignes si elles sont grandes
set nowrap

" ??? now real wrap during insert (enable/override this when using as mail-editor)
"set tw=0

" ??? use full featured format-options. see "help fo-table for help
if v:version >= 600
set formatoptions=tcrqn2
else
" vim 5 doesn't know r/n
set formatoptions=tcq2
endif

" define what are comments
set com& " reset to default
set com^=sr:*/ -,mb:*/ / ,el:*/ com^=sr:/// -,mb:/// / ,el:///

" Ajoute une marge ?gauche pour afficher les +/- des replis
set foldcolumn=2

" }}}


" -----------------------------------------------------------
" {{{ 2 Indentation
" -----------------------------------------------------------

" On garde d'une ligne ?l'autre l'indentation d'un paragraphe
set autoindent

" ???
set expandtab

" Nombre d'espace pour une tabulation
set shiftwidth=4

" if non-zero, number of spaces to insert for a <tab>
set softtabstop=4

" number of spaces the tab stands for
set tabstop=4

" some nice options for cindenting by FOLKE
set cinoptions={.5s,+.5s,t0,n-2,p2s,(03s,=.5s,>1s,=1s,:1s

" a <tab> in an indent insets 'shiftwidth' spaces (not tabstop)
"set smarttab

" smartindenting (clever autoindenting)
" set si


" }}}


" -----------------------------------------------------------
" {{{ 3. Searching, Substituting
" -----------------------------------------------------------

" On ignore la casse des caract鑢es dans les recherches de cha頽es.
set ignorecase

" No ignorecase if Uppercase chars in search
set scs

" change the way backslashes are used in search patterns
set magic

" begin search at top when EOF reached
set wrapscan

" jump to matches during entering the pattern
set sm

" highlight all matches...
set hls

" ...and also during entering the pattern
set incsearch

" !!! use 'g'-flag when substituting (subst. all matches in that line, not only first)
" to turn off, use g (why is there no -g ?)
" set gdefault

" !!! turn off the fucking :s///gc toggling
"set noedcompatible

" }}}


" -----------------------------------------------------------
" {{{ 4. Highlighting, Colors, Fonts
" -----------------------------------------------------------

" Active la coloration syntaxique quand c'est possible
if &t_Co > 2 || has("gui_running")
syntax on
endif

" Fond noir
set bg=dark

if has("gui_running")

"Nombre de colonnes ?afficher
set co=98

"Nombre de lignes ?afficher
set lines=41

" Choix d'une police
if has("win32")
set guifont=Fixedsys:h9:cANSI
"set guifont=Courier:h10:cANSI
else
set gfn=-adobe-courier-medium-r-normal-*-*-140-*-*-m-*-iso8859-15
endif

" Choix d'un theme de coloration
"colorscheme pablo
colorscheme darkblue
endif

" ??? how many lines to sync backwards
syn sync minlines=10000 maxlines=10000

" ??? how many lines to search backward after a jump to check syntax
let c_minlines = 200

" ??? aldo highlight some things in comments
let c_comment_strings = 1

" ??? SQL-Highlighting in PHP-Strings (1=yes 0=no)
" let php_sql_query = 1
" let php_minlines=300
" let php_htmlInStrings=1

" }}}


" -----------------------------------------------------------
" {{{ 4. Statusline, Menu
" -----------------------------------------------------------

" use tab for auto-expansion in menus
set wc=<TAB>

" show a list of all matches when tabbing a command
set wmnu

" how command line completion works
set wildmode=list:longest,list:full

" ignore some files for filename completion
set wildignore=*.o,*.r,*.so,*.sl,*.tar,*.tgz

" some filetypes got lower priority
set su=.h,.bak,~,.o,.info,.swp,.obj

" remember last 2000 typed commands
set hi=2000

" show cursor position below each window
set ruler

" shows the current status (insert, visual, ...) in statusline
set showmode

" use shortest messages
set shm=a

" show always statusline of last window
set laststatus=2

" }}}


" -----------------------------------------------------------
" {{{ 5. window handling
" -----------------------------------------------------------

" focus follows mouse
set mousef

" minimal number of lines used for the current window
set wh=1

" minimal number of lines used for any window
set wmh=0

" make all windows the same size when adding/removing windows
set noequalalways

"a new window is put below the current one
set splitbelow

" }}}


" -----------------------------------------------------------
" {{{ 6. file, backup, path
" -----------------------------------------------------------

" Le swap est mis ?jour apr閟 50 caract鑢es saisies
set uc=50

" R閜ertoire de sauvegarde automaitique
set backupdir=~/.backup

" On active la sauvagarde
set backup


if has("unix")
if v:version >= 600
set path=.,/usr/include,/usr/X11R6/include,/usr/local/include
else
set path=.,/usr/include,/usr/X11R6/include/,/usr/local/include
endif
endif

" change to directory of current file automatically
autocmd BufEnter * lcd %:p:h

" }}}


" -----------------------------------------------------------
" {{{ 7. UNIX Specials
" -----------------------------------------------------------

if has("unix")
set clipboard=autoselect
set shell=/bin/bash
endif

" }}}


" -----------------------------------------------------------
" {{{ 8. Mapping
" -----------------------------------------------------------

" Supprime tout les blancs en debut de ligne
nmap _S :%s/^/s/+//<CR>

" Converts file format to/from unix
command Unixformat :set ff=unix
command Dosformat :set ff=dos

" On fait tourner les tampons ...
nnoremap <C-N> :bn!<CR>
nnoremap <C-P> :bp!<CR>

" Annuler aka Undo (window$'s style)
noremap <C-Z> u
inoremap <C-Z> <C-O>u

" Refaire aka Redo (window$'s style)
noremap <C-Y> <C-R>
inoremap <C-Y> <C-O><C-R>

" Tout s閘閏tionner (window$'s style)
noremap <C-A> gggH<C-O>G
inoremap <C-A> <C-O>gg<C-O>gH<C-O>G
cnoremap <C-A> <C-C>gggH<C-O>G

" Indentation automatique (Emacs's style)
vnoremap <C-F> =$
vnoremap <tab> =
nnoremap <tab> =$
nnoremap <C-tab> mzvip=`z

" Fermer fichier (tampon) (window$'s style)
map <C-F4> :bd<cr>
imap <C-F4> <C-O>:bd<cr>
cmap <c-F4> <c-c>:bd<cr>

" Sauvegarder fichier (touv's style)
noremap <c-x><c-s> w<cr>
inoremap <c-x><c-s> <C-O>:w<cr>

" Ouvrir un fichier (Emacs's style)
"noremap <c-x><c-f> :e!
"inoremap <c-x><c-f> <c-O>:e!

" have <F1> prompt for a help topic, rather than displaying the introduction
" page, and have it do this from any mode:
nnoremap <F1> :help<Space>
vmap <F1> <C-C><F1>
omap <F1> <C-C><F1>
map! <F1> <C-C><F1>

" Force la fermeture d'un tampon
map <F4> :bd!<cr>
imap <F4> <C-O>:bd!<cr>
cmap <F4> <c-c>:bd!<cr>

" Fermer un tag (cf. closetag.vim)
inoremap <F5> <C-R>=GetCloseTag()<CR>
map <F5> a<C-_><ESC>

" Supprime tout les blancs en fin de ligne
map <F6> :%s//s/+$//<CR>

" Mets en commentaire
map <F7> <Leader>c
imap <F7> <esc><F7>

" active/d閟active la navigation par tags
nnoremap <silent> <F8> :Tlist<CR>


if has("gui_running")
" alt jumps to menu
set winaltkeys=menu

" clipboard to autoselect
set guioptions+=a

" Shift-Fleche pour selectionner un bloc
map <S-Up> vk
vmap <S-Up> k
map <S-Down> vj
vmap <S-Down> j
map <S-Right> v
vmap <S-Right> l
map <S-Left> v
vmap <S-Left> h

if has("win32") || has("win16")
" ...
else
" Couper aka Cut (generic's style)
vmap <S-Del> "*x

" Copier aka Copy (generic's style)
vmap <C-Insert> "*y
"vmap <Return> "*y" "Return realise la copie du bloc selectionner
"vmap <S-Return> "*y" "Shift Return aussi

" Coller aka Insert (generic's style)
function! NormalPaste()
if @* != ""
normal "*gP
endif
endfunction
function! SelectPaste()
if @* != ""
if col(".") < col("'<")
normal "*gp
else
normal "*gP
endif
endif
endfunction

"map <S-Insert> :call NormalPaste()<CR>
"imap <S-Insert> x<Esc>:call NormalPaste()<CR>s
"cmap <S-Insert> <C-R>*
"vmap <S-Insert> "-x:call SelectPaste()<CR>
endif
endif

" }}}


" -----------------------------------------------------------
" {{{ 9. Divers
" -----------------------------------------------------------

" use css when converting syntax to html (2html.vim)
let html_use_css = 1

" and a nice command for makeing html-code
command Code2html :source $VIMRUNTIME/syntax/2html.vim|

" }}}


" -----------------------------------------------------------
" {{{ 11. Templates
" -----------------------------------------------------------
if has("autocmd")
au BufNewFile *.xsl 0r~/.vim/templates/xsl.xsl
au BufNewFile *.xml 0r~/.vim/templates/xml.xml
au BufNewFile *.html 0r~/.vim/templates/html.html
au BufNewFile *.c 0r~/.vim/templates/c.c
au BufNewFile *.php 0r~/.vim/templates/php.php
endif

"}}}


" -----------------------------------------------------------
" {{{ 12. Sp閏ificit?pour chaque type de fichier
" -----------------------------------------------------------
autocmd FileType text setlocal textwidth=78
autocmd FileType text set nocindent
autocmd FileType html set formatoptions+=tl
autocmd FileType css set smartindent
autocmd FileType html,css set noexpandtab tabstop=2
autocmd FileType c,cpp,slang set cindent
autocmd FileType html,xml,xsl source ~/.vim/scripts/closetag.vim

"}}}


" vim:fdm=marker

应用自http://bbs.loveunix.net/viewthread.php?tid=3155



http://larc.ee.nthu.edu.tw/~cthuang/vim/vim-living.html#Vertical_Splitting
分享到:
评论

相关推荐

    功能强大的vim脚本

    vim脚本 功能强大 vim脚本 功能强大 vim脚本 功能强大 vim脚本 功能强大

    vimfiler.vim, 使用Vim脚本实现功能强大的文件资源管理器.zip

    vimfiler.vim, 使用Vim脚本实现功能强大的文件资源管理器 vimfilerVim脚本中实现的强大文件浏览器简介vimfiler是一个功能强大的文件资源管理器(""),用Vim脚本编写。用法要启动 vimfiler,请运行以下命令: :...

    (带详细书签)VIM使用技巧(人民邮电出版社)

    Vim 是一款功能丰富而强大的文本编辑器,其代码补全、编译及错误跳转等方便 编程的功能特别丰富,在程序员中得到非常广泛的使用。 Vim 能够大大提高程序员的 工作效率。对于 Vim 高手来说, Vim 能以与思考同步的...

    Vim实用技巧电子书

    vim是一款功能丰富而强大的文本编辑器,其代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中得到非常广泛的使用。vim能够大大提高程序员的工作效率。对于vim高手来说,vim能以与思考同步的速度编辑文本...

    visualmark.vim

    vim 插件,大大提升vim的功能,非常强大

    Linux下搭建强大VIM开发环境 (支持 Qt4 自动补全)

    前提: 需要安装ctags, 安装方法 sudo apt-get install ctags, 生成ctags文件的方法在 Read Me.txt 中 支持插件: super tab TList quick fix miniBufExplorer ...VIM版本: 7.2.330 操作系统: ubuntu 10.04

    vim增强功能脚本 vim配置脚本使用与Windows Linux Unix

    vim编辑器的配置文件, 可以让你vim更加漂亮更加强大 支持代码缩放,查看变量定义,函数跟踪等功能。 替换掉你原有的:vimrc配置文件就好 也可以阅读此文件 学习编写自己的vim工具脚本。

    vim最强配置 amix网站没了 需要的可以下载

    Vim 之所以经久不衰,是因为它...不仅如此,它还集成了一些非常好用的 Vim 脚本,使 Vim 的功能变得异常强大。作者还将这个配置文件写得不仅适用于 Linux,而且也可用于 Mac 中。如果你是一个 Vim Fans,千万要试试。

    vim使用的详细教程

    Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。 VIM是自由软件。 Vim普遍被推崇为类Vi编辑器中最好的一个,事实上真正的劲敌来自Emacs的不同变体。1999 年Emacs被...

    vim使用进阶:vim使用技巧、配置、命令和插件

    作为一个通用的编辑器,vim实现的补全功能并不仅仅限于对程序的补全,它可以对文件名补全、根据字典进行补全、根据本缓冲区或其它缓冲区类似的内容进行补全、根据文件语法补全等等,它甚至允许用户自己编写函数来...

    Vim实用技巧.mobi

    Vim是一款功能丰富而强大的文本编辑器,其代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中得到非常广泛的使用。Vim能够大大提高程序员的工作效率。对于Vim高手来说,Vim能以与思考同步的速度编辑文本...

    vim实用技巧

    vim是一款功能丰富而强大的文本编辑器,其代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中得到非常广泛的使用。vim能够大大提高程序员的工作效率。对于vim高手来说,vim能以与思考同步的速度编辑文本...

    VIM7.2+VIM7.2gdb 把VIM变成Linux下程序开发IDE

    这是最新的VIM版本+VIMgdb版本,通过这两个程序 可以把VIM7.2打行造成LINUX下程序开发的IDE,真是大家的福音.我们在VIM中就可以调试程序,功能十分强大 现在相应版本的VIM不好找,希望大家喜欢用

    vim配置for ubuntu

    Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。 [1] VIM是自由软件。 Vim普遍被推崇为类Vi编辑器中最好的一个,事实上真正的劲敌来自Emacs的不同变体。1999 年...

    超强vim配置文件

    vim本来就是很强大 很方便的编辑器 加上我的代码后肯定会如虎添翼 或许读者使用其他编程语言 可以根据自己的需要进行修改 配置文件里面已经加上注释 读者感兴趣的话直接复制下面的代码到文本文件 然后把文件改名...

    VIM编辑器 安装包

    Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。 [1] VIM是自由软件。 Vim普遍被推崇为类Vi编辑器中最好的一个,事实上真正的劲敌来自Emacs的不同变体。1999 年...

    用Python给Vim加功能

    vim是很强大的编辑器,但VimScript却不是很好的语言,就算学会了也不能象Emacs里的lisp可以拿来装,你也不能往简历上写精通VimScript啊。但有时候第三方Plugin不好用的时候我们又想自己弄一套,其实Vim本身就支持第...

    vim+ctags+cscope

    linux下面vim+ctags+cscope的使用方法,功能非常强大 linux下面vim+ctags+cscope的使用方法,功能非常强大

    《Hacking Vim》[PDF]

    由此可见VIM的强大程度,可以说,这是一款非常适合程序员使用的编辑器。VIM的设计哲学是如果你的工作只需要做一次,那没问题,怎么搞都行,如果你的工作是要重复的完成某些工作,则IVIM总可以帮你找到更少的按键方式...

Global site tag (gtag.js) - Google Analytics