当前位置: 首页 > 编程日记 > 正文

CentOS 6.5 下Vim 配置图解

分享个CentOS 6.5 下Vim 配置图文详解,希望对大家有所帮助。

1. 登录并进入你常用的用户名下,查看其主目录

命令:

# su xxx

$ cd xxx

$ ls -a

2.查看并建立目录和文件

  • 首先看你的主目录~/ 下是否有.vimrc文件,没有就输入指令 $ touch .vimrc 新建该文件
  • 在主目录下新建目录 .vim,并进入.vim目录,建立plugin、doc、syntax三个目录

             命令: $ mkdir .vim

                 $ cd .vim

         $ mkdir plugin doc syntax

3. 简单地为.vimrc文件写入内容,设置vim显示格式

输入命令:$ wget  http://www.linuxidc.com/files/2016/05/vim/vimrc.zip

     $ unzip  vimrc.zip  -d  ~/

再次打开.c 或.cpp文件会有很多不同,例如:行号,高亮...

这里作些摘录:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
" 显示相关
syntax on
set cul "高亮光标所在行
set cuc
set shortmess=atI " 启动的时候不显示那个援助乌干达儿童的提示
set go= " 不要图形按钮
"color desert " 设置背景主题
color ron " 设置背景主题
"color torte " 设置背景主题<br>set cursorline "高亮当前行<br>set cursorcolumn "高亮当前列
set ruler " 显示标尺
set showcmd " 输入的命令显示出来,看的清楚些
set scrolloff=3 " 光标移动到buffer的顶部和底部时保持3行距离
set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")} "状态行显示的内容
set laststatus=2 " 启动显示状态行(1),总是显示状态行(2)
"set foldenable " 允许折叠
set nocompatible "去掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限
" 自动缩进
set autoindent
set cindent
" Tab键的宽度
set tabstop=4
" 统一缩进为4
set softtabstop=4
set shiftwidth=4
" 使用空格代替制表符
set expandtab
" 在行和段开始处使用制表符
set smarttab
" 显示行号
set number
" 历史记录数
set history=1000
"搜索逐字符高亮
set hlsearch
set incsearch
"语言设置
set langmenu=zh_CN.UTF-8
set helplang=cn
" 总是显示状态行
set cmdheight=2
" 侦测文件类型
filetype on
" 载入文件类型插件
filetype plugin on
" 为特定文件类型载入相关缩进文件
filetype indent on
" 保存全局变量
set viminfo+=!
" 带有如下符号的单词不要被换行分割
set iskeyword+=_,$,@,%,#,-
"将tab替换为空格
nmap tt :%s/\t/ /g<CR>
 
"自动补全
:inoremap ( ()<ESC>i
:inoremap ) <c-r>=ClosePair(')')<CR>
:inoremap { {<CR>}<ESC>O
:inoremap } <c-r>=ClosePair('}')<CR>
:inoremap [ []<ESC>i
:inoremap ] <c-r>=ClosePair(']')<CR>
:inoremap " ""<ESC>i
:inoremap ' ''<ESC>i
function! ClosePair(char)
    if getline('.')[col('.') - 1] == a:char
        return "\<Right>"
    else
        return a:char
    endif
endfunction
filetype plugin indent on
"打开文件类型检测, 加了这句才可以用智能补全
set completeopt=longest,menu

4. 下载并安装TagList插件

点击下载插件:http://www.vim.org/scripts/script.php?script_id=273
下载较新版本的taglist压缩包 ,解压完成后,将解压出来的doc的内容放到~/.vim/doc, 将解压出来的plugin下的内容拷贝到~/.vim/plugin。
 
完成后打开.vimrc 并添加如下三条指令:
?
1
2
3
let Tlist_Show_One_File=1
let Tlist_Exit_OnlyWindow=1
let Tlist_Use_Right_Window=1

打开.c或.cpp文件进入vim后,进入底行模式并输入命令"Tlist",就可以打开(或者关闭)taglist窗口

 

5.文件浏览器和窗口管理器 -- 插件: WinManager
点击下载插件:http://www.vim.org/scripts/script.php?script_id=95
建议下载较新版本的安装包,解压。
将解压出来的doc的内容放到~/.vim/doc, 将解压出来的plugin下的内容拷贝到~/.vim/plugin
 
完成后在.vimrc 中添加下面两行指令:
1
2
let g:winManagerWindowLayout='FileExplorer|TagList'
nmap wm :WMToggle

打开.c 或.cpp 文件,在normal状态下键入wm,效果图:

6.建立源码索引——插件:Ctags

点击下载插件:http://ctags.sourceforge.net

下载好之后,解压并安装:

命令:

1
2
3
4
5
6
tar -xzvf ctags-5.6.tar.gz
cd ctags-5.6 
./configure
make
su root
make install 

完成之后就可以建立源码索引了,进入主目录下的usr目录,在终端中注入命令:ctags -R

打开.vimrc文件,加入以下命令:

1
2
3
4
5
"--ctags setting--
map <F5> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR><CR> :TlistUpdate<CR>
imap <F5> <ESC>:!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR><CR> :TlistUpdate<CR>
set tags=tags
set tags+=./tags <br>set tags+=/usr/tags

打开.c 或.cpp 文件后,光标选中函数名,直接键入Ctrl + w + ] 就可以跳到库函数的定义处,再直接键入 Ctrl + o 就可以退出调用查看

效果图:

Vim配置的插件还用很多,还需要大家多多查找资料继续进行配置,多多练习并熟悉其中的快捷键,好的Vim配置和熟练的应用可以让我们事半功倍~

相关文章:

【ACM】杭电OJ 1106 函数atoi

函数atoi是把字符串转化成整数的函数&#xff0c;头文件为 #include "stdlib.h" e.g. 运行环境&#xff1a;Dev-C 5.11 杭电1106 调用了sort函数&#xff0c;运行的时间相对长一些。 #include "stdio.h" #include "string.h" #include "…

docker-dockerfile

docker文件存储驱动dockerfile镜像构建指令示例dockekr镜像是只读的&#xff0c;对容器修改的内容&#xff0c;一旦容器退出&#xff0c;所有的内容将会丢失。镜像是分层的&#xff0c;最上的一层为读写层&#xff08;写时复制和用时分配&#xff09; 文件系统存储驱动&#xf…

proc/[pid]/maps 文件解释

proc/[pid]/maps 文件解释 查看进程的虚拟地址空间是如何使用的。 该文件有6列&#xff0c;分别为&#xff1a; 地址&#xff1a;库在进程里地址范围 权限&#xff1a;虚拟内存的权限&#xff0c;r读&#xff0c;w写,x,s共享,p私有&#xff1b; 偏移量&#xff1a;库在进程里…

【ACM】UVa 1339

【题目】&#xff1a;给定两个长度相同且不超过100的字符串&#xff0c;判断是否能把其中一个字符串的各个字母重排&#xff0c;然后对26个字母做一一映射&#xff0c;使得两个字符串相同。输入两个字符串&#xff0c;输出“YES”或者“NO”。 【分析】&#xff1a;既然字母可…

springBoot PUT请求接收不了参数的解决办法

2019独角兽企业重金招聘Python工程师标准>>> 做项目的时候&#xff0c;想把接口写标准点&#xff0c;于是在更新内容的时候采用put提交内容&#xff0c;但是提交内容时总是获取不到参数&#xff0c;总是选择参数为null。 首先贴出我的put的方法控制器的代码 和之前的…

七牛云内容审核服务被选为「上海首批人工智能创新产品」

近日&#xff0c;上海人工智能应用场景建设实施计划正式发布&#xff0c;这是全国首次面向人工智能应用场景需求的征集计划。上海 10 大人工智能应用场景、19 个具体点位需求和 60 个人工智能创新产品集中首发&#xff0c;其中&#xff0c;上海七牛信息技术有限公司&#xff08…

linux动态库命名规则

说道“动态库版本兼容”&#xff0c;很多人头脑中首先蹦出的就是“Dll Hell”。啊&#xff0c;这曾经让人头疼的难题。时至今日&#xff0c;这个难题已经很好地解决了。 在进一步讨论之前来思考一个问题&#xff1a;Linux下为什么没有让人头痛的“DllHell”&#xff1f; 回答…

如何在同一系统里同时启动多个Tomcat

需要在同一系统里启动多个tomcat,应该怎么处理? tomcat是个服务程序&#xff0c;需要占用几个通讯端口&#xff0c;所以默认情况是不能启动多个tomcat,如果要启动多个tomcat,需要修改配置文件&#xff0c;通过在配置文件设置不同的通讯端口就可以做到.文件 %TOMCAT_HOME%/conf…

【ACM】Uva 455

【题目】&#xff1a;如果一个字符串可以由某个长度为k的字符串重复多次得到&#xff0c;则称该串以k为周期。输入一个长度不超过80的字符串&#xff0c;输出其最小正周期。 注意以下几点&#xff1a; 1、它的最小正周期一定可以被它的长度整除。 2第一个大循环下 i 可以等于…

前端自动化构建工具webpack (二)之css和插件加载总结

1. webpack只识别js文件&#xff0c;其他文件都需要转换成js文件。所有文件都是模块; 2. css解析 css需要css-loader ---》style-loader -----》less-loader less文件还需要less-loader &#xff08;注意书写顺序&#xff09; 3. plugins&#xff1a;他是一个数组&#…

使用command对象操作数据库

1.Command对象查询数据库 protected void Button1_Click(object sender, EventArgs e){//读取web.config节点配置string strcon ConfigurationManager.ConnectionStrings["testjm"].ConnectionString;//实例化sqlConnection对象SqlConnection con new SqlConnectio…

浅析C语言之uint8_t / uint16_t / uint32_t /uint64_t

一、C语言基本数据类型回顾 在C语言中有6种基本数据类型&#xff1a;short、int、long、float、double、char 1、数值类型 1&#xff09;整型&#xff1a;short、int、long 2&#xff09;浮点型&#xff1a;float、double 2、字符类型&#xff1a;char 二、typedef回顾 …

【ACM】UVa 489 刽子手游戏(自顶向下)

【题目】 Hangman Judge是一个猜英文单字的小游戏&#xff08;在电子字典中常会看到&#xff09;&#xff0c;游戏规则如下&#xff1a; 1、答案单字写在纸上&#xff08;每个字元一张纸&#xff09;&#xff0c;并且被盖起来&#xff0c;玩家每次猜一个英文字元&#xff08;le…

ssh远程执行多个命令

shell远程执行&#xff1a; 经常需要远程到其他节点上执行一些shell命令&#xff0c;如果分别ssh到每台主机上再去执行很麻烦&#xff0c;因此能有个集中管理的方式就好了。一下介绍两种shell命令远程执行的方法。 前提条件&#xff1a; 配置ssh免密码登陆 对于简单的命令&am…

【ACM】魔方矩阵

输出魔方矩阵 1、将1放在第一行中间一列&#xff1b; 2、从2开始直到nn止各数依次按下列规则存放&#xff1b;每一个数存放的行比前一个数的行数减1&#xff0c;列数加1&#xff1b; 3、如果上一个数的行数为1&#xff0c;则下一个数的行数为n&#xff08;指最下一行&#x…

iOS 秒数转换成时间,时,分,秒

//转换成时分秒 - (NSString *)timeFormatted:(int)totalSeconds{ int seconds totalSeconds % 60; int minutes (totalSeconds / 60) % 60; int hours totalSeconds / 3600; return [NSString stringWithFormat:"%02d:%02d:%02d",hours, minutes,…

charles和Fiddler感觉哪个更好用

1.fiddler还可以抓HTTPS的包&#xff0c;解析出来都可以2.charles更直观&#xff0c;可能是我先用charles的缘故。charles遍历一个站点&#xff0c;可以右键另存&#xff0c;保存全站文件资源。扒站首选&#xff0c; charles也可以抓https&#xff0c;我改游戏也是抓的https包

systemd用法

一、开机启动 对于那些支持 Systemd 的软件&#xff0c;安装的时候&#xff0c;会自动在/usr/lib/systemd/system目录添加一个配置文件。 如果你想让该软件开机启动&#xff0c;就执行下面的命令&#xff08;以httpd.service为例&#xff09;。 $ sudo systemctl enable http…

C#实现php的hash_hmac函数

from:http://blog.csdn.net/ciaos/article/details/12618487 PHP代码示例如下<?php $res1 hash_hmac("sha1","signatureString", "secret");echo $res1."\n";//ee1b654aa861c41fd5813dc365ef106c9801f8f6echo base64_encode($res…

【ACM】杭电OJ 2015

注意输出格式&#xff01;&#xff01;&#xff01;&#xff01; #include <iostream> #include <cstring> using namespace std; int main () {int m,n,i,sum,flag;while(cin>>n>>m){sum0;flag0;for(i1;i<n;i){sum(2*i);flag;if(flagm){sum/m;cou…

AGC002[BCDEF]题解

F是计数于是就做&#xff08;kan ti jie&#xff09;了 B - Box and Ball 模拟一下 每个盒子开一个d表示有的球数 可能存在红球的打个标记 传递一下就行了 #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #define inf 2002…

物联网11种通信协议

今天的网络通信技术也是日新月异&#xff0c;有众所周知的WIFI、Bluetooth、Zigbee、2G、3G、4G蜂窝网络&#xff0c;也有新兴的LiFi、AirGig、量子通信等&#xff0c;更有物联网产业爆发前夜&#xff0c;市场衍生出来的一些比较有前景的通信技术&#xff0c;如以窄带物联网NB&…

php 数组的使用

2019独角兽企业重金招聘Python工程师标准>>> 一、字符串和对象&#xff0c;数组之间的相互转换 public function index(){$product array();$product["name"] "apple";$product["price"] 6000;$products array();$products[] $pr…

【ACM】图像旋转

逆时针 //图像旋转 #include <iostream> #include <algorithm> #include <cstring> #include <cstdio> using namespace std; int main () {int a[105][105];int m,n,i,j;while(scanf("%d%d",&n,&m)!EOF)//n行m列 {for(i0;i<n;i…

do一下来了一个redux

导语 一开看redux的时候还是比较蒙的&#xff0c;感觉比较绕&#xff0c;但是又好像是那么回事&#xff0c;接触一个新概念的时候可能都是如此&#xff0c;多去接触就熟悉了&#xff0c;今天就来分享下redux的三大核心为什么就能如此神奇的施展魔法&#xff0c;干撸完源码&…

JavaMail API 概述

JavaMail API提供了一种与平台无关和协议独立的框架来构建邮件和消息应用程序。 JavaMail API提供了一组抽象类定义构成一个邮件系统的对象。它是阅读&#xff0c;撰写和发送电子信息的可选包&#xff08;标准扩展&#xff09;。 JavaMail 规定&#xff0c;用于构造一个接口&am…

利用c语言结构体和union实现类似c++的public,private的实现

最近在看strongswan源代码&#xff0c;看到strongswan的代码框架很有意思&#xff0c;用C语言实现类的思想。当我们编写完一个模块&#xff0c;我们需要提供的是H的文件给其他模块使用&#xff0c;我们希望H文件中就只能包含一些公有函数&#xff0c;和一些类型的申明&#xff…

【ACM】连续出现的字符

【描述】给定一个字符串&#xff0c;在字符串中找到第一个连续出现k次的字符 【输入】第一行包含一个正整数k&#xff0c;表示至少需要连续出现的次数。1<k<1000。第二行包含需要查找的字符串。字符串的长度在1到1000之间&#xff0c;且不包含任何空白字符。 【输出】若…

Django使用数据库(Mariadb/Mysql)

Django默认使用SQLite作为数据库&#xff0c;配置文件在settings.py 让我们来看一下 """ Django settings for test1 project.Generated by django-admin startproject using Django 2.1.4.For more information on this file, see https://docs.djangoproject.…

I2C和SPI总线优缺点对比

IIC vs SPI现今&#xff0c;在低端数字通信应用领域&#xff0c;我们随处可见IIC (Inter-Integrated Circuit) 和 SPI (Serial Peripheral Interface)的身影。原因是这两种通信协议非常适合近距离低速芯片间通信。Philips&#xff08;for IIC&#xff09;和Motorola&#xff08…