windows下使用vim及其带来的问题

来源:互联网 发布:淘宝里的贷款在哪里 编辑:程序博客网 时间:2024/05/16 07:26

一般在家还是用windows环境。看看代码,一般还是需要用vim和两个插件ctags.exe和taglist.

 

首先下载windows下的vim,安装,没有问题。

 

接着找到ctags.exe和taglist插件,下载。也没问题

 

为了省事,直接把ctags.exe拷到你的windows的system32目录下。

 

在windows系统下必须注意这一点

把taglist拷到你VIM的安装目录的vimfiles目录下,两个文件,doc下的帮助和plugin下的VIM脚本。

打开GVIM,然后敲下列命令

:cd $VIM/vimfiles/doc
:help taglist .

其中$VIM代表你VIM的安装路径。

别忘了,在命令行下,你的源代码的顶级目录下执行一下

ctags -R

生成tags文件

 

然后在vim的目录下,注意不是vim73或者是vimfiles目录下,把下面的内容补充到_vimrc文件里。

 

set nocompatible    " use vim defaultsset ls=2            " allways show status lineset tabstop=4       " numbers of spaces of tab characterset shiftwidth=4    " numbers of spaces to (auto)indentset scrolloff=3     " keep 3 lines when scrollingset showcmd         " display incomplete commandsset hlsearch        " highlight searchesset incsearch       " do incremental searchingset ruler           " show the cursor position all the timeset visualbell t_vb=    " turn off error beep/flashset novisualbell    " turn off visual bellset nobackup        " do not keep a backup fileset number          " show line numbersset ignorecase      " ignore case when searching"set noignorecase   " don't ignore caseset title           " show title in console title barset ttyfast         " smoother changes"set ttyscroll=0        " turn off scrolling, didn't work well with PuTTYset modeline        " last lines in document sets vim modeset modelines=3     " number lines checked for modelinesset shortmess=atI   " Abbreviate messagesset nostartofline   " don't jump to first character when pagingset whichwrap=b,s,h,l,<,>,[,]   " move freely between files"set viminfo='20,<50,s10,h"set autoindent     " always set autoindenting on"set smartindent        " smart indent"set cindent            " cindentset noautoindentset nosmartindentset nocindent  "set autowrite      " auto saves changes when quitting and swiching buffer"set expandtab      " tabs are converted to spaces, use only when required"set sm             " show matching braces, somewhat annoying..."set nowrap         " don't wrap linessyntax on           " syntax highlighingcolorscheme elflord    " use this color schemeset background=dark        " adapt colors for backgroundif has("autocmd")" Restore cursor positionau BufReadPost * if line("'/"") > 0|if line("'/"") <= line("$")|exe("norm '/"")|else|exe "norm $"|endif|endif" Filetypes (au = autocmd)au FileType helpfile set nonumber      " no line numbers when viewing helpau FileType helpfile nnoremap    " Enter selects subjectau FileType helpfile nnoremap    " Backspace to go back" When using mutt, text width=72au FileType mail,tex set textwidth=72au FileType cpp,c,java,sh,pl,php,asp  set autoindentau FileType cpp,c,java,sh,pl,php,asp  set smartindentau FileType cpp,c,java,sh,pl,php,asp  set cindent"au BufRead mutt*[0-9] set tw=72" Automatically chmod +x Shell and Perl scripts"au BufWritePost   *.sh             !chmod +x %"au BufWritePost   *.pl             !chmod +x %" File formatsau BufNewFile,BufRead  *.pls    set syntax=dosiniau BufNewFile,BufRead  modprobe.conf    set syntax=modconfendif" Keyboard mappingsmap :previous  " map F1 to open previous buffermap :next      " map F2 to open next buffermap :silent noh " turn off highlighted searchmap ,v :sp ~/.vimrc " edit my .vimrc file in a splitmap ,e :e ~/.vimrc      " edit my .vimrc filemap ,u :source ~/.vimrc " update the system settings from my vimrc file"----- write out html filemap ,h :source $VIM/vim71/syntax/2html.vim:w:clo" Common command line typos"cmap W w"cmap Q q" Keyboard mapping for numeric keypad"imap OM " map OM "imap OP " map OP "imap OQ /" map OQ /"imap OR *" map OR *"imap OS -" map OS -"imap Ol +"imap Om -"imap On ,    "imap Op 0    "imap Oq 1    "imap Or 2    "imap Os 3    "imap Ot 4    "imap Ou 5    "imap Ov 6    "imap Ow 7    "imap Ox 8    "imap Oy 9    "imap Oz 0set cursorline "add edit line"set tags=tags;set autochdirlet Tlist_Ctags_Cmd='ctagsctags'let Tlist_Use_LEFT_Window=1let Tlist_File_Fold_Auto_Close=1let Tlist_Show_One_File=1let Tlist_GainFocus_On_ToggleOpen=1let Tlist_Exit_OnlyWindow=1nmap tl :Tlist<cr>

 

这个配置文件中关于

if has("autocmd")

以及下面的自动命令的设置估计会报错,如果不需要,可以把关于aoutocmd的这一片东西都去掉。

前面的是一大段是关于VIM的配置,按下不表,从后面

set tags=tags;
set autochdir

意思说,tag是用的tags的命名文件夹。打开任意一代码,如果在当前目录下没找到tags文件,会递归的往上级目录去找。一直到找到为止。

这样,就可以不用打开VIM,在冒号下切换tags所在的路径了。

let Tlist_Ctags_Cmd='ctagsctags'

上一条命令大概是taglist在windows下的BUG引起的,前面加ctags是为了偏移出5个字符,这样可以调用ctags命令。

后面这几条是关于taglist的缩写和一些配置,可有可无。
let Tlist_Use_LEFT_Window=1
let Tlist_File_Fold_Auto_Close=1
let Tlist_Show_One_File=1
let Tlist_GainFocus_On_ToggleOpen=1
let Tlist_Exit_OnlyWindow=1
nmap tl :Tlist<cr>


 

 

原创粉丝点击