空格和tab键的vi 转换
2016-03-24 10:25
274 查看
Tab键和空格键之间的转换始终是个问题,比如Makefile中,应该用tab键的地方替换成空格,就会出问题。
然而在python代码中,由于其严格要求的缩进格式,不可见的空格和tab键之间的转换同样会造成麻烦。在UltraEdit里,我们可以定义tab键转换为若干个空格字符来满足自已的要求。在linux下的vi中呢?
linux下的vi一般是vim的链接,我们在用户主目录下创建.vimrc文件:
set ts=4 (注:ts是tabstop的缩写,设TAB宽4个空格)
set expandtab
对于已保存的文件,可以使用下面的方法进行空格和TAB的替换:
TAB替换为空格:
:set ts=4
:set expandtab
:%retab!
空格替换为TAB:
:set ts=4
:set noexpandtab
:%retab!
加!是用于处理非空白字符之后的TAB,即所有的TAB,若不加!,则只处理行首的TAB。
1. 基本的替换
:s/vivian/sky/ 替换当前行第一个 vivian 为 sky
:s/vivian/sky/g 替换当前行所有 vivian 为 sky
:n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky
:n,$s/vivian/sky/g 替换第 n 行开始到最后一行中每一行所有 vivian 为 sky
(n 为数字,若 n 为 .,表示从当前行开始到最后一行)
:%s/vivian/sky/(等同于 :g/vivian/s//sky/) 替换每一行的第一个 vivian 为 sky
:%s/vivian/sky/g(等同于 :g/vivian/s//sky/g) 替换每一行中所有 vivian 为 sky
然而在python代码中,由于其严格要求的缩进格式,不可见的空格和tab键之间的转换同样会造成麻烦。在UltraEdit里,我们可以定义tab键转换为若干个空格字符来满足自已的要求。在linux下的vi中呢?
linux下的vi一般是vim的链接,我们在用户主目录下创建.vimrc文件:
set ts=4 (注:ts是tabstop的缩写,设TAB宽4个空格)
set expandtab
对于已保存的文件,可以使用下面的方法进行空格和TAB的替换:
TAB替换为空格:
:set ts=4
:set expandtab
:%retab!
空格替换为TAB:
:set ts=4
:set noexpandtab
:%retab!
加!是用于处理非空白字符之后的TAB,即所有的TAB,若不加!,则只处理行首的TAB。
1. 基本的替换
:s/vivian/sky/ 替换当前行第一个 vivian 为 sky
:s/vivian/sky/g 替换当前行所有 vivian 为 sky
:n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky
:n,$s/vivian/sky/g 替换第 n 行开始到最后一行中每一行所有 vivian 为 sky
(n 为数字,若 n 为 .,表示从当前行开始到最后一行)
:%s/vivian/sky/(等同于 :g/vivian/s//sky/) 替换每一行的第一个 vivian 为 sky
:%s/vivian/sky/g(等同于 :g/vivian/s//sky/g) 替换每一行中所有 vivian 为 sky
相关文章推荐
- 对象接口
- 拉链法(链地址法)
- .dll动态文件
- 格式布局(课堂代码)
- Leetcode 125. Valid Palindrome
- 计算矩阵行列式时奇排列与偶排列的判定
- JavaScript 笔记 - <script>标签 defer属性 (延迟脚本)
- ScrollView嵌套ListView
- 数据库:自己理解的“数据库事务隔离级别”
- seconds_behind_master监控复制推延的不足及pt-heartbeat改进方法
- javaScript基础
- iOS9 HTTP 不能正常使用的解决办法
- C++第二次试验——标准体重
- 订单数字提醒的实现
- 地址重定向
- JQuery常用函数及功能小结--转载
- (笔记)AT91SAM9260的启动过程详细解说
- 浅谈midi与cocos的交互
- Interview Vocabulary
- Toast显示和关闭自个控制的方法