install vim
常用命令:

[0]安装vim:
oee@copener:~$ sudo apt-get install vim vim-scripts vim-doc
刚安装完$HOME目录下只有两个文件:.vim/ .viminfo ;其中“.vim/”目录是空的“.viminfo”是记录vim的一些信息
vim的配置分为两部分:一部分是$HOME/.vimrc的配置项,另外一部分是插件的安装.插件安装在$HOME/.vim/plugin/*.vim下,$HOME/.vim/doc/*.txt是相应的帮助文档.
插件安装完之后还是需要在.vimrc里面进行配置的.插件请自行下载放入相应的$HOME/.vim/plugin/目录即可.
[1]学习小教程:
oee@copener:~$ vimtutor
vim编辑器的三种模式:一般模式、编辑模式和命令行模式。
[2]帮助文档:
oee@copener:~$vim
vim命令状态下输入下面命令可查看帮助文档
:help
[3]配置vim
$HOME目录下面若没有.vimrc文件的话可以新建一个,然后在里面进行配置。网上有很多配置文件,可以下载一个自己喜欢的风格进行个性化定制。
定制过程中应该还要安装一些插件。
安装vim配置文件
oee@copener:~$ git clone git://github.com/ma6174/vim.git
安装bundle插件
oee@copener:~$ git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
打开vim并执行下面命令安装插件
:BundleInstall
结束时有个错误,这是正常的,因为ycm需要手工编译出库文件
Done! With errors; press l to view log ycm_client_support.[so|pyd|dll] and ycm_core.[so|pyd|dll] not detected; you need to compile YCM before using it. Read the docs!
到 .vim/bundle/YouCompleteMe 下运行
./install.sh --clang-completer
提示报错
git submodule update --init --recursive
再次提示报错,缺少库文件
STDERR: Your C++ compiler supports C++, compiling in that mode. CMake Error at /usr/share/cmake- (message): Could NOT find PythonLibs (missing: PYTHON_LIBRARIES PYTHON_INCLUDE_DIRS) (Required is at least version "2.6") Call Stack (most recent call first): /usr/share/cmake- (_FPHSA_FAILURE_MESSAGE) /usr/share/cmake- (FIND_PACKAGE_HANDLE_STANDARD_ARGS) BoostParts/CMakeLists.txt: (find_package)
安装缺失文件
oee@copener:~/.vim/bundle/YouCompleteMe$ sudo apt-get install python-dev
成功后再次运行
./install.sh --clang-completer
OK了
"********************************************************
"vim configuration of copener
"Created by copener 2015年 05月 11日 星期一 14:30:51 HKT
"********************************************************
" 一般性配置 *
"********************************************************
"关闭vim一致性原则
set nocompatible
"显示行号
set number
"设置在编辑过程中右下角显示光标的行列信息
set ruler
"在状态栏显示正在输入的命令
set showcmd
"设置历史记录条数
set history=
"设置取消备份 禁止临时文件的生成
set nobackup
set noswapfile
"设置匹配模式
"set showmatch
"设置C/C++方式自动对齐
set autoindent
set cindent
"开启语法高亮功能
syntax enable
syntax on
"指定配色方案为256色
set t_Co=
"设置搜索时忽略大小写
set ignorecase
"配置backspace的工作方式
set backspace=indent,eol,start
"设置在vim中可以使用鼠标
set mouse=a
"设置tab宽度
set tabstop=
"设置自动对齐空格数
set shiftwidth=
"设置退格键时可以删除4个空格
set smarttab
set softtabstop=
"将tab键自动转换为空格
set expandtab
"设置编码方式
set encoding=utf-
"自动判断编码时 依次尝试以下编码
set fileencodings=ucs-bom,utf-,cp936,gb18030,big5,euc-jp,euc-kr,latin1
"检测文件类型
filetype on
"针对不同的文件采取不同的缩进方式
filetype indent on
"允许插件
filetype plugin on
"启动智能补全
filetype plugin indent on
"座标显示定位
set cul "高亮光标所在行
"set cuc "高亮光标所在列
autocmd InsertLeave * se nocul "用浅色高亮当前行
autocmd InsertEnter * se cul "用浅色高亮当前行
if has("autocmd")
au InsertEnter * silent execute "!gconftool-2 --type string --set /apps/gnome-terminal/profiles/Default/cursor_shape ibeam"
au InsertLeave * silent execute "!gconftool-2 --type string --set /apps/gnome-terminal/profiles/Default/cursor_shape block"
au VimLeave * silent execute "!gconftool-2 --type string --set /apps/gnome-terminal/profiles/Default/cursor_shape ibeam"
endif
"*********************************************************
" vundle 配置 *
"*********************************************************
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()
" let Vundle manage Vundle
Bundle 'gmarik/vundle'
" My Bundles here:
Bundle 'tpope/vim-fugitive'
Bundle 'Lokaltog/vim-easymotion'
Bundle 'rstacruz/sparkup', {'rtp': 'vim/'}
Bundle 'tpope/vim-rails.git'
Bundle 'taglist.vim'
Bundle 'The-NERD-tree'
Bundle 'Syntastic'
Bundle 'L9'
Bundle 'FuzzyFinder'
Bundle 'Lokaltog/vim-powerline'
Bundle 'Valloric/YouCompleteMe'
"*****************************************************
" taglist配置 *
"*****************************************************
"不显示"press F1 to display help"
let Tlist_Compact_Format=
"窗口在左侧显示
let Tlist_Use_Right_Window=
"只显示当前文件的tags
let Tlist_Show_One_File=
"高亮显示
let Tlist_Auto_Highlight_tag=
"随文件自动更新
let Tlist_Auto_Update=
"设置宽度
let Tlist_WinWidth=
"taglist窗口是最后一个窗口,则退出vim
let Tlist_Exit_OnlyWindow=
"单击跳转
let Tlist_Use_SingClick=
"打开关闭快捷键
nnoremap <silent> <F8> :TlistToggle<CR>
"********************************************************
" NERD_Tree 配置 *
"********************************************************
"显示增强
let NERDChristmasTree=
"自动调整焦点
let NERDTreeAutoCenter=
"鼠标模式:目录单击,文件双击
let NERDTreeMouseMode=
"打开文件后自动关闭
let NERDTreeQuitOnOpen=
"显示文件
let NERDTreeShowFiles=
"显示隐藏文件
let NERDTreeShowHidden=
"高亮显示当前文件或目录
let NERDTreeHightCursorline=
"显示行号
let NERDTreeShowLineNumbers=
"窗口位置
let NERDTreeWinPos='left'
"窗口宽度
let NERDTreeWinSize=
"不显示'Bookmarks' label 'Press ? for help'
let NERDTreeMinimalUI=
"快捷键
nnoremap <silent> <F4> :NERDTreeToggle<CR>
"*****************************************************
" YouCompleteMe配置 *
"*****************************************************
"leader映射为逗号“,”
let mapleader = ","
"配置默认的ycm_extra_conf.py
let g:ycm_global_ycm_extra_conf = '~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py'
"按,jd 会跳转到定义
nnoremap <leader>jd :YcmCompleter GoToDefinitionElseDeclaration<CR>
"打开vim时不再询问是否加载ycm_extra_conf.py配置
let g:ycm_confirm_extra_conf=
"使用ctags生成的tags文件
let g:ycm_collect_identifiers_from_tag_files =
"*****************************************************
" Syntastic配置 *
"*****************************************************
let g:Syntastic_check_on_open=
"打开文件类型检测, 加了这句才可以用智能补全
"set completeopt=longest,menu
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"""""新文件标题
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"新建.c,.h,.sh,.java文件,自动插入文件头
autocmd BufNewFile *.cpp,*.[ch],*.sh,*.java exec ":call SetTitle()"
"新建文件后,自动定位到文件末尾
autocmd BufNewFile * normal G
""定义函数SetTitle,自动插入文件头
func SetTitle()
if &filetype == 'sh' "如果文件类型为.sh文件
call setline(,"\#########################################################################")
call append(line("."), "\# File Name: ".expand("%"))
call append(line(, "\# Author: copener")
call append(line(, "\# mail: hanmingye@foxmail.com")
call append(line(, "\# Created Time: ".strftime("%c"))
call append(line(, "\#########################################################################")
call append(line(, "\#!/bin/bash")
call append(line(, "")
else
call setline(, "/*************************************************************************")
call append(line("."), " > File Name: ".expand("%"))
call append(line(, " > Author: copener")
call append(line(, " > Mail: hanmingye@foxmail.com")
call append(line(, " > Created Time: ".strftime("%c"))
call append(line(, " ************************************************************************/")
call append(line(, "")
endif
if &filetype == 'c'
call append(line(, "#include<stdio.h>")
call append(line(, "")
endif
if &filetype == 'cpp'
call append(line(, "#include<iostream>")
call append(line(, "using namespace std;")
call append(line(, "")
endif
if &filetype == 'java'
call append(line(,"public class ".expand("%:r"))
call append(line(,"")
endif
if expand("%:e") == 'h'
call append(line(, "#ifndef _".toupper(expand("%:r"))."_H")
call append(line(, "#define _".toupper(expand("%:r"))."_H")
call append(line(, "#endif")
call append(line(, "")
endif
endif
endfunc
效果图:

map :!ctags --tag-relative=yes -f /pathto/tags -R *<CR>
后期追加内容:
ctags :用来遍历源代码文件生成tags文件,tags文件能被编辑器或其它工具用来快速查找定位源代码中的符号(tag/symbol),如变量名,函数名等。tags文件是Taglist和OmniCppComplete工作的基础。
安装:$sudo apt-get install ctags 安装完就可以被Taglist插件调用了 $sudo ctags -f $HOME/tags -R 指定生成文件目录和文件名, -R递归目录
taglist:用于显示代码符号的窗口,代码符号由tags生成的tag(即标签)
安装:$sudo vim-addons install taglist taglist依赖于ctags,其它插件的安装也可以用这个方法.
在.vimrc文件中添加 map <F6> :!ctags -R *<CR> 可以实现F6快捷键更新当前目录的tags符号文件给taglist插件用.
bufexplorer:用于显示buf列表
Nerd_Tree:用于文件浏览
winmanager:用于界面管理
感谢零度王爵的分享:C编程vim初步配置
感谢小码哥的分享:强大的vim配置文件,让编程更随意
[感谢所有让我进步的人]
install vim的更多相关文章
- How to install vim on linux
前几日了解到 vim 文本编辑器,据说很强大,使用起来效率很高,今天怀着很好奇的心理,学习了一下vim编辑器的下载安装方法,在此详细介绍一下安装vim编辑器的几种常用方法: 第一种方法就是在 Ubun ...
- Ubuntu下sudo apt-get install vim 失败的解决办法
Ubuntu下 执行命令:sudo apt-get install vim 失败 解决办法: 更新一下,命令:sudo apt-get update 再安装即可成功:sudo apt-get inst ...
- dockerfile---apt-get install vim 时 Unable to locate package vim
在学习 dockerfile 的时候,发现编写的 Dockerfile 中的 apt-get install 命令无法找到要安装的包,所以记录一下这次发生的错误. 环境:宿主机:windows 10 ...
- 【在下版本,有何贵干?】Dockerfile中 RUN yum -y install vim失败Cannot prepare internal mirrorlist: No URLs in mirrorlist
隐秘的版本问题---- Dockerfile中 RUN yum -y install vim失败Cannot prepare internal mirrorlist: No URLs in mirro ...
- Centos7 yum install vim 出现“could not retrieve mirrorlist”
ps:来源 https://www.cnblogs.com/justphp/p/5959655.html 办法一:改dns解析 vim /etc/resolv.conf 添加: nameserver ...
- ubuntu 14.04 vim install youcompleteme
sudo apt-get install vim ; sudo apt-get install vim-youcompleteme ; sudo apt-get install vim-addon-m ...
- ubuntu apt-get install 时报错curl : Depends: libcurl4 (= 7.58.0-2ubuntu3.6) but 7.61.0-1ubuntu2 is to be installed或者 vim : Depends: vim-common (= 2:8.0.1453-1ubuntu1) but 2:8.0.1766-1ubuntu1 is to be ins
ubuntu apt-get install 时报错:Depends: ***(=某版本)but***(另一版本)is to be installed 这时候就把这个***给purge后再重新装就好了 ...
- 在 Linux 打造属于自己的 Vim
Linux 系统中很多东西都是以脚本代码.配置文件的形式存在,使用 Linux 系统时,需经常对这些文件进行编辑.很显然,如果没有文本编辑器,江湖之路寸步难行. 我的选择是 Vim.Vim 是 Lin ...
- 让VIM支持Python2 by update-alternatives
前言 Ubuntu 16+中$ sudo apt install vim所安装的vim只支持Python3,但很多插件如YCM和powerline均需要Python2,那就来场"生命贵在折 ...
随机推荐
- Dapper学习笔记(4)-事务
Dapper中对事务的处理也非常简单,如下代码所示: private void DapperTransaction() { using (IDbConnection con = OpenConnect ...
- ios安装app提示【未受信任的企业级开发者】。在设置中信任此开发者
最近在测试app,ios安装app后点击提示如下图: 解决方法: 1 点击 [设置] >[通用] >[设备管理] 2 点击企业级应用 > 信任该开发者 > 信任.设置之后 ...
- 微软云创益大赛获奖团队风采:做一个中国特色的.Net源代码社区
为了强化云技术,落地云应用,彰显云价值,微软(中国)携手中国计算机报举办了“微软Cloud OS第二届云创益大赛”.本届大赛历时111天,共吸引了6647位个人组选手回答了70,078道题,59支参赛 ...
- 《java中异常和错误》
异常和错误的区别. 异常: 在Java中程序的错误主要是语法错误和语义错误,一个程序在编译和运行时出现的错误我们统一称之为异常,它是VM(虚拟机)通知你的一种方式,通过这种方式,VM让你知道,你(开发 ...
- CIImage实现滤镜效果
Core Image also provides autoadjustment methods that analyze an image for common deficiencies and re ...
- UVa 1391 Astronauts (2SAT)
题意:给出一些宇航员他们的年龄,x是他们的平均年龄,其中A任务只能给年龄大于等于x的人,B任务只能给小于x的人,C任务没有限制.再给出m对人,他们不能同任务.现在要你输出一组符合要求的任务安排. 思路 ...
- python selenium与自动化
大学是学习过java,但是工作中没用,忘完了,而且哪怕以后有了机会,就是很不愿意去学这个语言,开始喜欢上了c#,但是随着学的升入,感觉.net太庞大了,要学习那么多,总感觉我学这个要做什么,感觉要做的 ...
- 结构及其使用 struct (C#)
首先结构是值类型. 结构是使用 struct 关键字定义的,结构如下: struct 结构名{} 结构概述 结构具有以下特点: 结构是值类型,而类是引用类型. (结构不能包含显式的无参数构造函数) 与 ...
- BackTrack5-r3改源
默认源服务器是国外的,更新起来会很慢,所以要改成国内的. 所需要的文件包地址:http://pan.baidu.com/s/1i3ouc9v(64位更新包)进入BT系统图形模式-将(语言选择器)文件拖 ...
- typeof和instanceof
JavaScript 中 typeof 和 instanceof 常用来判断一个变量是否为空,或者是什么类型的.但它们之间还是有区别的: typeof typeof 是一个一元运算,放在一个运算数之前 ...