(图片显示越界的话,请刷新)html
装好Ubuntu15.04系统以后呢,玩了玩 Ubuntu,感受仍是很不错的。比windows快,一开机就能够打开你想要的程序,可是在windows下你要等他启动一些必须项才能够正常启用。感受 Linux 和 MacOs 有得一比。只是在linux下软件会少不少。java
以前写过一篇博文是关于Vim的简单使用,也是从零开始去接触和使用Vim,了解了那篇博文里的命令后,就可使用vim来高效地完成你的编辑工做了,固然,若是须要到格式的控制,使用vim仍是不够的,须要到 markdown 了,若是Vim能加上Markdown的话,那编辑起来堪称完美了吧,哈哈。python
Vim 不只是“编辑器之神”,并且Vim的插件丰富,彻底能够打形成开发环境IDE,接下来就记录一下个人vim,整个过程下来,感受就像是本身搭建了一个IDE,不错哦。linux
本博文能够完成的效果包括:(左侧目录,分割窗口,代码补全,C/C++/Java/Python 的编译运行/语法补全/Tagbar[右侧大钢导航])c++
Vim做为IDE,能够达到的效果,先来解解馋: git
安装的话,在 Linux 下是很简单的,打开终端,输入几条命令就能够完成了。github
sudo apt-get install vimvim
sudo apt-get install gvimwindows
sudo apt-get install git (这个很重要,到后面下载插件的时候要用 git 来下载)markdown
这是第一条命令,这里说我已经安装好了,没必要安装。装好之后在终端直接输入 vim 或 git 或 gvim 就能够知道有没有装好了。
还可一使用 aptitude 来安装,在使用 aptitude 来安装以前要先安装 aptitude
sudo aptitude install vim sudo aptitude install gvim sudo aptitude install git
而后,在用户的主目录中创建 .vim 目录,在 .vim 目录中创建 bundle 目录,之后Vundle自动下载的插件都保存在这里。
vundle能够自动下载和安装插件,只须要在“My Bundles Here”注释后面使用 Bundle 命令把所须要的插件列出来,每一个插件一行,而后运行 :BundleInstall 命令便可。Vundle支持 github.com 和Vim的官网 vim.org 。
mkdir .vim/bundle
而后,进入 Bundle 目录,使用 git clone 命令下载vundle。
git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
执行下载完成的话就能够在 bundle 下看到 vundle 目录了。
能够在终端输入 vim 而后输入 :echo $VIM 看到本身的 vim 目录,而后在该目录下看看有没有 .vimrc 文件,没有的话就本身建立。
个人 .vimrc 文件是在 /usr/share/vim 目录下(不知道你们的.vimrc是否是也是在这个目录下),没有的话就本身用命令建立:touch .vimrc
先来基本的配置,不要插件,映射那些比较高级的东西先吧。能够完成:代码配色,tab缩进,自动保存,特别显示当前编辑行,括号匹配,查找搜索,与系统公用剪贴板,代码折叠等。以下:
注:更改.vimrc文件须要 sudo vim vimrc使用vim来修改,也可使用 sudo gedit vimrc
个人基本配置:
"-----------------------------------基本------------------------------------ "处理未保存或只读文件时,弹出确认 set confirm "自动保存 set autowrite "历史记录数 set history=1000 "编码设置 set fenc=utf-8 set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2313,cp936 "语法高亮 if has("syntax") syntax on endif "设置配色方案 colorscheme ron "设置行号 set nu "设置缩进 set tabstop=4 set sts=4 set smartindent set expandtab set softtabstop=4 set shiftwidth=4 "设置自动格式化,解决复制代码过来的时候出现格式混乱
"格式化全文: gg=G
"自动缩进当前行: ==
set formatoptions=tcrqn
"设置括号配对状况 set showmatch set matchtime=2 "设置没有自动备份 set noswapfile set nobackup "设置纵向虚线对齐 "底部显示光标的位置的状态行 set ruler "设置查找 "搜索模式忽略大小写 set ignorecase "若是搜索模式包含大小写则不适用ignorecase set smartcase "禁止搜索到文件两端时从新搜索 set nowrapscan "高亮显示搜索到的文本 set hlsearch "逐字符高亮 set incsearch "使用鼠标 "按住 shift 才由鼠标右键处理操做 set mouse=a "和系统共用剪贴板 set clipboard+=unnamed
“在vim中把代码复制到系统剪贴板:
”选择须要复制的代码后:
定位到某一行:4H 定位到第四行
复制某几行
4H
shift +v
6H
"突出显示当前编辑行 set cursorline "开启折叠,并设置空格来开关折叠 set foldenable set foldmethod=syntax set foldcolumn=0 setlocal foldlevel=1 set foldclose=all nnoremap <space> @=((foldclosed(line('.'))<0)?'zc':'zo')<CR> "搜索和undo时不展开设置好的折叠 set foldopen-=search set foldopen-=undo
完成到这里,就能够去敲代码了,可是还不够啊,做为IDE还不够啊,怎么没有树状目录?没有一键编译,运行?没有语法补全?
分割窗口很简单,这样用vim打开文件就能够: vim -o file_path_name1 file_path_name2 (-o时横向切割,-O是纵向切割)
要有左侧目录的话,这里就须要用到插件了。以前讲到,用Vundle能够很方便地下载和管理插件,如今就要用到了。
先来配置一下 .vimrc ,在 .vimrc 文件后添加:
set nocompatible
filetype off
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()
在vimrc文件中添加如下插件配置:
Bundle 'The-NERD-tree'
Bundle 'The-NERD-Commenter'
按下esc,输入:wq 保存退出
再次进入vim后使用:BundleInstall 进行安装

如今弄好了,并且也已经把打开和关闭目录映射成 CTRL+N 。
map <key_you want> :NERDTreeTogggle<CR>
要知道 ctrl+w+l是切换到右边窗口,ctrl+w+h是切换到左边窗口,目录栏的控制是:Enter进入目录,光标的上下移动和vim同样


和编辑文件同样,经过h j k l移动光标定位 o 打开关闭文件或者目录,若是是文件的话,光标出如今打开的文件中 go 效果同上,不过光标保持在文件目录里,相似预览文件内容的功能 i和s 能够水平分割或纵向分割窗口打开文件,前面加g相似go的功能 t 在标签页中打开 T 在后台标签页中打开 p 到上层目录 P 到根目录 K 到同目录第一个节点 J 到同目录最后一个节点 m 显示文件系统菜单(添加、删除、移动操做) ? 帮助 q 关闭
说到这个,确定要说到YouCompleteMe,能够补全C/C++/Java/Python然而,我却并不能安装成功,唉。先说怎么安装,再说我碰到的问题。
安装:像安装 目录的那个插件同样,直接在 .vimrc 下加上:
Bundle 'Valloric/YouCompleteMe'
而后保存退出,再进入 vim 输入:BundleInstall来安装。安装的话确定会遇到这个提示:
到 .vim/bundle/YouCompleteMe 下打开终端
输入:./install.sh --clang-completer
参数是为了支持c/c++ 的补全。
而后就去编译YouCompleteMe:而后我就出现错误了:
Some folders in /home/sky-tm/.vim/bundle/YouCompleteMe/third_party/ycmd/third_party are empty; you probably forgot to run: git submodule update --init --recursive
解决:
按照提示输入:git submodule update --init --recursive
结束后输入: ./install.sh --clang-completer
然而,个人却并无起到做用。
推荐几篇安装YouCompleteMe 的博文吧!
虽然没有装YouCompleteMe,可是我发现,在编写代码的时候,有些关键字仍是能够用 CTRL+N来进行补全的,还会自动添加你敲过的关键字进入备选项。期待效果:
没有YouCompleteMe也不要紧,我装了 Python 的自动补全插件
来自:http://www.linuxidc.com/Linux/2014-04/99669.htm
1.下载:git clone https://github.com/vim-scripts/Pydiction ~/下载目录
包括三个文件
python_pydiction.vim #vim插件
complete-dict #python关键字和模块列表,
pydiction.py #python脚本,能够添加更多的模块
2.配置
#1.查看家目录下是否有.vim目录,若没有则建立。
mkdir -p ~/.vim/after/ftplugin/pydiction
#2.把上面下载的三个文件放到指定的位置
mv python_pydiction.vim ~/.vim/after/ftplugin/
mv complete-dict pydiction.py ~/.vim/after/ftplugin/pydiction/
#3.修改 ~/.vimrc文件,若没有则建立,在该文件中添加下面两行。
filetype plugin on
let g:pydiction_location='~/.vim/after/ftplugin/pydiction/complete-dict'
每次敲好想要调试一下都要退vim确定是不怎么友好的,因此就去查了怎么在写完后能够 一键编译运行 。
很少说了,直接贴上个人 .vimrc 配置吧:

个人编译与运行(C/C++/JAVA/PYTHON)
我试过把全部的编译与运行都映射到F5,可是在实际使用的时候却没法奏效,因而把不一样语言的快捷键分开映射了,我想,应该是有方法自动侦测文件类型而后选择编译的吧,这样就不用映射那么多键了。
"--------------------------------编译与运行--------------------------------- "-------------Java--------------- func! CompileJava() exec "!javac %" endfunc func! CompileCode() exec "w" if $filetype == "java" exec "call CompileJava()" endif endfunc func! RunResult() exec "w" if &filetype =="java" exec "!java %<" endif endfunc map <F4> :call CompileCode()<CR> map <F5> :call RunResult()<CR> "-------------Python------------- map <F6> :w<cr>:!python %<cr> "--------------C++--------------- map <F3> :call CompileRunGpp()<CR> func! CompileRunGpp() exec "w" exec "!g++ % -o %<" exec "! ./%<" endfunc "---------------C---------------- map <F2> :call CompileRunGcc()<CR> func! CompileRunGcc() exec "w" exec "!gcc % -o %<" exec "! ./%<" endfunc
特别说明一下,java的运行须要先按下 F5而后F6才行,第一次编译嘛!
最后再贴个人 .vimrc(未完成 YouCompleteMe)
"-----------------------------------基本------------------------------------ "处理未保存或只读文件时,弹出确认 set confirm "自动保存 set autowrite "历史记录数 set history=1000 "编码设置 set fenc=utf-8 set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2313,cp936 "语法高亮 if has("syntax") syntax on endif "设置配色方案 colorscheme ron "设置行号 set nu "设置缩进 set tabstop=4 set sts=4 set smartindent set expandtab set softtabstop=4 set shiftwidth=4 "设置自动格式化 解决复制代码过来的时候出现格式混乱 "shift +v 开头 "shift +g 结尾 "== "格式化全文: gg=G "自动缩进当前行: == "set formatoptions=tcrqn "设置括号配对状况 set showmatch set matchtime=2 "设置没有自动备份 set noswapfile set nobackup "设置纵向虚线对齐 "底部显示光标的位置的状态行 set ruler "设置查找 "搜索模式忽略大小写 set ignorecase "若是搜索模式包含大小写则不适用ignorecase set smartcase "禁止搜索到文件两端时从新搜索 set nowrapscan "高亮显示搜索到的文本 set hlsearch "逐字符高亮 set incsearch "使用鼠标 "按住 shift 才由鼠标右键处理操做 set mouse=a "和系统共用剪贴板 set clipboard+=unnamed "突出显示当前行 set cursorline "开启折叠,并设置空格来开关折叠 set foldenable set foldmethod=syntax set foldcolumn=0 setlocal foldlevel=1 set foldclose=all nnoremap <space> @=((foldclosed(line('.'))<0)?'zc':'zo')<CR> "搜索和undo时不展开设置好的折叠 set foldopen-=search set foldopen-=undo "----------------------------------插件------------------------------------- "侦测文件类型 filetype on "载入插件 filetype plugin on "为特定文件类型载入相关缩进文件 filetype indent on "------------Pyghon---------------- let g:pydiction_location='~/.vim/after/ftplugin/pydiction/complete-dict' "配置vundle set nocompatible "filetype off set rtp+=~/.vim/bundle/vundle/ call vundle#rc() "安装插件 "Bundle 'Valloric/YouCompleteMe' Bundle 'The-NERD-tree' Bundle 'The-NERD-Commenter' map <C-n> :NERDTreeToggle<CR> "命令 "BundleList "BundleInstall "BundleClean "--------------------------------编译与运行--------------------------------- "-------------Java--------------- func! CompileJava() exec "!javac %" endfunc func! CompileCode() exec "w" if &filetype == "java" exec "call CompileJava()" endif endfunc func! RunResult() exec "w" if &filetype =="java" exec "!java %<" endif endfunc map <F4> :call CompileCode()<CR> map <F5> :call RunResult()<CR> "-------------Python------------- map <F7> :w<cr>:!python %<cr> "--------------C++--------------- map <F6> :call CompileRunGpp()<CR> func! CompileRunGpp() exec "w" exec "!g++ % -o %<" exec "! ./%<" endfunc "---------------C---------------- map <F3> :call CompileRunGcc()<CR> func! CompileRunGcc() exec "w" exec "!gcc % -o %<" exec "! ./%<" endfunc "-------------------------------------------------------------------------- "set ignorecase " Do case insensitive matching "set smartcase " Do smart case matching "set incsearch " Incremental search "set autowrite " Automatically save before commands like :next and :make "set hidden " Hide buffers when they are abandoned "set mouse=a " Enable mouse usage (all modes) " Source a global configuration file if available if filereadable("/etc/vim/vimrc.local") source /etc/vim/vimrc.local endif
能够像IDE同样显示类的结构 变量等
既然是作IDE,那要是能把类视图,右侧能够显示tagbar就更好啦,这样就能够更清晰地了解程序的架构,在插件仿佛的vim里,的确存在这样一个插件,能够实现咱们想要的功能,接下来就来安装这个插件:
先安装依赖库:sudo apt-get install ctags
仍然使用vundle来安装插件:
参照上面的方法,在.vimrc里加上 Bundle 'majutsushi/tagbar'
保存退出后再次进入vim,输入:BundleInstall来安装,装完后输入:BundleList就能够看到已经安装的插件了。
顺便映射一个快捷键吧,在刚才的代码下添加:
map <F9> :TagbarToggle<CR>
" 启动自动focus
let g:tagbar_autofocus = 1
折腾了几天,虽然最终也基本达到了想要的效果,可是却浪费了很多时间,建议仍是用现成的IDE吧,功能齐全,安装方便简单,至少不费心费力啊!!!
我如今的vim图:
期待各位的交流和指导!
个人vimrc:http://files.cnblogs.com/files/tianjintou/vimrc.zip
博文参考:
http://vim.wikia.com/wiki/Use_Vim_like_an_IDE
http://www.wklken.me/archives.html
http://www.open-open.com/lib/view/open1429884437588.html
http://blog.chinaunix.net/uid-24567872-id-3425929.html
https://github.com/wklken/k-vim
http://www.wklken.me/posts/2013/06/11/linux-my-vim.html#_6
易水博客:
http://easwy.com/blog/archives/advanced-vim-skills-catalog/
Vimer的程序世界
vimrc配置文件