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.对比时间同步,修改时区,修改语言 - ...
随机推荐
- hornor8改user模式为debug模式
在学习Android软件安全的过程中,经常要用到Android的动态调试.但是呢,一般的Android应用在发布的时候都是发布版的不能直接被调试,为了能使Android应用能够支持调试就需要对Andr ...
- 整理JavaScript循环数组和对象的方法
众所周知,常用的循环语句有for.while.do-while.for-in,forEach以及jQuery中提供的循环的方法:以及ES6中提供的很多用来循环对象的方法如map, 在 Javascri ...
- 如何监视和更新 Azure 中的 Linux 虚拟机
为确保 Azure 中的虚拟机 (VM) 正常运行,可以查看启动诊断.性能指标,并管理程序包更新. 本教程介绍如何执行下列操作: 在 VM 上启用启动诊断 查看启动诊断 在 VM 上启用诊断扩展 基于 ...
- selenium&PhantomJS笔记
配置pip文件 Windows下pip 配置文件的位置%HOME%/pip/pip.ini linux下安装pip,以Debian Linux为例su -apt-get install python- ...
- REST Framework组件的解析源码
首先我们要知道解析器的作用 解析器就是对你请求体中的数据进行反序列化.封装 把你的所有的请求数据都封装在request.data中 以后就在request.data中获取数据 我们先导入rest_fr ...
- [UI] Elastic Stack & scrollReveal.js
Elastic Stack & scrollReveal.js Elastic Stack http://freebiesbug.com/code-stuff/elastistack-js-d ...
- MySQL 索引的介绍与应用
Mysql索引 一. mysql 索引 索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息. 二:MySQL索引类型 按存储结构区分:聚集索引(又称聚类索引,簇 ...
- Docker 命令总结
1 启动镜像 docker run -i -t centos /bin/bash
- SpringBoot整合Redis初实践
Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理. 有时,为了提升整个网站的性能,在开发时会将经常访问的数据进行缓存,这样在调用这个数据接口时,可以提 ...
- libcurl同时下载多个文件
#include <errno.h> #include <stdlib.h> #include <string.h> #ifndef WIN32 #include ...