一、vim的下载

Ubuntu系统,输入命令:

sudo apt install vim

Centos系统,输入命令:

yum -y install vim*

然后输入y就行了,不出意外的话,完成之后,vim就已经安装完成了。下面都以Ubuntu为例。

二、vim的基本知识

vim的全局配置一般在/etc/vim/vimrc或者/etc/vimrc,对所有用户生效。

如果只对单次编辑启用某个配置项,可以在命令模式下,先输入一个冒号,再输入配置。举例来说,set number这个配置可以写在vimrc配置文件里面,也可以在命令模式输入。

set number

配置项一般都有"打开"和"关闭"两个设置。"关闭"就是在"打开"前面加上前缀no

set number "打开"
set nonumber "关闭"

上面代码中,双引号表示注释。

查询某个配置项是打开还是关闭,可以在命令模式下,输入该配置,并在后面加上问号,例如:

: set number?

上面的命令会返回number或者nonumber

如果想查看帮助,可以使用help命令,后面跟要查看的命令,例如:

: help number

三、vim的基本配置

1.不与vi兼容(采用vim自己的操作命令)。

set nocompatible

2.打开语法高亮,自动识别代码,使用多种颜色显示。

syntax on

3.在底部显示,当前处于命令模式还是插入模式。

set showmode

4.命令模式下,在底部显示,当前键入的指令。比如,键入的指令是"+y,那么底部就会显示"+,当键入y的时候,操作完成,显示消失。

set showcmd

5.支持使用鼠标。

set mouse=a

6.使用utf-8编码。

set encoding=utf-8

7.启用256色。

set t_Co=256

8.开启文件类型检查,并且载入与该类型对应的缩进规则。比如,如果编辑的是.py文件,vim就是会找Python的缩进规则~/.vim/indent/python.vim

filetype indent on

9.代码缩进,按下回车键后,下一行的缩进会自动跟上一行的缩进保持一致。

set autoindent

10.按照C/C++的风格缩进

set cindent

11.按下Tab键时,vim显示的空格数。

set tabstop=4

12.在文本上按下>>(增加一级缩进)、<<(取消一级缩进)或者==(取消全部缩进)时,每一级的空格字符数。

set shiftwidth=4

13.由于Tab键在不同的编辑器缩进不一致,设置自动将Tab转为空格。

set expandtab

14.Tab转为多少个空格。

set softtabstop=4

15.显示行号。

set number

16.显示光标所在的当前行的行号,其他行都为相对于该行的相对行号。

set relativenumber

17.光标所在的当前行高亮。

set cursorline

18.设置行宽,即一行显示多少个字符。

set textwidth=80

19.自动折行,即太长的行分成几行显示。

set wrap

20.关闭自动折行

set nowrap

21.只有遇到指定的符号(比如空格、连词号和其他标点符号),才发生折行。也就是说,不会在单词内部折行。

set linebreak

22.指定折行处与编辑窗口的右边缘之间空出的字符数。

set wrapmargin=2

23.垂直滚动时,光标距离顶部/底部的位置(单位:行)。

set scrolloff=5

24.水平滚动时,光标距离行首或行尾的位置(单位:字符)。该配置在不折行时比较有用。

set sidescrolloff=15

25.是否显示状态栏。0 表示不显示,1 表示只在多窗口时显示,2 表示显示。

set laststatus=2

26.在状态栏显示光标的当前位置(位于哪一行哪一列)。

set  ruler

27.光标遇到圆括号方括号大括号时,自动高亮对应的另一个圆括号方括号大括号

set showmatch

28.搜索时,高亮显示匹配结果。

set hlsearch

29.进入搜索模式时,每输入一个字符,就自动跳到第一个匹配的结果。

set incsearch

30.搜索时忽略大小写。

set ignorecase

31.如果同时打开了ignorecase,那么对于只有一个大写字母的搜索词,将大小写敏感;其他情况都是大小写不敏感。比如,搜索Test时,将不匹配test;搜索test时,将匹配Test

set smartcase

32.打开英语单词的拼写检查。

set spell spelllang=en_us

33.不创建备份文件。默认情况下,文件保存时,会额外创建一个备份文件,它的文件名是在原文件名的末尾,再添加一个波浪号

set nobackup

34.不创建交换文件。交换文件主要用于系统崩溃时恢复文件,文件名的开头是.、结尾是.swp

set noswapfile

35.保留撤销历史。

set undofile

vim会在编辑时保存操作历史,用来供用户撤消更改。默认情况下,操作记录只在本次编辑时有效,一旦编辑结束、文件关闭,操作历史就消失了。打开这个设置,可以在文件关闭后,操作记录保留在一个文件里面,继续存在。这意味着,重新打开一个文件,可以撤销上一次编辑时的操作。撤消文件是跟原文件保存在一起的隐藏文件,文件名以.un~开头。

36.设置备份文件、交换文件、操作历史文件的保存位置。

set backupdir=~/.vim/.backup//
set directory=~/.vim/.swp//
set undodir=~/.vim/.undo//

结尾的//表示生成的文件名带有绝对路径,路径中用%替换目录分隔符,这样可以防止文件重名。

37.自动切换工作目录。这主要用在一个vim会话之中打开多个文件的情况,默认的工作目录是打开的第一个文件的目录。该配置可以将工作目录自动切换到正在编辑的文件的目录。

lset autochdir

38.出错时,不要发出响声。

set noerrorbells

39.出错时,发出视觉提示,通常是屏幕闪烁。

set visualbell

40.vim需要记住多少次历史操作。

set history=1000

41.打开文件监视。如果在编辑过程中文件发生外部改变(比如被别的编辑器编辑了),就会发出提示。

set autoread

42.如果行尾有多余的空格(包括 Tab 键),该配置将让这些空格显示成可见的小方块。

set listchars=tab:»■,trail:■
set list

43.命令模式下,底部操作指令按下 Tab 键自动补全。第一次按下 Tab,会显示所有匹配的操作指令的清单;第二次按下 Tab,会依次选择各个指令。

set wildmenu
set wildmode=longest:list,full

44.括号的自动匹配

inoremap ' ''<ESC>i
inoremap " ""<ESC>i
inoremap ( ()<ESC>i
inoremap < <><ESC>i
inoremap [ []<ESC>i
inoremap { {}<ESC>i
inoremap {<CR> {<CR>}<ESC>O

常用配置:

syntax on
filetype indent on
set showcmd
set showmatch
set number
set cindent
set tabstop=4
set shiftwidth=4
set expandtab
set softtabstop=4
set cursorline
set hlsearch
set autoread
set wildmenu
set wildmode=longest:list,full
inoremap ' ''<ESC>i
inoremap " ""<ESC>i
inoremap ( ()<ESC>i
inoremap < <><ESC>i
inoremap [ []<ESC>i
inoremap { {}<ESC>i
inoremap {<CR> {<CR>}<ESC>O

四、vim与外部文件的复制粘贴

vim默认的有12个粘贴板,分别是0、1、2、...、 9、a、";用:reg命令可以查看各个粘贴板里的内容。在vim中简单用y命令只是复制到"(双引号)粘贴板里,同样用p命令粘贴的也是这个粘贴板里的内容。

要将vim的内容复制到某个粘贴板,需要先退出编辑模式,再进入命令模式后,选择要复制的内容,然后按"Ny(注意带引号)完成复制,其中N为粘贴板号(注意是按下双引号 + 粘贴板号 + y),例如要把内容复制到粘贴板a,选中内容后按"ay就可以了。

要将vim某个粘贴板里的内容粘贴进来,需要先退出编辑模式,再在命令模式按"Np,其中N为粘贴板号,如上所述,命令"5p会将5号粘贴板里的内容粘贴进来,也可以按"+p将系统全局粘贴板里的内容粘贴进来。

其中,"号粘贴板(临时粘贴板)比较特殊,直接按y就复制到这个粘贴板中了,直接按p就粘贴这个粘贴板中的内容。

+号粘贴板是系统粘贴板,用"+y将内容复制到该粘贴板后可以使用 ctrl+v将其粘贴到其他文档(如firefox、gedit)中,同理,要把在其他地方用ctrl+c或右键复制的内容复制到vim中,需要在正常模式下按"+p

Ubuntu默认vim是不支持从外部文件与vim之间的粘帖复制,可以用命令:reg查看,如果里面有+*粘贴板,就可以进行与外部的复制粘贴的,否则,要实现外部文件与vim之间的复制粘贴,Ubuntu需要安装vim-gnome

sudo apt-get install vim-gnome

安装成功后,利用"+y"+p就可以进行与外部文件的复制粘贴。

Linux下vim的安装及配置的更多相关文章

  1. linux下vim的安装与配置(centos)

    1.vim的安装 #yum search vim   //查看vim相关软件信息 #yum install -y vim*  //在线安装vim 2.vim的配置 (1)~/.viminfo 在vim ...

  2. linux下svn的安装与配置

    ---恢复内容开始--- linux下svn的安装与配置 Linux发行版本:CentOS6.5 1.安装subversion sudo yum -y install subversion 2.创建s ...

  3. linux下redis的安装及配置启动

    linux下redis的安装及配置启动 标签: redisnosql 2014-10-24 14:04 19732人阅读 评论(0) 收藏 举报  分类: 数据与性能(41)  wget http:/ ...

  4. Linux下Qt的安装与配置

    参考资料:http://www.cnblogs.com/emouse/archive/2013/01/28/2880142.html Linux 下编译.安装.配置 QT 下载qt 这里用的是4.7. ...

  5. Linux 下编译、安装、配置 QT

    转自Linux 下编译.安装.配置 QT 注意:编译安装耗时费力,且很容易出错,要不断调整编译参数,不推荐使用,否则这将会是一个纠结痛苦的过程. 打算做嵌入式图像处理,计划方案嵌入式Linux+Ope ...

  6. .Neter玩转Linux系列之六:Linux下MySQL的安装、配置、使用

    一.Linux安装MySQL (1)下载安装包:https://dev.mysql.com/downloads/mysql/ (2)解压并安装 命令:tar zxvf 文件名 解压完成之后,重名一下文 ...

  7. linux下vsftpd的安装及配置使用详细步骤(推荐)

    vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点. vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux.BS ...

  8. 莫小安 Linux下Redis的安装与配置

    转载自--Linux下Redis的安装与配置 redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcached类似,但很大程度补偿了 memcached的不足,它 ...

  9. Linux下的Maven安装与配置

    关于Maven的介绍可以参考:Maven详解 这篇在原理上讲得比较详细,在安装上是windows版本的,这里补上linux下的安装和配置: 1.下载maven安装包 http://maven.apac ...

随机推荐

  1. C#LeetCode刷题之#387-字符串中的第一个唯一字符(First Unique Character in a String)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3939 访问. 给定一个字符串,找到它的第一个不重复的字符,并返回 ...

  2. BLE GAP 协议和 GATT 协议

    BLE GAP 协议和 GATT 协议 最近要打算学习 Blufi 协议进行蓝牙配置,其中必然使用 GAP 协议和 GATT 协议,于是进行重新学习一番. BLE 是一个 Bluetooth SIG ...

  3. MSF常用命令备忘录

    msf下的命令 set session x:设置要攻击的session #监听端口反弹PHP shell use exploit/multi/handler set payload php/meter ...

  4. docker基础入门理解

    本文简单的介绍了一下docker的一些优点,以及使用方法 1. 理解docker 1.1 docker是什么? 1.2 为什么要使用Docker? 2. docker安装 3. docker-容器,镜 ...

  5. 浏览器自动化的一些体会6 增强的webBrowser控件

    这里谈两点 1.支持代理服务器切换 一种方法是修改注册表,不是太好的做法,而且,只能改全局设置,不能改局部(比如只让当前的webBrowser控件使用代理,而其他应用不用代理) 另外一个较好的方法,示 ...

  6. SpringBoot 集成SpringSecurity JWT

    目录 1. 简介 1.1 SpringSecurity 1.2 OAuth2 1.3 JWT 2. SpringBoot 集成 SpringSecurity 2.1 导入Spring Security ...

  7. Java 中几种常用设计模式

    Java 中一般认为有23种设计模式,当然暂时不需要所有的都会,但是其中常见的几种设计模式应该去掌握. 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式.抽象工厂模式.单例模式.建造者模 ...

  8. Play it again: reactivation of waking experience and memory

    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! Trends in Neurosciences, no. 5 (2010): 220-229 Abstract 回合空间记忆均涉及海马体神 ...

  9. pandas 数据类型转换及描述统计

    处理数据的时候往往需要对原始数据进行类型转换和预览等操作,下面介绍常用的处理预览和数据转换方法 预览:例: import pandas as pdsec_weather = pd.read_table ...

  10. 区块链入门到实战(29)之Solidity – 环境搭建

    在线开发环境Remix(推荐) 学习Solidity推荐使用在线开发环境Remix,本教程的例子将使用Remix开发运行. 安装本地编译器 安装 nodejs / npm node官方网站下载node ...