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. Django 模板语言 标签

    前言:django的模板语法基本和flask的jinja2基本一样.下面比较一下两个模板语法的区别. ------深度变量的查找(万能的句点号) 在 Django 模板中遍历复杂数据结构的关键是句点字 ...

  2. Centos7安装最新版本的docker

    centos7 安装docker-ce ,最新版本docker,docker阿里云加速docker-ce是指docker的社区版 卸载老版本的 docker 及其相关依赖sudo yum remove ...

  3. leetCode题解之Number of Lines To Write String

    1.题目描述 2.分析 使用一个map将字母和数字对应起来,方便后续使用. 3.代码 vector<int> numberOfLines(vector<int>& wi ...

  4. win10下vs2015配置Opencv3.1.0过程详解(转)

    下载安装Opencv3.1.0 下载Opencv3.1.0,进入官网,点击opencv for windows即可下载.  点击运行下载好的文件.实际上,opencv的安装程序就是解压缩文件,个人因为 ...

  5. Oracle 处理坏块

    本文主要介绍如何去处理在Oracle数据库中出现坏块的问题,对于坏块产生在不同的对象上,处理的方法会有所不同,本文将大致对这些方法做一些介绍.因为数据库运行时间长了,由于硬件设备的老化,出现坏块的几率 ...

  6. 【Kettle】4、SQL SERVER到SQL SERVER数据转换抽取实例

    1.系统版本信息 System:Windows旗舰版 Service Pack1 Kettle版本:6.1.0.1-196 JDK版本:1.8.0_72 2.连接数据库 本次实例连接数据库时使用全局变 ...

  7. [翻译] AFSoundManager

    AFSoundManager iOS audio playing (both local and streaming) and recording made easy through a comple ...

  8. 《C++ Primer Plus》读书笔记之六—函数探幽

    第八章 函数探幽 1.常规函数与内联函数的主要区别不在于编写方式,而在于C++编译器如何将它们组合到程序中. 2.常规函数调用使程序跳到另外一个地址(函数地址),并在函数结束时返回,更详细的的实现过程 ...

  9. ZT 内地20年经典电视剧大全

    内地20年经典电视剧大全     片尾曲:<故事就是故事> 演唱:戴娆 我听爷爷讲了一个故事 故事里的事是那昨天的事 故事里有好人也有坏人 故事里有好事也有坏事 故事里有多少是是非非 故事 ...

  10. 12-5 张雨RTCM3数据解码解不出的原因

    数据大小:75kB 时间12-4 原因:二进制数据乱码,未通过电文头检验 2018-12-10 08:44:05 张雨RTCM32-MSM4无法固定,连差分都没有