VIM - tab 相关的简单配置
1. 概述
- vim 是强大的文本编辑器
- 使用 vim 前, 需要做些简单配置, 来让 vim 更符合自己的操作习惯
- 想看配置项的, 直接到最后
2. 准备
- 安装 vim
- 略
- 配置文件
- 位置
/etc/vimrc
- 位置
- 格式
- 设置没有值的属性
set <attrName>
- 设置有值的属性
set <attrName>=<attrValue>
- " 的后面开始是注释
- 例子
set ai " 开启自动缩进, 其中 ai 是 autoindent 的缩写; 本人不建议使用缩写, 知道一个名字的由来, 以及这背后的一些故事, 对你理解一个概念很重要;
set history=50 " 默认保留 50 条历史
- 设置没有值的属性
3. 配置
- tab
概述
- vim 里 tab 相关的设置
背景
- 编程开发中, 通常用 tab 来做缩进, 相对空格键更加方便
- tab 在显示的时候, 会换算为 若干个空格 来显示, tab 输入的时候, 有时也会用 若干个空格 来代替
- 开发者通常会使用多个不同的 平台, 文本编辑器, 或者 IDE 来编辑文本
- 这样就可能出现 同样的代码, 在不同环境下显示的效果不同
- 这样的话, 可能会出现一些不太好的情况, 轻则看起来别扭, 重则破坏缩进, 影响某些程序的运行(没错, 说的就是你, python)
相关设置项
- tabstop
- 这是一个有值的属性
- 表示 一个 tab 对应的 显示空格长度, 只与显示相关
- 也就是说, 如果 没有tab 的话, 这个选项就没啥用了...
- 默认值是 8
- 感兴趣的同学, 可以在 ruler 打开的情况下, 比较 tabstop 不同时, tab 的占位表现
- expandtab
- 这是个没有值的属性
- 如果设定, 则在 insert 模式下, 输入 tab 会转换为 softtabstop 个空格
- 默认值是 noexpandtab
- shiftwidth
- 这是一个有值的属性
- 表示 v 模式下, 一个 < 或者 > 对应的空格长度
- 默认值是 8, 应该和某个属性关联, 这个有待确认
- softtabstop
- 这是一个有值的属性
- noexpandtab 情况下
- softtabstop = 4, tabstop = 8, 按一次 tab, 会出现 4 个空格, 按 2 次 tab, 会出现一个 tab
- softtabstop = 8, tabstop = 8, 按一次 tab, 会出现 1 个 tab
- softtabstop = 16, tabstop = 8, 按一次 tab 会出现 2 个 tab
- 这些可以在 insert 模式下, 输入 tab, 观察 ruler 以及 按 左右键 观测得到
- expandtab 情况下
- 按一次 tab, 出现 softtabstop 个空格
- 如果打开文件里存在 tab, 那显示还是按 tab 来, 长度是 tabstop
- 自动换行也会受这个属性的影响
- tabstop
4. 其他选项
概述
- 常用的一些选项
选项
- autoindent
- 自动换行
- 默认不换行
- number
- 显示行号
- 默认不显示
- ruler
- 会在 右下角 显示 光标的位置
- 包括行, 列, 以及当前页 在整体文本中 的位置
- 默认显示
- 会在 右下角 显示 光标的位置
- autoindent
5. 有些问题
- 关于删除
- 开启 expandtab时, 输入 4 个空格, 删除完需要删除 4 次; 输入 1 个 tab, 删除完只需要 1 次; 这个有点想不通是如何区分的
- 关于 tabstop 和 softtabstop
- 什么样的人, 在什么场景下, 会把这俩设置成不一样的, 感觉使用起来, 很别扭啊...
6. 配置
" 这些是我自己加的配置项
" vim 的配置项如果出现冲突, 后面的会覆盖前面的
set tabstop=4
set expandtab
set shiftwidth=4
set softtabstop=4
set autoindent
set number
set ruler
ps
- ref
- Vim Tab使用技巧
- 这位老兄, 也对 tab 相关的东西做了一些总结, 感觉理解的比我透彻
- Vim Tab使用技巧
VIM - tab 相关的简单配置的更多相关文章
- Ubuntu环境下gedit以及vim的一些个简单配置
Gedit的配置: 参见 http://www.cnblogs.com/csulennon/p/4198054.html Gedit插件安装 Gedit快捷键 参见我的博客 添加快捷键 Ctrl + ...
- Linux中vim的简单配置
本文主要分享Linux中vim的简单配置 ★配置文件的位置 在目录/etc.下面,有个名为vimrc的文件,这就是系统中公共的vim配置文件,对所有用户都开放.而在每个用户的主目录下,都可以自 ...
- CCNA网络工程师学习进程(6)vlan相关协议的配置与路由器简单配置介绍
前面已经介绍了大部分与vlan技术相关的交换机的协议的配置,更深层次的还有STP协议和以太网端口聚合技术,接着还会简单介绍一下路由器的基本应用. (1)STP(Spanning-tre ...
- 手机端rem简单配置相关
手机端rem简单配置相关 1 <!DOCTYPE html> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 ...
- Linux下Openfire相关安装和配置
记录下来,方便下次再用时从头查找资料 小京东ecshop中的通讯有用到openfire,Window下配置安装很简单,直接下载exe文件安装就行,而linux下要麻烦一点.安装后的配置下面会细说: 一 ...
- vim学习、各类插件配置与安装
vim学习.各类插件配置与安装 vim 插件 配置 1. vim学习 vim基础学习:根据网上流行基础文章<简明Vim练级攻略>,进阶书籍<vim实用技巧>.注:进阶书籍可以在 ...
- 快速掌握Nginx(一) —— 安装Nginx和简单配置虚拟主机
Nginx安装和简单配置虚拟主机 1 Nginx简介 Nginx是近几年最火热的http.反向代理服务器,百度阿里等互联网公司也都在使用Nginx,它也可以用作邮件代理服务器.TCP/UDP代理服务器 ...
- dubbo 图片服务器(FastDFS) redis solr ActiveMQ等简单配置使用
一.dubbo 项目基于soa的架构,表现层和服务层是不同的工程.所以要实现商品列表查询需要两个系统之间进行通信. 1.1如何实现远程通信? 1.Webservice:效率不高基于soap协议.项目中 ...
- centos6和centos7的区别和常用的简单配置优化
- 本节主要介绍centos6和centos7的区别和常用的简单配置优化:- 第一部分: - 1.对比文件系统 - 2.对比防火墙,内核版本,默认数据库 - 3.对比时间同步,修改时区,修改语言 - ...
随机推荐
- pycharm安装激活及简单设置
(1)在激活界面的License server输入:http://idea.liyang.io/:或者:点击help→Register→License sever ,输入http://idea.liy ...
- Oracle EBS 获取完全的值集信息
SELECT fvs1.flex_value_set_name, fvs1.description, decode(upper(fvs1.longlist_flag), 'N', '值列表', 'Y' ...
- jQuery1.7版本之后的on方法
之前就一直受这个问题的困扰,在jQuery1.7版本之后添加了on方法,之前就了解过,其优越性高于 live(),bind(),delegate()等方法,在此之前项目中想用这个来测试结果发现,居然动 ...
- MySQL学习分享--Thread pool实现
基于<MySQL学习分享--Thread pool>对Thread pool架构设计的详细了解,本文主要对Thread pool的实现进行分析,并根据Mariadb和Percona提供的开 ...
- SQL Server 常用数据类型
char: 固定长度,存储ANSI字符,不足的补英文半角空格. varchar: 可变长度,存储ANSI字符,根据数据长度自动变化. nchar: 固定长度存储Unicode字符,汉字英文 ...
- POST请求的forHTTPHeaderField
POST请求的forHTTPHeaderField 也许你的iOS项目中使用了AFNetworking2.0,或者是ASIHTTPRequest,对于http中POST请求的操作,你用了他们提供的现成 ...
- Linux架构之简述企业网站简述
简述企业网站 用户 --> 负载均衡服务器(Nginx) ->根据扩展名访问不同的服务区 ->访问数据库 ->返回用户 静态服务器&&动态 ...
- Word、rss、HTML解析等dll
RSS.NET.dll RSS.NET是一款操作RSS feeds的开源.NET类库.它为解析和编写RSS feeds提供了一个可重用的对象模型.它完全兼容RSS 0.90, 0.91, 0.92, ...
- (1)List集合 (2)Queue集合 (3)Set集合
1.List集合(重中之重)1.1 基本概念 java.util.List接口是Collection接口的子接口,该接口中元素有先后放入次序并允许重复 该接口的主要实现类:ArrayList类.Lin ...
- REDIS线上问题
这周终于解决了Redis访问经常超时的问题,终于可以踏实睡觉了.从上周就开始纠结在这个问题上,可以用寝食难安来形容,感觉这个问题就像个定时炸弹一样,虽然根据手搜的访问量,极少的Timeout Erro ...