zoukankan      html  css  js  c++  java
  • vim 学习记录

    更新于 2013-01-18 05:47:55UEANER

    目录结构

    $ tree -C ~/.vim | grep -v ".cnx"
    
    |-- dict
    |   |-- php.dict
    |-- syntax
        |-- php.vim 

    1. PHP5.4语法文件

    $ cd ~/.vim/syntax/
    $ wget https://raw.github.com/ueaner/tools/master/vim/syntax/php.vim

    2. PHP函数字典

    $ cd ~/.vim/dict/
    $ wget http://svn.php.net/viewvc/phpdoc/doc-base/trunk/funclist.txt?view=co -Ophp.dict
    或者直接
    $ wget http://svn.php.net/viewvc/phpdoc/doc-base/trunk/funclist.txt?view=co -O$HOME/.vim/dict/php.dict

    3. 配置vimrc

    " PHP 自动完成
    " 设置自动完成的监听方式:尾部添加一个字母和清除一个字母
    set complete-=k complete+=k
    " 设置字典补全文件
    set dictionary=$HOME/.vim/dict/php.dict
    
    " 使用 tab 键自动完成或尝试自动完成
    function! InsertTabWrapper()
        let col=col('.')-1
        if !col || getline('.')[col-1] !~ 'k'
            return "<TAB>"
        else
            return "<C-N>"
        endif
    endfunction
    
    " 重新映射 tab 键到 InsertTabWrapper 函数
    inoremap <TAB> <C-R>=InsertTabWrapper()<CR>

    注:VIM 内置了补全关键字功能,即补全当前编辑的单个文件和 :tabe / :vs 出来多个文件中已出现的英文字符串, 使用 CTRL+N 快捷键进行补全(可以通过 :help i_CTRL-N 查看帮助文档), 而这里的字典补全 set dictionary 文件同样是使用 CTRL+N 进行补全, (可以通过:help compl-dictionary 查看帮助文档) 所以此时的 TAB 已同时具有了关键字补全和字典补全。 当然 CTRL+P 具有 CTRL+N 同样的功能你也可以将 "<C-N>" 替换成 "<C-P>"

    使用

    插入模式下按 TAB 键对 PHP 函数进行补全。 另可以使用 <CTRL+X><CTRL+O> (可以CTRL+X+O 三键一起按)快捷键进行函数补全, 包括了 C/java/javascript/lua 等常用语言(调用内置的 Omni completion)。

    转载请注明出处。
    本文地址:http://blog.aboutc.net/php/4/vim-php-autocomplete-with-tab



    
    
    
    

    Vim开发PHP基础配置

    
    

    2012-10-23 11:52:44     9个评论     11567次访问

    
    

    世界上只有三种程序员,一种是使用Vim,一种是使用Emacs,第三种是使用其他编辑器和IDE的。

    由此可见Vim在程序猿界的地位之高,这话虽然说的有点过了,但是不得不说Vim用习惯以后确实非常方便,我从去年受某大师的影响开始使用Vim,并且逐渐成为开发PHP的主要编辑器(Linux下我偶尔会使用Komode Edit,Windows下我使用EditPlus和ZendStudio),在项目比较繁忙的时候,使用Linux+Vim写PHP简直是一种享受。下面是我的Vim配置和安装的插件。

    1. ctags

    下载地址:http://www.vim.org/scripts/script.php?script_id=610

    ctags我用于代码间的跳转,例如返回函数定义处(ZendStudio中按着Ctrl+鼠标左键的功能),Debian/Ubuntu用户也可以通过apt方式安装。

    1 ##安装
    2 sudo apt-get install ctags
    3   
    4 ##使用
    5 ctags -R *

    然后在代码中使用“Ctr+[”就可以前往函数定义处(注意一个项目中有同名的方法可能会跳转不准确),使用“Ctrl+T”就可以返回上一个页面。

    2. NERDTree

    下载地址:http://www.vim.org/scripts/script.php?script_id=1658

    NERDTree我现在已经不使用了,不过对于刚接触Vim的人来说NERDTree是一个很好的过渡的插件,很类似大型IDE的项目文件列表功能。

    3. PHP函数自动补全

    funclist.txt

    Vim本身就可以自动补全,按Ctrl+P即可,不过默认只会查找当前标签页中所有打开的文件查找存在的函数、变量和方法等。如果需要使用PHP函数自动补全,则需要单独配置。首先下载上面的函数列表,然后再vimrc加入配置,注意修改funclist.txt的位置路径。

    下面是我的Vimrc所有的自定义配置,其中下面的是PHP函数自动补全的设置。

    01 "ctags
    02 set tags=tags;/
    03   
    04 set guifont=Monaco:h10       " 字体 && 字号
    05 set expandtab                " 设置tab键换空格
    06 set tabstop=4                " 设置tab键的宽度
    07 set shiftwidth=4             " 换行时行间交错使用4个空格
    08 set autoindent               " 自动对齐
    09 set backspace=2              " 设置退格键可用
    10 set cindent shiftwidth=4     " 自动缩进4空格
    11 set smartindent              " 智能自动缩进
    12 set ai!                      " 设置自动缩进
    13 set nu!                      " 显示行号
    14 "set showmatch               " 显示括号配对情况
    15 set mouse=a                  " 启用鼠标
    16 set ruler                    " 右下角显示光标位置的状态行
    17 set incsearch                " 查找book时,当输入/b时会自动找到
    18 set hlsearch                 " 开启高亮显示结果
    19 set incsearch                " 开启实时搜索功能
    20 set nowrapscan               " 搜索到文件两端时不重新搜索
    21 set nocompatible             " 关闭兼容模式
    22 set vb t_vb=                 " 关闭提示音
    23 "set cursorline              " 突出显示当前行
    24 set hidden                   " 允许在有未保存的修改时切换缓冲区
    25   
    26   
    27 syntax enable                " 打开语法高亮
    28 syntax on                    " 开启文件类型侦测
    29 filetype indent on           " 针对不同的文件类型采用不同的缩进格式
    30 filetype plugin on           " 针对不同的文件类型加载对应的插件
    31 filetype plugin indent on    " 启用自动补全
    32   
    33 set writebackup              " 设置无备份文件
    34 set nobackup
    35 set autochdir                " 设定文件浏览器目录为当前目录
    36 "set nowrap                  " 设置不自动换行
    37 set foldmethod=syntax        " 选择代码折叠类型
    38 set foldlevel=100            " 禁止自动折叠
    39   
    40 set laststatus=2             " 开启状态栏信息
    41 set cmdheight=2              " 命令行的高度,默认为1,这里设为2
    42   
    43 " 每行超过80个的字符用下划线标示
    44 au BufRead,BufNewFile *.asm,*.c,*.cpp,*.java,*.cs,*.sh,*.lua,*.pl,*.pm,*.py,*.rb,*.erb,*.hs,*.vim 2match Underlined /.\%81v/
    45   
    46   
    47 " 设置编码
    48 set fenc=utf-8
    49 set encoding=utf-8
    50 set fileencodings=utf-8,gbk,cp936,latin-1
    51 " 解决菜单乱码
    52 source $VIMRUNTIME/delmenu.vim
    53 source $VIMRUNTIME/menu.vim
    54 " 解决consle输出乱码
    55 language messages zh_CN.utf-8
    56   
    57   
    58 " For Haskell
    59 :let hs_highlight_delimiters=1            " 高亮定界符
    60 :let hs_highlight_boolean=1               " 把True和False识别为关键字
    61 :let hs_highlight_types=1                 " 把基本类型的名字识别为关键字
    62 :let hs_highlight_more_types=1            " 把更多常用类型识别为关键字
    63 :let hs_highlight_debug=1                 " 高亮调试函数的名字
    64 :let hs_allow_hash_operator=1             " 阻止把#高亮为错误
    65   
    66 "只有在是PHP文件时,才启用PHP补全
    67 au FileType php call AddPHPFuncList()
    68 function AddPHPFuncList()
    69     set dictionary-=/home/feiyan/tools/vim/funclist.txt dictionary+=/home/feiyan/tools/vim/funclist.txt
    70     set complete-=k complete+=k
    71 endfunction

     
  • 相关阅读:
    Linux pwn入门教程(1)——栈溢出基础
    Java代码审计入门篇
    利用Burp Suite攻击Web应用
    记一次对某企业的渗透测试实战
    Python 绝技 —— UDP 服务器与客户端
    SQL注入之重新认识
    文件上传和WAF的攻与防
    phpMyAdmin 4.7.x CSRF 漏洞利用
    Powershell渗透测试系列–进阶篇
    AFN检測网络情况
  • 原文地址:https://www.cnblogs.com/clphp/p/5473710.html
Copyright © 2011-2022 走看看