1. 概述

  1. vim 是强大的文本编辑器
  2. 使用 vim 前, 需要做些简单配置, 来让 vim 更符合自己的操作习惯
  3. 想看配置项的, 直接到最后

2. 准备

  1. 安装 vim

  2. 配置文件
    1. 位置
      /etc/vimrc
  3. 格式
    1. 设置没有值的属性
      set <attrName>
    2. 设置有值的属性
      set <attrName>=<attrValue>
    3. " 的后面开始是注释
    4. 例子
      set ai                    " 开启自动缩进, 其中 ai 是 autoindent 的缩写; 本人不建议使用缩写, 知道一个名字的由来, 以及这背后的一些故事, 对你理解一个概念很重要;
      set history=50 " 默认保留 50 条历史

3. 配置

  1. tab

    1. 概述

      1. vim 里 tab 相关的设置
    2. 背景

      1. 编程开发中, 通常用 tab 来做缩进, 相对空格键更加方便
      2. tab 在显示的时候, 会换算为 若干个空格 来显示, tab 输入的时候, 有时也会用 若干个空格 来代替
      3. 开发者通常会使用多个不同的 平台, 文本编辑器, 或者 IDE 来编辑文本
      4. 这样就可能出现 同样的代码, 在不同环境下显示的效果不同
      5. 这样的话, 可能会出现一些不太好的情况, 轻则看起来别扭, 重则破坏缩进, 影响某些程序的运行(没错, 说的就是你, python)
    3. 相关设置项

      1. tabstop

        1. 这是一个有值的属性
        2. 表示 一个 tab 对应的 显示空格长度, 只与显示相关
          1. 也就是说, 如果 没有tab 的话, 这个选项就没啥用了...
        3. 默认值是 8
        4. 感兴趣的同学, 可以在 ruler 打开的情况下, 比较 tabstop 不同时, tab 的占位表现
      2. expandtab
        1. 这是个没有值的属性
        2. 如果设定, 则在 insert 模式下, 输入 tab 会转换为 softtabstop 个空格
        3. 默认值是 noexpandtab
      3. shiftwidth
        1. 这是一个有值的属性
        2. 表示 v 模式下, 一个 < 或者 > 对应的空格长度
        3. 默认值是 8, 应该和某个属性关联, 这个有待确认
      4. softtabstop
        1. 这是一个有值的属性
        2. noexpandtab 情况下
          1. softtabstop = 4, tabstop = 8, 按一次 tab, 会出现 4 个空格, 按 2 次 tab, 会出现一个 tab
          2. softtabstop = 8, tabstop = 8, 按一次 tab, 会出现 1 个 tab
          3. softtabstop = 16, tabstop = 8, 按一次 tab 会出现 2 个 tab
          4. 这些可以在 insert 模式下, 输入 tab, 观察 ruler 以及 按 左右键 观测得到
        3. expandtab 情况下
          1. 按一次 tab, 出现 softtabstop 个空格
          2. 如果打开文件里存在 tab, 那显示还是按 tab 来, 长度是 tabstop
        4. 自动换行也会受这个属性的影响

4. 其他选项

  1. 概述

    1. 常用的一些选项
  2. 选项

    1. autoindent

      1. 自动换行
      2. 默认不换行
    2. number
      1. 显示行号
      2. 默认不显示
    3. ruler
      1. 会在 右下角 显示 光标的位置

        1. 包括行, 列, 以及当前页 在整体文本中 的位置
      2. 默认显示

5. 有些问题

  1. 关于删除

    1. 开启 expandtab时, 输入 4 个空格, 删除完需要删除 4 次; 输入 1 个 tab, 删除完只需要 1 次; 这个有点想不通是如何区分的
  2. 关于 tabstop 和 softtabstop
    1. 什么样的人, 在什么场景下, 会把这俩设置成不一样的, 感觉使用起来, 很别扭啊...

6. 配置

" 这些是我自己加的配置项
" vim 的配置项如果出现冲突, 后面的会覆盖前面的
set tabstop=4
set expandtab
set shiftwidth=4
set softtabstop=4 set autoindent
set number
set ruler

ps

  1. ref

    1. Vim Tab使用技巧

      1. 这位老兄, 也对 tab 相关的东西做了一些总结, 感觉理解的比我透彻

VIM - tab 相关的简单配置的更多相关文章

  1. Ubuntu环境下gedit以及vim的一些个简单配置

    Gedit的配置: 参见 http://www.cnblogs.com/csulennon/p/4198054.html Gedit插件安装 Gedit快捷键 参见我的博客 添加快捷键 Ctrl + ...

  2. Linux中vim的简单配置

    本文主要分享Linux中vim的简单配置 ★配置文件的位置     在目录/etc.下面,有个名为vimrc的文件,这就是系统中公共的vim配置文件,对所有用户都开放.而在每个用户的主目录下,都可以自 ...

  3. CCNA网络工程师学习进程(6)vlan相关协议的配置与路由器简单配置介绍

        前面已经介绍了大部分与vlan技术相关的交换机的协议的配置,更深层次的还有STP协议和以太网端口聚合技术,接着还会简单介绍一下路由器的基本应用.     (1)STP(Spanning-tre ...

  4. 手机端rem简单配置相关

    手机端rem简单配置相关 1 <!DOCTYPE html> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 ...

  5. Linux下Openfire相关安装和配置

    记录下来,方便下次再用时从头查找资料 小京东ecshop中的通讯有用到openfire,Window下配置安装很简单,直接下载exe文件安装就行,而linux下要麻烦一点.安装后的配置下面会细说: 一 ...

  6. vim学习、各类插件配置与安装

    vim学习.各类插件配置与安装 vim 插件 配置 1. vim学习 vim基础学习:根据网上流行基础文章<简明Vim练级攻略>,进阶书籍<vim实用技巧>.注:进阶书籍可以在 ...

  7. 快速掌握Nginx(一) —— 安装Nginx和简单配置虚拟主机

    Nginx安装和简单配置虚拟主机 1 Nginx简介 Nginx是近几年最火热的http.反向代理服务器,百度阿里等互联网公司也都在使用Nginx,它也可以用作邮件代理服务器.TCP/UDP代理服务器 ...

  8. dubbo 图片服务器(FastDFS) redis solr ActiveMQ等简单配置使用

    一.dubbo 项目基于soa的架构,表现层和服务层是不同的工程.所以要实现商品列表查询需要两个系统之间进行通信. 1.1如何实现远程通信? 1.Webservice:效率不高基于soap协议.项目中 ...

  9. centos6和centos7的区别和常用的简单配置优化

    - 本节主要介绍centos6和centos7的区别和常用的简单配置优化:- 第一部分: - 1.对比文件系统 - 2.对比防火墙,内核版本,默认数据库 - 3.对比时间同步,修改时区,修改语言 - ...

随机推荐

  1. 单机安装hive和presto

    问题: 公司最近在搞presto,主要是分析一下presto和hive的查询大数据量的性能对比: 我先把我的对比图拿出来(50条数据左右)针对同一条sql(select * from employee ...

  2. linux(centos7)下SVN服务器搭建手札

    linux(centos)下SVN服务器如何搭建?说到SVN服务器,想必大家都知道,可以是在LINUX下如何搭建SVN服务器呢?那么今天给大家分享一下linux(centos)搭建SVN服务器的思路! ...

  3. oracle数据泵备份(Expdp命令)

    Oracle备份方式主要分为数据泵导出备份.热备份与冷备份三种,今天首先来实践一下数据泵备份与还原.数据泵导出/导入属于逻辑备份,热备份与冷备份都属于物理备份.oracle10g开始推出了数据泵(ex ...

  4. sql server 查询ntext字段长度

    DATALENGTH 返回任何表达式所占用的字节数. 语法 DATALENGTH ( expression ) 参数 expression 任何类型的表达式. 返回类型 int 注释 DATALENG ...

  5. python下载指定的版本包

    首先我们很多时候在执行pip的时候是不行的  有时候很难成功,这个时候我们就要想其他的版本了 一.是不是这个包需要指定版本, 比如python2的和mysql链接的是,而python3则是mysqlc ...

  6. Fuckey V1.0 Beta版发布!!!

    Fuckey,以前叫FullNexus4,只因为当时想做一个软件给自己的Nexus 4,方便方便一下,不过这名字感觉太局限了,毕竟很多朋友不是使用的Nexus 4的手机,但却还是使用了FullNexu ...

  7. iOS设计模式 - 访问者

    iOS设计模式 - 访问者 原理图 说明 表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变各元素类的前提下定义作用于这些元素的新操作. 1.Visitor 抽象访问者角色,为该对象结构中具 ...

  8. django使用LDAP验证

    1.安装Python-LDAP(python_ldap-2.4.25-cp27-none-win_amd64.whl)pip install python_ldap-2.4.25-cp27-none- ...

  9. 【matlab】 幂法 求解最大特征值

    一. 算法: 1.输入矩阵A,初始向量x误差限ep,最大迭代次数N 2.置 k = 1, m1 = 0; 3.求Xr-> norm(x)   abs(Xr)=max[Xi] 1<=i< ...

  10. 解决Failed to load the JNI shared library xxx/xxx/jvm.dll 错误

    原因:jdk发生变化(新装了32位jdk),eclipse在启动时使用了 系统环境变量中的jdk路径(32位). 解决:只要把旧的64位的jre路径指定给eclipse启动文件即可. 在eclipse ...