配置vim

来源:互联网 发布:行书笔顺演示软件 编辑:程序博客网 时间:2024/06/13 23:35

ubuntu搭建C/C++环境附VIM的常用命令表

1,配置gcc

刚装好的的gcc什么文件都不能编译,因为没有一些必须的头文件,所以必须安装build-essential包,安装这

个包会安装上g++、libc6-dev、linux-libc-dev、libstdc++6-4.1-dev等好多必须的软件和头文件。

在终端执行sudo apt-get install build-essential 这里面包含了

2,安装vim

Ubuntu中的vi不完全,安装vim。

在终端中执行:sudo apt-get install vim

网上找了一份VIM C编辑器的配置:

sudo vim /etc/vimcd/vimrc 将如下配置加入其中。

还可以下载一个ctags插件来查看C源码:

sudo apt-get install ctags

01#在PHP源码目录(假定为/server/php-src)执行:
02$ cd /server/php-src
03$ ctags -R
04  
05#小技巧:在当前目录生成的tags文件中使用的是相对路径,
06#若改用 ctags -R /server/ ,可以生成包含完整路径的ctags,就可以随意放到任意文件夹中了。
07  
08#在~/.vimrc中添加:
09set tags+=/server/php-src/tags
10#或者在vim中运行命令:
11:set tags+=/server/php-src/tags

然后在vim中可以使用 CTRL+] 和 Ctrl+t  跳转和跳回函数或宏的申明处,很方便的阅读源码。下面是vim配置(以下两条红线之间的部分可以直接复制到配置文件vimrc中)

-----------------------------------------------------------------------------------------------------------------------------------------

"""""""""""""""""""""""""""""""""""""" 
" 语法着色与高亮设置
""""""""""""""""""""""""""""""""""""""

"开启语法高亮
syntax enable
syntax on

"配色
"colo ruki
"colors ruki
"由于目前没有找到ruki插件,暂时取消该功能,找到该插件后,再启用该功能

"设置高亮搜索
:set hlsearch

""""""""""""""""""""""""""""""""""""""
" 文件设置
""""""""""""""""""""""""""""""""""""""

set encoding=utf-8
set fileencoding=chinese
set fileencodings=ucs-bom,utf-8,chinese
set ambiwidth=double

"检测文件的类型
filetype on

"默认无备份
:set nobackup
:set nowritebackup

""""""""""""""""""""""""""""""""""""""
" 鼠标设置
""""""""""""""""""""""""""""""""""""""

"鼠标支持
if has('mouse')
:set mouse=a
endif

"使鼠标用起来象微软 Windows,似乎正好解决 连续多行缩进问题、退格问题
:behave mswin

""""""""""""""""""""""""""""""""""""""
" 编辑器设置
""""""""""""""""""""""""""""""""""""""

"显示行号
set number

"Tab 宽度
:set ts=4

"自动缩进
:set sw=4

"C/C++ 风格的自动缩进
:set cin
"设定 C/C++ 风格自动缩进的选项
:set cino=:0g0t0(sus

"打开普通文件类型的自动缩进
:set ai

"在编辑过程中,在右下角显示光标位置的状态行
:set ruler

"显示匹配括号
:set showmatch

"在insert模式下能用删除键进行删除
:set backspace=indent,eol,start

"代码折叠, 命令 za
:set foldmethod=syntax
:set foldlevel=100 
 "启动vim时不要自动折叠代码

"设置字体
:set guifont=courier\ 9

"当右键单击窗口的时候, 弹出快捷菜单
:set mousemodel=popup

"自动换行
if (has("gui_running")) "图形界面下的设置

"指定不折行。如果一行太长,超过屏幕宽度,则向右边延伸到屏幕外面
:set nowrap
"添加水平滚动条。如果你指定了不折行,那为窗口添加一个水平滚动条就非常有必要了
:set guioptions+=b

else "字符界面下的设置
 
  set wrap
endif

""""""""""""""""""""""""""""""""""""""
" 快捷键设置
""""""""""""""""""""""""""""""""""""""
"<F1> 菜单栏与工具栏隐藏与显示动态切换
set guioptions-=m
set guioptions-=T
map <silent> <F1> :if &guioptions =~# 'T' <Bar>
 
       \set guioptions-=T <Bar>
 
       \set guioptions-=m <bar>
 
   \else <Bar>
 
       \set guioptions+=T <Bar>
 
       \set guioptions+=m <Bar>
 
   \endif<CR>

"<F2>code_complete.vim插件:函数自动完成
if !exists("g:completekey")
 
   let g:completekey = "<F2>"   "hotkey
endif

"<F3><F4>大小写转换
map <F3> gu
map <F4> gU

"当前目录生成tags语法文件,用于自动完成,函数提示:code_complete.vim OmniCppComplete.vim ...
"map <F5> :!ctags -R --c-kinds=+p --fields=+S . <CR>
map <F5> :!ctags -R --c-kinds=+p --c++-kinds=+p --fields=+iaS --extra=+q . <CR>

"函数和变量列表
map <F6> :TlistToggle<CR>

"文件浏览器
map <F7> :WMToggle<CR>
let g:winManagerWindowLayout = "FileExplorer"

"文件树状列表
map <F8> :NERDTree<CR>

"映射复制、粘贴、剪贴ctrl+c ctrl+v ctrl+x
:map <C-V> "+pa<Esc>
:map! <C-V> <Esc>"+pa
:map <C-C> "+y
:map <C-X> "+x

" 映射全选 ctrl+a
:map <C-A> ggVG
:map! <C-A> <Esc>ggVG

" 多行缩进
:map <Tab> >
:map <S-Tab> <

""""""""""""""""""""""""""""""""""""""
" 插件设置
""""""""""""""""""""""""""""""""""""""
"开启OmniCppComplete.vim
set nocp
filetype plugin on

"2Html插件,启用XHtml css
:let html_number_lines=1
:let html_use_css=1
:let use_xhtml=1

"fencview.vim 插件设置
let g:fencview_autodetect = 1 
 "打开文件时自动识别编码
let g:fencview_checklines = 10 "检查前后10行来判断编码

"autocomplpop.vim & supertab.vim 插件设置
let g:AutoComplPop_IgnoreCaseOption=1
set ignorecase

""""""""""""""""""""""""""""""""""""""
" 其他设置
""""""""""""""""""""""""""""""""""""""

"去掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限 
:set nocompatible

""""""""""""""""""""""""""""""""""""""

"end
""""""""""""""""""""""""""""""""""""""

---------------------------------------------------------------------------------------------------------------------------------------------

3.测试配置好的环境

   安装完后写一个c语言程序hello.c测试下
   #include <stdio.h>
   int main()
  {
       printf("Hello Ubuntu!\n");
       return 0;
  }
  保存完后再终端执行gcc hello.c -o hello
  没有错误后执行./hello

  如果屏幕上输出:Hello Ubuntu

再附一张VIM命令表:

ubuntu下配置VIM做PHP的IDE开发环境

今天在ubuntu下将VIM配置成了PHP的IDE,用到了NERDtree,taglist,AutoComplPop,ZenCoding插件和一些

配置,具体步骤记录下:

安装vim:更新下源,sudo apt-get update ,然后在下载安装vim,sudo apt-get install vim。

设置在上篇文章:这里有介绍

上述设置启用了格式化高亮、行号显示,以及括号匹配、自动缩进等编辑功能,对于大多数情况都可以获得理

想的编辑体验。不过此时对.php文件的支持还不完善,需要下载专门的php插件。

下载地址:http://www.vim.org/scripts/script.php?script_id=1571
下载文件:php.tar.gz

将其中的php.vim复制到$VIM\vimfiles\syntax目录中即可。$VIM根据不同系统不同,我的是ubuntu,执行

whereis vim :

root@Cyrec-desktop:/usr/share/vim/vimfiles# whereis vim
vim: /usr/bin/vim /usr/bin/vim.basic /etc/vim /usr/share/vim /usr/share/man/man1/vim.1.gz 可以找到vim安装

在/usr/share/vim中,下面的/usr/share/vim都用$VIM代替。

一开始在设置里更换主题一直无法显示,后来找到问题的原因:

一般的Linux发行版默认的终端都是16色的,但事实上几乎所有的终端都支持256色终端。

1.将Terminal设为Xterm模式:编辑->配置文件首选项->颜色 设置为自定义,内置方案选择XTerm.

2.vimrc里设置:set t_Co=256

然后就可以随便color自己喜欢到主题了。我是用的:colorscheme desert。

打造PHP IDE

IDE左侧是目录导航,中间是编辑区域,而右侧则是方法列表,用于在已经打开的文件中快速跳转。在编辑区

域按下CTRL+X键,还会显示已打开文件的列表。 

其他诸如自动补全、代码模板等功能,都应有尽有。看过了漂亮的截图,我们就来一步步打造PHP IDE吧。

用NERDTree实现目录导航

在进行PHP应用开发时,同时编辑多个文件是很正常的事情。所以必须有一个方便的目录导航工具,以便在目

录结构间快速切换,找到需要编辑的文件。

vim中提供该类功能的插件很多,比较知名的有project、winmanager等。但笔者个人认为最好用的还是The

NERD Tree这个插件。NERDTree不但可以显示完整的目录树结构,还可以将任何一个目录设置为根目录。并

且提供了目录导航的书签功能,可谓非常方便。

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

解压缩时,要把压缩包中的目录结构完整的解压缩到$VIM\vimfiles目录中。完成后,应该分别找到$VIM

\vimfiles\doc\NERD_tree.txt文件和$VIM\vimfiles\plugin\NERD_tree.vim文件。然后在vim中输入命令:helptags

$VIM\vimfiles\doc,将NERDTree的帮助文档添加到vim中。

最后在_vimrc添加如下内容:

” NERDTree

map <F8> :NERDTreeToggle<CR>

重启vim后,按下F8键,就可以在左侧看到一个目录树了。在目录树窗口中按下?键可以查看详细的帮助信息

最常用的操作键有:

 按键 作用 C(大写C键) 将光标所在目录设置为根目录 u(小写u键) 转到上一级目录 o(小写o键,不是“零”) 展开(或折叠)光标所在目录的子目录。如果光标所在位置是一个文件,则在编辑窗口中打开该文件

此外在目录树窗口中输入目录:Bookmark 收藏名还可以将光标所在目录添加到收藏夹中。下次使

:BookmarkToRoot 收藏名可以直接转到该目录,并且以该目录作为根目录。更多命令可以参考NERDTree的

帮助文档。

用taglist实现代码导航

解决了目录和文件导航问题,我们还要为代码之间的跳转提供辅助手段,taglist就是这样一个插件。taglist可以

列出已打开文件中定义的类、函数、常量,甚至变量。

下载地址:http://www.vim.org/scripts/script.php?script_id=273
下载文件:taglist_45.zip

压缩包需要完整解压缩到$VIM\vimfiles目录,并且用:helptags $VIM\vimfiles\doc命令索引taglist插件的帮助文

档。taglist插件需要依赖ctags程序才能工作。目前常用的ctags版本是Exuberant Ctags。

sudo apt-get install ctags,然后whereis ctags,找到ctags: /usr/bin/ctags 这目录下的ctags。

将ctags复制到$VIM\vim72目录中即可。

最后在/etc/vim/vimrc添加下列内容,设置好taglist插件:

“”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"

” => Plugin configuration

“”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"

” taglist

let Tlist_Auto_Highlight_Tag = 1

let Tlist_Auto_Open = 1

let Tlist_Auto_Update = 1

let Tlist_Close_On_Select = 0

let Tlist_Compact_Format = 0

let Tlist_Display_Prototype = 0

let Tlist_Display_Tag_Scope = 1

let Tlist_Enable_Fold_Column = 0

let Tlist_Exit_OnlyWindow = 0

let Tlist_File_Fold_Auto_Close = 0

let Tlist_GainFocus_On_ToggleOpen = 1

let Tlist_Hightlight_Tag_On_BufEnter = 1

let Tlist_Inc_Winwidth = 0

利用ctrl+ww来进行两个窗口之间的切换。

taglist窗口中,可以使用下面的快捷键:

<CR>       跳到光标下tag所定义的位置,用鼠标双击此tag功能也一样
o             在一个新打开的窗口中显示光标下tag
<Space>  显示光标下tag的原型定义
u             更新taglist窗口中的tag
s             更改排序方式,在按名字排序和按出现顺序排序间切换
x             taglist窗口放大和缩小,方便查看较长的tag
+             打开一个折叠,同zo
-             将tag折叠起来,同zc
*             打开所有的折叠,同zR
=            将所有tag折叠起来,同zM
[[            跳到前一个文件
]]            跳到后一个文件
q            关闭taglist窗口
在vimrc中加下面设置可以按F6打开关闭taglist
"函数和变量列表
map <F6> :TlistToggle<CR>

用AutoComplPop实现代码自动提示

点击下面网址,进去下载autocomplpop插件

http://www.vim.org/scripts/script.php?script_id=1879

下载的是一个zip文件,解压后会有三个文件夹,分别是autoload,doc,plugin。到Vim的根目录下,找到名字

和这三个一样的文件夹。不同系统目录位置不同。我的fedora是/usr/share/vim/vimfiles

按照文件夹对应的把里面的acp.vim和其他的什么文件都copy过去。然后重启Vim。这时候可能会有错误提示

Error detected while processing /home/carlos/.vim/plugin/acp.vim:
line 13:
***** L9 library must be installed! *****

这是插件放出的一个错误提示,查看plugin里的acp.vim可以看到。是缺少L9 library库。这个也是需要下载的。地址在下面

http://www.vim.org/scripts/script.php?script_id=3252

下载下来,它也是一个插件形式,以同样的方式copy到Vim目录下。

安装完后就可以了。

再就是这个插件默认是没有设置php自动补全的,可以设置一个PHP函数字典,让其根据字典的内容进行自动

补全。

这个是一个PHP字典:.
编辑配置文件.vimrc,在文件后面加上下面的代码
au FileType php setlocal dict+=/etc/vim/php_funclist.txt
后面跟着的是字典的目录地址,根据自己的需求存放在一个地方就好。我是放到了/etc/vim/目录下。php_funclist下载:php_funclist.tar.gz

再附加一些自动补全配置(加入到vimrc中):

php 中 一般是会在 "$", "->", "::" 后需要出现自动补全,在 .vimrc 中加入以下代码:

if !exists('g:AutoComplPop_Behavior')    let g:AutoComplPop_Behavior = {}    let g:AutoComplPop_Behavior['php'] = []    call add(g:AutoComplPop_Behavior['php'], {            \   'command'   : "\<C-x>\<C-o>",             \   'pattern'   : printf('\(->\|::\|\$\)\k\{%d,}$', 0),            \   'repeat'    : 0,            \})endif

在 Vim 中实现括号自动补全:

:inoremap ( ()<ESC>i
:inoremap ) <c-r>=ClosePair(')')<CR>
:inoremap { {}<ESC>i
:inoremap } <c-r>=ClosePair('}')<CR>
:inoremap [ []<ESC>i
:inoremap ] <c-r>=ClosePair(']')<CR>
:inoremap < <><ESC>i
:inoremap > <c-r>=ClosePair('>')<CR>

function ClosePair(char)
if getline('.')[col('.') - 1] == a:char
return "\<Right>"
else
return a:char
endif
endf

这样,写代码的时候不再担心会丢掉右边的括号了,尤其是函数嵌套的时候。

安装ZenCoding插件

到http://github.com/mattn/zencoding-vim下载压缩包,然后解压到vimfiles文件夹,和上面一样,将doc plugin

autoload三个文件夹放到相应文件夹下。然后在vim中输入helptags /etc/vim/doc 导入帮助文件.就OK了。(helptags是vim的内部命令,需要先输入先进入vim环境,再输入“:helptags /etc/vim/doc"才能生效

zencoing可以很方便的写html,一些常用命令:

输入 div>p#foo$*3>a 这样的缩写,然后按 ctrl + y + , 来展开(注意那个逗号),展开后它应该是这个样子的

 <div>      <p id="foo1">          <a href=""></a>      </p>      <p id="foo2">          <a href=""></a>      </p>      <p id="foo3">          <a href=""></a>      </p>  </div>
  • 多行缩写

输入如下:

test1test2test3

然后进入行选择模式,选中这三行按 ctrl + y + ,,接着它会提示你要使用的tag名称,TAG: 输入 ‘ul>li* 会变成如下的样子

<ul>    <li>test1</li>    <li>test2</li>    <li>test3</li></ul>

如果是输入blockquote,那么会变成这样

  <blockquote>      test1      test2      test3  </blockquote>
  • 跳转到下一个标签编辑位置

输入ctrl + y + n 进入插入模式

  • 跳转到上一个标签编辑位置

输入ctrl + y + N 进入插入模式

  • 更新标签中图片大小

假如有以下内容

<img src="foo.png" />

光标移动到img标签上,按下ctrl + y + i 该插件会自动获取foo.png的大小并插入宽高属性 看起来像这个样子

<img src="foo.png" width="32" height="48" />
  • 切换注释

如有以下段

<div>    hello world</div>

光标移动到此段落,输入ctrl + y + /变成

<!-- <div>    hello world</div> -->

再次输入则还原

  • 生成url连接

将光标移动到一个url上,如:

http://www.google.com/

输入ctrl + y + a 它会自动获取url页面的标题并生成一个连接

<a href="http://www.google.com/"></a>

Zen Coding官方提供的速查手册(PDF):http://zen-coding.googlecode.com/files/ZenCodingCheatSheet.pdf

配置OK了,最后上张帅气的vim图:

21432532452.png


==================我是万恶的分隔线===================

转载自:http://www.cyrec.org/posts/vim-php-ide-ubuntu-NERDtree-taglist-AutoComplPop-ZenCoding


原创粉丝点击