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. eclipse安装Android插件

    1.首先下载Eclipse for android,点击进入.下载这个版本可以省去ADT配置() 2.下载符合你电脑的版本 2.现在Android SDK,地址:http://tools.androi ...

  2. with admin option /with grant option

    1. with admin option是用在系统权限上的,with grant option是用在对象权限上的. SQL> grant create synonym to scott with ...

  3. Azure 镜像市场虚拟机映像制作指南

    本指南为 Azure 镜像市场(以下简称 Azure 镜像市场)独立软件供应商介绍制作虚拟机映像并上传到Azure的主要过程. 制作虚拟机映像有两种方式.一种是直接在Azure上申请相应的操作系统虚拟 ...

  4. 山寨"每日故宫"应用的图层遮罩效果

    山寨"每日故宫"应用的图层遮罩效果 最终效果: 应用中的效果: 素材图片: 源码: // // ViewController.m // 每日故宫 // // Created by ...

  5. 导出Excel 2007 (NPOI)

    今天在导出Excel2007时报了个错,问是否修复,点yes就提示修复正常了,但具体什么原因没说,如图 之前简单的导出代码是这样写的 public static void ExportToWeb(st ...

  6. Http协议浅析

    目录 Http协议浅析 http协议简介 http协议特性 http请求协议与响应协议 请求协议 响应协议 响应状态码 请求URI定位资源 HTTP方法 GET:获取资源 POST:传输实体主体 PU ...

  7. wordpress利用rsync同步备份

    我搭建的wordpress服务器现在使用的系统是opensuse, 服务器上面已做脚本和计划任务将wordpress使用的数据库与web目录每天压缩备份放到 /data/backup目录下 opera ...

  8. matlab用法总结

    1. Matlab怎么判断空矩阵http://www.ilovematlab.cn/thread-48915-1-1.html a=[ ] if isempty(a) 2.matlab寻找多个最大值位 ...

  9. javascript unshift()和shift()

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...

  10. PHP安装posix、pctl扩展

    安装问题 PHP Fatal error: Uncaught Error: Call to undefined function tsingsun\swoole\server\posix_kill() ...