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. 如何在微软Windows平台上打造出你的Linux开发环境(转载)

    如何在微软Windows平台上打造出你的Linux开发环境 投递人 itwriter 发布于 2013-12-10 11:18 评论(1) 有348人阅读  原文链接  [收藏]  « » 英文原文: ...

  2. Multiple Database Block Sizes and the Buffer Cache

    In oracle 10g we can have multiple block sizes at the same time. When a tablespace is created we can ...

  3. Linux 挂载

    千万不要挂载到 根目录下 也不要用 umount -fl  会死的 fdisk -l 看 能挂载的是哪个盘 格式化 mkfs.ext4 /dev/vde 创建一个文件 mkdir /testmnt 卸 ...

  4. Linux系统锁定关键文件

    锁定系统关键文件 1.密码.账号文件 chattr +i /etc/passwd /etc/group /etc/shadow /etc/gshadow /etc/inittab 加锁:chattr ...

  5. fiddler post 请求 webapi

    今天小伙伴遇到一个问题,大概就是说用fiddler post 一个参数,但是后台一直无法获取,如下 后来发现请求的条件有问题,而且也很容易忽略,正确如下 content-type的设定为默认值,pos ...

  6. windows server 2016部署服务

          绪论 有时候,如果安装系统数量比较多,而且数量较多,人工使用U盘或者光盘安装,效率较低,通过网络可以批量安装. 还可以做到无人安装. PXE PXE(preboot execute env ...

  7. ORACLE分区表操作

    ORACLE分区表的操作应用 摘要:在大量业务数据处理的项目中,可以考虑使用分区表来提高应用系统的性能并方便数据管理,本文详细介绍了分区表的使用. 在大型的企业应用或企业级的数据库应用中,要处理的数据 ...

  8. nginx alias

    A path to the file is constructed by merely adding a URI to the value of the root directive. If a UR ...

  9. 在web.xml中配置404错误拦截

    <error-page> <error-code>404</error-code> <location>/home.do</location> ...

  10. spring中MessageSource的配置使用方法1[转]

    本文转载仅供自己学习收录,不做任何商业用途,如有需要请访问文章原地址:http://blog.csdn.net/qyf_5445/article/details/8124306 Spring定义了访问 ...