• 改造vim


    1、安装Vim和Vim基本插件
    首先安装好Vim和Vim的基本插件。这些使用apt-get安装即可:

    [html] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    1. lingd@ubuntu:~/arm$sudo apt-get install vim vim-scripts vim-doc  

    其中vim-scripts是vim的一些基本插件,包括语法高亮的支持、缩进等等。
    vim中文帮助文档tar包下载地址:
    http://sourceforge.net/projects/vimcdoc/files/vimcdoc/
    解压后其中有个doc文件夹, 将其中的内容全部复制到~/.vim/doc, 或者vim安装目录下的doc目录中, 此时vim中的help信息已经是中文的了.
    网页版中文帮助文档网址

    http://vimcdoc.sourceforge.net/doc/help.html
    首页就时vim帮助文档的目录,阅读起来更方便有效、更有针对性!
     
    2、Vim配置文件
    Vim强大的功能,其来源基本上就两个地方:Vim插件以及Vim配置文件。
    Vim本身的系统配置文件夹是在/usr/share/vim/和/etc/vim/两个文件夹下。一般情况下,我们不会去改变这两个文件夹下的配置文件,而是在用户文件夹/home/user(其中,user为用户名,我的用户名是lingd)下建立自己的配置文件。进入用户文件夹(/home/user/)之后,用gedit新建一个名叫.vimrc的文件:
    lingd@ubuntu:~/arm$ cd ~
    lingd@ubuntu:~$ gedit .vimrc
    注:使用gedit主要是为了方便大段大段的文字粘贴!
    然后把下面的文字拷贝进这个文件之后保存:

    [html] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    1. " This line should not be removed as it ensures that various options are  
    2. " properly set to work with the Vim-related packages available in Debian.  
    3. debian.vim  
    4.   
    5. " Uncomment the next line to make Vim more Vi-compatible  
    6. " NOTE: debian.vim sets 'nocompatible'. Setting 'compatible' changes numerous  
    7. " options, so any other options should be set AFTER setting 'compatible'.  
    8. set nocompatible  
    9.   
    10. " Vim5 and later versions support syntax highlighting. Uncommenting the  
    11. " following enables syntax highlighting by default.  
    12. if has("syntax")  
    13. syntax on " 语法高亮  
    14. endif  
    15. colorscheme ron " elflord ron peachpuff default 设置配色方案,vim自带的配色方案保存在/usr/share/vim/vim72/colors目录下  
    16.   
    17. " detect file type  
    18. filetype on  
    19. filetype plugin on  
    20.   
    21. " If using a dark background within the editing area and syntax highlighting  
    22. " turn on this option as well  
    23. set background=dark  
    24.   
    25. " Uncomment the following to have Vim jump to the last position when  
    26. " reopening a file  
    27. if has("autocmd")  
    28. au BufReadPost * if line("'"") > 1 && line("'"") <= line("$") | exe "normal! g'"" | endif  
    29. "have Vim load indentation rules and plugins according to the detected filetype  
    30. filetype plugin indent on  
    31. endif  
    32.   
    33. " The following are commented out as they cause vim to behave a lot  
    34. " differently from regular Vi. They are highly recommended though.  
    35.   
    36. "set ignorecase " 搜索模式里忽略大小写  
    37. "set smartcase " 如果搜索模式包含大写字符,不使用 'ignorecase' 选项。只有在输入搜索模式并且打开 'ignorecase' 选项时才会使用。  
    38. set autowrite " 自动把内容写回文件: 如果文件被修改过,在每个 :next、:rewind、:last、:first、:previous、:stop、:suspend、:tag、:!、:make、CTRL-] 和 CTRL-^命令时进行;用 :buffer、CTRL-O、CTRL-I、'{A-Z0-9} 或 `{A-Z0-9} 命令转到别的文件时亦然。  
    39. set autoindent " 设置自动对齐(缩进):即每行的缩进值与上一行相等;使用 noautoindent 取消设置  
    40. "set smartindent " 智能对齐方式  
    41. set tabstop=4 " 设置制表符(tab键)的宽度  
    42. set softtabstop=4 " 设置软制表符的宽度  
    43. set shiftwidth=4 " (自动) 缩进使用的4个空格  
    44. set cindent " 使用 C/C++ 语言的自动缩进方式  
    45. set cinoptions={0,1s,t0,n-2,p2s,(03s,=.5s,>1s,=1s,:1s "设置C/C++语言的具体缩进方式  
    46. "set backspace=2 " 设置退格键可用  
    47. set showmatch " 设置匹配模式,显示匹配的括号  
    48. set linebreak " 整词换行  
    49. set whichwrap=b,s,<,>,[,] " 光标从行首和行末时可以跳到另一行去  
    50. "set hidden " Hide buffers when they are abandoned  
    51. set mouse=a " Enable mouse usage (all modes) "使用鼠标  
    52. set number " Enable line number "显示行号  
    53. "set previewwindow " 标识预览窗口  
    54. set history=50 " set command history to 50 "历史记录50条  
    55.   
    56. "--状态行设置--  
    57. set laststatus=2 " 总显示最后一个窗口的状态行;设为1则窗口数多于一个的时候显示最后一个窗口的状态行;0不显示最后一个窗口的状态行  
    58. set ruler " 标尺,用于显示光标位置的行号和列号,逗号分隔。每个窗口都有自己的标尺。如果窗口有状态行,标尺在那里显示。否则,它显示在屏幕的最后一行上。  
    59.   
    60. "--命令行设置--  
    61. set showcmd " 命令行显示输入的命令  
    62. set showmode " 命令行显示vim当前模式  
    63.   
    64. "--find setting--  
    65. set incsearch " 输入字符串就显示匹配点  
    66. set hlsearch  
     

    注:配置文件中,以单个双引号开头的文字为注释。
    保存文件之后,启动Vim。此时,Vim已经是这种效果了(语法高亮挺漂亮的–这个是由vim-scripts中的插件支持的):

    3、ctags安装与配置
    ctags可以建立源码树的标签索引(标签就是一个标识符被定义的地方,如函数定义),使程序员在编程时能迅速定位函数、变量、宏定义等位置去查看原形
    以下是在ubuntu下ctags的下载安装和配置过程:
    下载并安装ctags,终端输入命令

    [html] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    1. lingd@ubuntu:~/arm$ sudo apt-get install ctags  

    建立源码索引,比如我经常需要查阅Linux的内核代码,而这些代码放在/home/lingd/arm/linux-2.6.24.7目录下
    那么在终端进入到该目录后,输入命令ctags -R *,你会发现多了一个tags文件,这个就是索引文件

    [html] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    1. lingd@ubuntu:~/arm$ cd linux-2.6.24.7  
    2. lingd@ubuntu:~/arm/linux-2.6.24.7$ ls  
    3. arch     crypto         include  kernel       mm              samples   usr  
    4. block    Documentation  init     lib          net             scripts  
    5. COPYING  drivers        ipc      MAINTAINERS  README          security  
    6. CREDITS  fs             Kbuild   Makefile     REPORTING-BUGS  sound  
    7. lingd@ubuntu:~/arm/linux-2.6.24.7$ ctags -R *  
    8. lingd@ubuntu:~/arm/linux-2.6.24.7$ ls  
    9. arch     crypto         include  kernel       mm              samples   tags  
    10. block    Documentation  init     lib          net             scripts   usr  
    11. COPYING  drivers        ipc      MAINTAINERS  README          security  
    12. CREDITS  fs             Kbuild   Makefile     REPORTING-BUGS  sound  

    向vim注册索引文件tags的路径,

    [html] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    1. lingd@ubuntu:~/arm/linux-2.6.24.7$ vi ~/.vimrc  

    在打开文件的最后添加如下内容(当然,具体路径根据你自己的情况)

    [html] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    1. "--ctags setting--  
    2. " 按下F5重新生成tag文件,并更新taglist  
    3. map <F5> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR><CR> :TlistUpdate<CR>  
    4. imap <F5<ESC>:!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR><CR> :TlistUpdate<CR>  
    5. set tags=tags  
    6. set tags+=./tags "add current directory's generated tags file  
    7. set tags+=~/arm/linux-2.6.24.7/tags "add new tags file(刚刚生成tags的路径,在ctags -R 生成tags文件后,不要将tags移动到别的目录,否则ctrl+]时,会提示找不到源码文件)  

    set tags+=./tags表示在当前工作目录下搜索tags文件
    set tags+=~/arm/linux-2.6.24.7/tags表示在搜寻tags文件的时候,也要搜寻~/arm/linux-2.6.24.7/文件夹下的tags文件。
    然后保存并退出vi。这样,你就可以用vim在任意地方查看有关Linux的函数原形
    ------------------------------------
    tag命令用法:
    Ctrl+]  跳到当前光标下单词的标签
    Ctrl+O  返回上一个标签
    Ctrl+T  返回上一个标签
    :tag TagName 跳到TagName标签
    以上命令是在当前窗口显示标签,当前窗口的文件替代为包标签的文件,当前窗口光标跳到标签位置。如果不希望在当前窗口显示标签,可以使用以下命令:
    :stag TagName 新窗口显示TagName标签,光标跳到标签处
    Ctrl+W + ]  新窗口显示当前光标下单词的标签,光标跳到标签处
    当一个标签有多个匹配项时(函数 (或类中的方法) 被多次定义),":tags" 命令会跳转到第一处。如果在当前文件中存在匹配,那它将会被首先使用。
    可以用这些命令在各匹配的标签间移动:
    :tfirst    到第一个匹配
    :[count]tprevious 向前 [count] 个匹配
    :[count]tnext  向后 [count] 个匹配
    :tlast    到最后一个匹配
    或者使用以下命令选择要跳转到哪一个
    :tselect TagName
    输入以上命令后,vim会为你展示一个选择列表。然后你可以输入要跳转到的匹配代号 (在第一列)。其它列的信息可以让你知道标签在何处被定义过。
    以下命令将在预览窗口显示标签
    :ptag TagName 预览窗口显示TagName标签,光标跳到标签处
    Ctrl+W + }  预览窗口显示当前光标下单词的标签,光标跳到标签处
    :pclose   关闭预览窗口
    :pedit file.h 在预览窗口中编辑文件file.h(在编辑头文件时很有用)
    :psearch atoi 查找当前文件和任何包含文件中的单词并在预览窗口中显示匹配,在使用没有标签文件的库函数时十分有用。
     
    最简单的使用方法举例
    用vi在任意目录写一个Test.c文件,内容如下:

    [html] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    1. int main(void)  
    2. {  
    3. printf("Hello World! ");  
    4. return 0;  
    5. }  

    写好后末行模式输入w保存好(不要退出vi),按Esc回到指令模式,把光标停留在printf上.然后按 Ctrl+W + ],vi会自动跳到Linux系统函数printf()处,这时我们能查看printf()的原形.查看完了,按Ctrl+o(回到上一个标签) 就回到原来的地方

  • 相关阅读:
    PipeCAD
    PipeCAD
    RvmTranslator7.4.1-Clipping Box
    RvmTranslator7.4.0-PDMS Text
    PipeCAD
    Pentaho、spagoBI 开源BI --- 以及开源 ETL 工具 Kettle、Talend
    (推荐)成都数字医健科技有限公司--医药大数据中心与生命科学情报咨询服务中心
    成都智审数据有限公司--企业内部审计专家
    数据仓库与数据分析--产品与软件商
    上海宝冶:信息化与标准化融合,助推企业转型升级
  • 原文地址:https://www.cnblogs.com/phpzhou/p/5959495.html
Copyright © 2020-2023  润新知