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.对比时间同步,修改时区,修改语言 - ...
随机推荐
- UPDATE语句总结
一.基本语句 1.SQL UPDATE 语法 UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition ...
- 在ubuntu中用apt-get安装LEMP栈(linux+nginx+mysql+php)
在ubuntu上安装lamp大家应该都很熟悉了,但对于现在很流行的lemp栈怎么样用apt-get安装,这样介绍的文章的不多.下面我用Ubuntu 12.04 LTS为例来介绍下如何用apt-get安 ...
- [CENTOS7] 加入Windows域
This following article is a snapshot from: https://www.rootusers.com/how-to-join-centos-linux-to-an- ...
- 解决js跨域
这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据.只要协议.域名.端口有任何一个不同,都被 ...
- OpenGLES渲染
OpenGLES渲染 OpenGLES使用GPU渲染图片,不占用CPU,但其使用还是挺复杂的. 先用OpenGLES显示一张图片: // // ShowViewController.m // Open ...
- [翻译] OrigamiEngine
OrigamiEngine https://github.com/ap4y/OrigamiEngine Lightweight iOS and OSX audio engine with opus, ...
- Python学习---Django拾遗180328
Django之生命周期 前台发送URL请求到Django的中间件进行内容校验,完成校验后到达路由映射文件url.py,然后调用视图函数views.py里面的函数进行内容处理[ 1.操作数据库进行数据读 ...
- 统计过程控制与评价 Cpk、SPC、PPM
Cpk(Process capability index)--工序能力指数 SPC(Statisical Process Control)--工艺过程统计受控状态分析 PPM(Parts Per Mi ...
- struts2 标签使用注意
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/qilixiang012/article/details/31954501 通常是用html标签.而不 ...
- Hive学习之路 (三)Hive元数据信息对应MySQL数据库表
概述 Hive 的元数据信息通常存储在关系型数据库中,常用MySQL数据库作为元数据库管理.上一篇hive的安装也是将元数据信息存放在MySQL数据库中. Hive的元数据信息在MySQL数据中有57 ...