本文目录一览:
- [Linux PHP环境配置。](#Linux PHP环境配置。)
- [Linux下vim c程序开发配置](#Linux下vim c程序开发配置)
- 谁用vim写php的.请教一下
- [Vim 的 YouCompleteMe 插件怎么设置跳转到 PHP 的函数定义](#Vim 的 YouCompleteMe 插件怎么设置跳转到 PHP 的函数定义)
- vim怎么跳转到函数定义处及找到在何处被调用
- 请教vim使用插件的问题
Linux PHP环境配置。
vim
/etc/httpd/conf/httpd.conf
httpd.conf
分为3个配置部分
lz
这个要求只要修改第一第二部分就好了
- 全局环境配置
KeepAlive on
listen 80
- 主服务配置
UserDir disable==
enables
#
UserDir public_html
(把其前面的#
号去掉)
然后在个人主目录/home/*(user)
里建立新文件夹public_html
(再vim index.html
),并在 root 用户下把个人主目录的权限设为705
开启httpd
服务,然后防火墙开启相应端口
访问时在浏览器下输入:
192.168.80.1(IP)/~user1(用户名)
还不明白的可以百度发消息给我
Linux下vim c程序开发配置
请修改 /etc/vimrc
(建议先 cp
一份)
你看一下那些是对你有用的,你就修改一下
set nocompatible " 关闭 vi 兼容模式
syntax on " 自动语法高亮
colorscheme molokai " 设定配色方案
set number " 显示行号
set cursorline " 突出显示当前行
set ruler " 打开状态栏标尺
set shiftwidth=4 " 设定 << 和 >> 命令移动时的宽度为 4
set softtabstop=4 " 使得按退格键时可以一次删掉 4 个空格
set tabstop=4 " 设定 tab 长度为 4
set nobackup " 覆盖文件时不备份
set autochdir " 自动切换当前目录为当前文件所在的目录
filetype plugin indent on " 开启插件
set backupcopy=yes " 设置备份时的行为为覆盖
set ignorecase smartcase " 搜索时忽略大小写,但在有一个或以上大写字母时仍保持对大小写敏感
set nowrapscan " 禁止在搜索到文件两端时重新搜索
set incsearch " 输入搜索内容时就显示搜索结果
set hlsearch " 搜索时高亮显示被找到的文本
set noerrorbells " 关闭错误信息响铃
set novisualbell " 关闭使用可视响铃代替呼叫
set t_vb= " 置空错误铃声的终端代码
" set showmatch " 插入括号时,短暂地跳转到匹配的对应括号
" set matchtime=2 " 短暂跳转到匹配括号的时间
set magic " 设置魔术
set hidden " 允许在有未保存的修改时切换缓冲区,此时的修改由 vim 负责保存
set guioptions-=T " 隐藏工具栏
set guioptions-=m " 隐藏菜单栏
set smartindent " 开启新行时使用智能自动缩进
set backspace=indent,eol,start
" 不设定在插入状态无法用退格键和 Delete 键删除回车符
set cmdheight=1 " 设定命令行的行数为 1
set laststatus=2 " 显示状态栏 (默认值为 1, 无法显示状态栏)
set statusline=\ %F[%1*%M%*%n%R%H]%=\ %y\ %0(%{fileformat}\ %{encoding}\ %c:%l/%L%)\
" 设置在状态行显示的信息
set foldenable " 开始折叠
set foldmethod=syntax " 设置语法折叠
set foldcolumn=0 " 设置折叠区域的宽度
setlocal foldlevel=1 " 设置折叠层数为
" set foldclose=all " 设置为自动关闭折叠
" nnoremap <space> @=((foldclosed(line('.')) == -1) ? 'zc' : 'zo')<CR>
" 用空格键来开关折叠
" return OS type, eg: windows, or linux, mac, et.st..
function! MySys()
if has("win16") || has("win32") || has("win64") || has("win95")
return "windows"
elseif has("unix")
return "linux"
endif
endfunction
" 用户目录变量$VIMFILES
if MySys() == "windows"
let $VIMFILES = $VIM.'/vimfiles'
elseif MySys() == "linux"
let $VIMFILES = $HOME.'/.vim'
endif
" 设定doc文档目录
let helptags=$VIMFILES.'/doc'
" 设置字体 以及中文支持
if has("win32")
set guifont=Inconsolata:h12:cANSI
endif
" 配置多语言环境
if has("multi_byte")
" UTF-8 编码
set encoding=utf-8
set termencoding=utf-8
set formatoptions+=mM
set fencs=utf-8,gbk
if v:lang =~? '^\(zh\)\|\(ja\)\|\(ko\)'
set ambiwidth=double
endif
if has("win32")
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
language messages zh_CN.utf-8
endif
else
echoerr "Sorry, this version of (g)vim was not compiled with +multi_byte"
endif
" Buffers操作快捷方式!
nnoremap <C-Return> :bnext<CR>
nnoremap <C-S-Return> :bprevious<CR>
" Tab操作快捷方式!
nnoremap <C-Tab> :tabnext<CR>
nnoremap <C-S-Tab> :tabprev<CR>
"关于tab的快捷键
" map <C-n> :tabnext<CR>
" map <C-p> :tabprevious<CR>
" map <C-d> :tabnew .<CR>
" map <C-e> :tabedit
" map <C-c> :tabclose<CR>
"窗口分割时,进行切换的按键热键需要连接两次,比如从下方窗口移动
"光标到上方窗口,需要<C-w><C-w>k,非常麻烦,现在重映射为<C-k>,切换的时候会变得非常方便.
nnoremap <C-h> <C-w>h
nnoremap <C-j> <C-w>j
nnoremap <C-k> <C-w>k
nnoremap <C-l> <C-w>l
"一些不错的映射转换语法(如果在一个文件中混合了不同语言时有用)
nnoremap <leader>1 :set filetype=xhtml<CR>
nnoremap <leader>2 :set filetype=css<CR>
nnoremap <leader>3 :set filetype=javascript<CR>
nnoremap <leader>4 :set filetype=php<CR>
" set fileformats=unix,dos,mac
" nmap <leader>fd :se fileformat=dos<CR>
" nmap <leader>fu :se fileformat=unix<CR>
" use Ctrl+[l|n|p|cc] to list|next|previous|jump to count the result
" map <C-x>l <ESC>:cl<CR>
" map <C-x>n <ESC>:cn<CR>
" map <C-x>p <ESC>:cp<CR>
" map <C-x>c <ESC>:cc<CR>
" 让 Tohtml 产生有 CSS 语法的 html
" syntax/2html.vim,可以用:runtime! syntax/2html.vim
let html_use_css=1
" Python 文件的一般设置,比如不要 tab 等
autocmd FileType python set tabstop=4 shiftwidth=4 expandtab
autocmd FileType python map <F12> :!python %<CR>
" 选中状态下 Ctrl+c 复制
vmap <C-c> "+y
" 打开javascript折叠
let b:javascript_fold=1
" 打开javascript对dom、html和css的支持
let javascript_enable_domhtmlcss=1
" 设置字典 ~/.vim/dict/文件的路径
autocmd filetype javascript set dictionary=$VIMFILES/dict/javascript.dict
autocmd filetype css set dictionary=$VIMFILES/dict/css.dict
autocmd filetype php set dictionary=$VIMFILES/dict/php.dict
"-----------------------------------------------------------------
" plugin - bufexplorer.vim Buffers切换
" <leader>be 全屏方式查看全部打开的文件列表
" <leader>bv 左右方式查看 <leader>bs 上下方式查看
"-----------------------------------------------------------------
"-----------------------------------------------------------------
" plugin - taglist.vim 查看函数列表,需要ctags程序
" F4 打开隐藏taglist窗口
"-----------------------------------------------------------------
if MySys() == "windows" " 设定windows系统中ctags程序的位置
let Tlist_Ctags_Cmd = '"'.$VIMRUNTIME.'/ctags.exe"'
elseif MySys() == "linux" " 设定windows系统中ctags程序的位置
let Tlist_Ctags_Cmd = '/usr/bin/ctags'
endif
nnoremap <silent><F4> :TlistToggle<CR>
let Tlist_Show_One_File = 1 " 不同时显示多个文件的tag,只显示当前文件的
let Tlist_Exit_OnlyWindow = 1 " 如果taglist窗口是最后一个窗口,则退出vim
let Tlist_Use_Right_Window = 1 " 在右侧窗口中显示taglist窗口
let Tlist_File_Fold_Auto_Close=1 " 自动折叠当前非编辑文件的方法列表
let Tlist_Auto_Open = 0
let Tlist_Auto_Update = 1
let Tlist_Hightlight_Tag_On_BufEnter = 1
let Tlist_Enable_Fold_Column = 0
let Tlist_Process_File_Always = 1
let Tlist_Display_Prototype = 0
let Tlist_Compact_Format = 1
"-----------------------------------------------------------------
" plugin - mark.vim 给各种tags标记不同的颜色,便于观看调式的插件。
" <leader>m mark or unmark the word under (or before) the cursor
" <leader>r manually input a regular expression. 用于搜索.
" <leader>n clear this mark (i.e. the mark under the cursor), or clear all highlighted marks .
" <*> 当前MarkWord的下一个 <#> 当前MarkWord的上一个
" </> 所有MarkWords的下一个 <?> 所有MarkWords的上一个
"-----------------------------------------------------------------
"-----------------------------------------------------------------
" plugin - NERD_tree.vim 以树状方式浏览系统中的文件和目录
" :NERDtree 打开NERD_tree :NERDtreeClose 关闭NERD_tree
" o 打开关闭文件或者目录 t 在标签页中打开
" T 在后台标签页中打开 ! 执行此文件
" p 到上层目录 P 到根目录
" K 到第一个节点 J 到最后一个节点
" u 打开上层目录 m 显示文件系统菜单(添加、删除、移动操作)
" r 递归刷新当前目录 R 递归刷新当前根目录
"-----------------------------------------------------------------
" F3 NERDTree 切换
map <F3> :NERDTreeToggle<CR>
imap <F3> <ESC>:NERDTreeToggle<CR>
"-----------------------------------------------------------------
" plugin - NERD_commenter.vim 注释代码用的,
" [count],cc 光标以下count行逐行添加注释(7,cc)
" [count],cu 光标以下count行逐行取消注释(7,cu)
" [count],cm 光标以下count行尝试添加块注释(7,cm)
" ,cA 在行尾插入 /* */,并且进入插入模式。 这个命令方便写注释。
" 注:count参数可选,无则默认为选中行或当前行
"-----------------------------------------------------------------
let NERDSpaceDelims=1 " 让注释符与语句之间留一个空格
let NERDCompactSexyComs=1 " 多行注释时样子更好看
"-----------------------------------------------------------------
" plugin - DoxygenToolkit.vim 由注释生成文档,并且能够快速生成函数标准注释
"-----------------------------------------------------------------
let g:DoxygenToolkit_authorName="Asins - asinsimple AT gmail DOT com"
let g:DoxygenToolkit_briefTag_funcName="yes"
map <leader>da :DoxAuthor<CR>
map <leader>df :Dox<CR>
map <leader>db :DoxBlock<CR>
map <leader>dc a /* */<LEFT><LEFT><LEFT>
"-----------------------------------------------------------------
" plugin – ZenCoding.vim 很酷的插件,HTML代码生成
" 插件最新版:
" 常用命令可看:
"-----------------------------------------------------------------
"-----------------------------------------------------------------
" plugin – checksyntax.vim JavaScript常见语法错误检查
" 默认快捷方式为 F5
"-----------------------------------------------------------------
let g:checksyntax_auto = 0 " 不自动检查
"-----------------------------------------------------------------
" plugin - NeoComplCache.vim 自动补全插件
"-----------------------------------------------------------------
let g:AutoComplPop_NotEnableAtStartup = 1
let g:NeoComplCache_EnableAtStartup = 1
let g:NeoComplCache_SmartCase = 1
let g:NeoComplCache_TagsAutoUpdate = 1
let g:NeoComplCache_EnableInfo = 1
let g:NeoComplCache_EnableCamelCaseCompletion = 1
let g:NeoComplCache_MinSyntaxLength = 3
let g:NeoComplCache_EnableSkipCompletion = 1
let g:NeoComplCache_SkipInputTime = '0.5'
let g:NeoComplCache_SnippetsDir = $VIMFILES.'/snippets'
" TAB completion.
inoremap <expr> <TAB> pumvisible() ? "\C-n" : "\<TAB>"
" snippets expand key
imap <silent> <C-e> <Plug>(neocomplcache_snippets_expand)
smap <silent> <C-e> <Plug>(neocomplcache_snippets_expand)
"-----------------------------------------------------------------
" plugin - matchit.vim 对%命令进行扩展使得能在嵌套标签和语句之间跳转
" % 正向匹配 g% 反向匹配
" [% 定位块首 ]% 定位块尾
"-----------------------------------------------------------------
"-----------------------------------------------------------------
" plugin - vcscommand.vim 对%命令进行扩展使得能在嵌套标签和语句之间跳转
" SVN/git管理工具
"-----------------------------------------------------------------
"-----------------------------------------------------------------
" plugin – a.vim
"-----------------------------------------------------------------
谁用vim写php的.请教一下
vim
的设计理念是组合;
命令组合:
Vim
强大的编辑能力中很大部分是来自于其普通模式命令。vim
的设计理念是命令的组合。例如普通模式命令"dd"
删除当前行,"dj"
代表删除到下一行,原理是第一个"d"
含义是删除,"j"
键代表移动到下一行,组合后"dj"
删除当前行和下一行。另外还可以指定命令重复次数,"2dd"
(重复"dd"
两次),和"dj"
的效果是一样的。"d^"
,"^"
代表行首,故组合后含义是删除到光标开始到行首间的内容(不包含光标);"d$"
,$
代表行尾,删除到行尾的内容(包含光标);用户学习了各种各样的文本间移动/跳转的命令和其他的普通模式的编辑命令,并且能够灵活组合使用的话,能够比那些没有模式的编辑器更加高效的进行文本编辑。 模式间的组合:
在普通模式中,有很多方法可以进入插入模式。比较普通的方式是按"a"
(append/追加)键或者"i"
(insert/插入)键。- 很多快捷键设置和正则表达式类似,可以辅助记忆;如
^
、$
、w
等。 vim
针对程序员做了优化;
写代码的时候手需要时刻保持在键盘上,随机定位代码、随机删除代码、移动代码、插入代码的操作大大多于阅读、翻页操作,中间卡顿一下效率就大大降低了;但对普通用户而言,顺序写、设置字体格式、翻页读多于随机写删除操作,且每个动作之间本身就有很多的停顿,用其他 UI 编辑器(如word
、notepad++
等)效率反而比VIM
高效,使用vim
进行操作只会徒增你的疑惑:vim
为什么这么流行。(如果你不是一个代码开发者,估计你看完这段话也无法感同身受,建议先去学一门编程语言,新手推荐学 C,Java 入门,做一道 50 行代码的课后习题,来感受下写代码的过程)Bram Moolenaar
在 80 年代末购入他的Amiga
计算机时,Amiga
上没有他最常用的编辑器vi
。Bram
从一个开源的vi
复制Stevie
开始,开发了Vim
的 1.0 版本。最初的目标只是完全复制vi
的功能,那个时候的Vim
是Vi IMitation
(模拟)的简称。1991 年Vim 1.14
版被"Fred Fish Disk #591"
——Amiga
用的软件集收录了。1992 年1.22
版本的Vim
被移植到了UNIX
和MS-DOS
上。从那个时候开始,Vim
的全名就变成Vi IMproved
(改良)了。 在这之后,Vim
加入了不计其数的新功能。做为第一个里程碑的是1994
年的3.0
版本加入了多视窗编辑模式(分割视窗)。从那之后,同一荧幕可以显示的Vim
编辑文件数可以不止一个了。1996
年发布的Vim 4.0
是第一个利用图形接口(GUI)的版本。1998
年5.0
版本的Vim
加入了 highlight(语法高亮)功能。2001
年的Vim 6.0
版本加入了代码折叠、插件、多国语言支持、垂直分割视窗等功能。2006
年5
月发布的Vim 7.0
版更加入了拼字检查、上下文相关补完,标签页编辑等新功能。2008
年8
月发布的Vim 7.2
,该版本合并了vim 7.1
以来的所有修正补丁,并且加入了脚本的浮点数支持,2010
年8
月15
日,历时两年的时间,vim
又发布了vim 7.3
这个版本,这个版本修复了前面版本的一些 bug,以及添加了一些新的特征,这个版本比前面几个版本来的要更加优秀。2016
年9
月12
日Vim 8.0
十年以后,Vim
终于发布了一个新的大版本8.0
,结束了从2006
年5
月7
日开始的7.0
世代。虽然这十年间,Vim
也一直在不断更新,从7.0
到三年前的7.4
,每隔一两年或两三年就会有个小版本更新,但是这次跨越大版本更新,带来了不少新的特性,据说有一些是从其它的Vi
流派吸收来的特性。中软卓越的 APP 上有更多介绍可以参考。
Vim 的 YouCompleteMe 插件怎么设置跳转到 PHP 的函数定义
YCM
不提供除了 C 系和 Python 的 GoTo definition
。。。
用 ctags
吧。
或者省事找个 IDE
在 vimrc
中添加上:
nnoremap <leader>jd :YcmCompleter GoToDefinitionElseDeclaration<CR>
c/c++
管用,不知道对 PHP 是否生效。
vim怎么跳转到函数定义处及找到在何处被调用
Date : 07/02/2015
- Test platform:
gcc (Ubuntu 4.8.2-19ubuntu1) 4.8.2
GNU bash, 4.3.11(1)-release (x86_64-pc-linux-gnu)
Nginx version:
Nginx 1.6.2
Nginx 1.8.0
在vim
的世界中,当查看源代码的时候,使用ctags
工具可以实现函数方法的跳转,若要在源码中找到对应方法在哪些地方进行了调用或在哪儿定义的,只有使用grep
命令进行查找得到,这样需要另起一个终端或在同一个终端中使用:!grep fucname ./* -rn | grep tags
,这样的切换对于ssh
到远程操作的并不那么方便,那有没有更好的插件工具能够直接完成以上的这个功能需求呢?那么就使用cscope
工具吧,它能够完成以上描述的ctags+grep
。
请教vim使用插件的问题
首先建立 ~/.vim
,以后所有的插件都存放在此。在 .vim
下分别建立 doc
、syntax
、plugin
三个文件夹分别存放插件帮助文档、语法文件、插件。
1. ctags
软件功能: 用于产生一个 tags
文件(代码索引文件),tags
文件中记录的源文件的索引以帮助你快速得找到某个符号的定义。它支持相当多的语言,如 C
、C++
、C#
、Shell
等等。后面所有的包括函数列表显示,变量定义跳转,自动补全等,都要依赖于它。
ctags
的全名叫做“Exuberant Ctags”,可以从新立得里面找到。
可以通过在 vim
中输入:
:!ctags -R
在当前路径下建立一个 tags
文件,然后就可以在 vim
中使用跳转功能了。其中的 -R
选项是递归搜索子目录下的相关符号。所谓跳转就是可以随时转到自己想要的函数、类型、结构体、类等等的定义处。比如光标处于任意位置时可以普通模式下输入:
:ta func_name
就可以直接将光标定位到 func_name
函数处。当然,其他的命名也可以使用这种方法进行快速定位。另外就是可以在光标指向一个函数名时按下 Ctrl+]
,马上跳转到这个函数的定义。在跳转到定义位置之后,可以按下 Ctrl+o
快速返回原来的编辑位置。
如果 tags
文件不再当前目录下则用:
:set tags=filename
来指定。
PS: ctags
是一个程序用于生成 tags
文件。tags
文件是当前目录下所有源文件的标签链接文件。在一个没有 ctags
的 vim
中只是无法生成新的 tags
文件,但是已有的 tags
文件仍然可以使用。
2. taglist
下载地址:略
在 Vim
的一个垂直或水平的分割窗口中显示一个文件中定义的 tags
(函数,类,结构,变量等)。
在 .vimrc
中加入如下设置:
"不同时显示多个文件的tag,只显示当前文件的
let Tlist_Show_One_File=1
"如果taglist窗口是最后一个窗口,则退出vim
let Tlist_Exit_OnlyWindow=1
在 vim
中用如下命令打开 taglist
窗口:
:Tlist
将 taglist
帮助文件放在 ~/.vim/doc
目录下,如果需要使用 :help taglist.txt
命令查看帮助文档,需要事先在 vim
中执行如下命令:
:helptags ~/.vim/doc
使用:将光标移动到 taglist
窗口的 tag
上面,按回车即可跳转到此 tag
的定义处,如果只想查看此 tag
的完整名称表达,按空格。