本节介绍vi和ex的一些高级功能。

配置vi

配置文件.exrc可以保存在你的主目录下,在vi启动的时候执行这个配置文件。但在当前工作目录下可以放置一个配置文件,对当前目录做一个自定义配置。

:set命令

:set命令有两种参数,一种开关参数,表示开启或关闭;一种普通的参数,后面为一个数字或者一个字符串。

开关参数基本都有默认值,:set option:开启 :set nooption:关闭。例如::set ic(查找忽略大小写),:set noic(查找区分大小写)

有一些参数必须赋值,:set option=value,例如:set window=20(当前屏幕显示20行)

:set all ---- 可以查看当前的所有参数情况

:set option? ---- 查看当前参数设置的值

:set ---- 现实哪些参数有修改,相对于.exrc文件或当前Session

配置文件.exrc

.exrc文件可以用vi编辑,如果主目录下面没有这个文件,可以用vi创建,在.exrc文件中使用:set命令,不需要使用前面的冒号

替代环境

vi启动时先读取u用户主目录下.exrc文件,再读取当前工作目录下的.exrc文件。当前工作目录下的设置会覆盖主目录下的设置。

你也可以不用.exrc文件来这个当前的环境,随便弄一个文件保存环境配置。这个 时候必须要使用:so(source)命令读取自定义的文件。

一些有用设置

:set wrapmargin=10 ---- 设置输入到右边界还有10个字符的时候,自动换行

:set ignorecase/noignorecase ----- 设置查找时忽略大小写/对大小写敏感,noignorecase默认

:set wrapscan/nowrapscan ---- 设置在文件的任何查找,是否可以遍历整个文件,wrapscan默认

:set magic/nomagic ---- 设置查找时是否可以使用通配符号,magic默认

:set autoindent/noautoindent ---- 设置自动缩进

:set showmatch/noshowmatch ---- 设置是否显示匹配的括号

:set tabstop=8  ---- 设置tab在文件的空格数

:set shiftwidth=8 ---- 设置自动缩进的宽度

:set number/nonumber ---- 设置是否现实行号

:set list/nolist ---- 设置是否现实每行的结束位置(?我看到的效果是这样)

:set autowrite/noaautowrite ---- 设置在用:n编辑下一个文件或者运行shell命令时自动保存当前文件改动

运行linux命令

:!command  退出当前vi,显示shell,并显示命令执行结果,按Enter返回vi编辑

:sh 创建shell窗口,执行想要的命令,如果想回到vi编辑,按Ctrl+D

:r !command 读取命令执行结果,并插入到当前光标所在位置

定义词汇缩写

:ab abbr phrase ---- 把phrase定义为abbr所确定的缩写,在插入模式,键入abbr后,空格,回车,ESC后会把缩写展开成phrase所定义的短句

:unab abbr ---- 取消abbr的定义

:ab ---- 列出当前所有的定义

使用map命令

:map x sequence ---- 定义字符x作为senqunce命令的快捷方式

:unmap x ---- 取消x的快捷方式

:map ---- 列出当前所有的map

例如 :map V dwelp   dw:删除当前单词,e:移动光标到词的末尾,l:光标右移一个,p:粘贴删除的词到光标所在位置

vim使用指北 ---- Advanced Editing的更多相关文章

  1. vi/vim使用指北 ---- Sample Editing

    本篇介绍vim的基础操作,各种编辑模式的切换,光标的移动,删除,撤销/重做,保存,查找等基础命令: 基础操作 编辑文件 vim  [options] [file ...] 模式 打开文件后进入vim的 ...

  2. vi/vim使用指北 ---- Learning the vi and Vim Editors 读书 笔记

    vi/vim作为liux系统下最强大,最流行的文本编辑器之一.边看<Learning the vi and vim Editor>边学习vim,顺便做写简单的笔记,供以后查询. 没看这本书 ...

  3. vi/vim使用指北 ---- Beyond the Basic

    更多的组合命令 [number]-[command]-[test object] number:   数字 comand:  c,d,y  (修改,删除,复制) test object: 移动光标的命 ...

  4. vi/vim使用指北 ---- Moving Around in a Hurry

    上一篇文章中,简单列出了一些基本的Vim操作,也列出了很多的光标移动命令,本章主要是有哪些命令可以更快的移动光标. vim的编辑操作,用得最多就是移动光标,对于很少行的文件来说,基本的命令就够用了,但 ...

  5. vim使用指北 ---- Multiple Windows in Vim

    多窗口打开多个文件 vim -o file1 file2 ... ---- 默认上下分割窗口 vim -0n file1 file2 ... ---- vim默认会上下等分n个窗口 分割窗口 :[v] ...

  6. vim使用指北 ---- Global Replacement

    一般替换 s/old/new   --- 替换当前行的第一个匹配项 s/old/new/g ---- 替换当前行所有的匹配项 number1,number2-s/old/new/g  ---- 替换从 ...

  7. vi/vim使用指北 ---- Introducting the ex Editor

    本章介绍ex编辑器,为什么要介绍这样一个新的编辑器呢:其实ex编辑器不能算是一个新的编辑器,vi只是它的visual model,它已经是一个更普遍,基于行的编辑器.ex提供更大机动和范围的编辑命令. ...

  8. 颓废选手在 Ubuntu/Noilinux 下的生存指北

    颓废选手在 Ubuntu/Noilinux 下的生存指北 Hint: 这里的 "#" 都是假注释,复制的时候记得删除 一些基本的生存命令 ctrl + alt + t #调出终端 ...

  9. ansible使用指北(二)

    前言在上一篇文章里我们了解了ansible的常用模块,今天我们来了解下ansible-playbook,ansbile-playbook是一系统ansible命令的集合,其利用yaml 语言编写,an ...

随机推荐

  1. MongoDB 学习笔记(三)—— 修改器的使用

    通常文档只会有一部分数据要更新,所以使用修改器来操作文档极为高效. 小技巧:了解函数功能,不带括号即可.如:db.blog.update即可查看update函数的具体参数和方法体. $set修改器 & ...

  2. [div+css布局]命名规则

    //首页可能碰到的 页头:header登录条:loginBar标志:logo侧栏:sideBar广告:banner导航:nav子导航:subNav菜单:menu子菜单:subMenu搜索:search ...

  3. 使用Android Studio开发J2SE项目方法

    0.前言 最近因为要为项目开发一个底层的Java应用,所以非常偶然的遇到了这样一个问题,过去Eclipse有Java Project而现在手头使用Android Studio并不能直接建立Java应用 ...

  4. 刀哥多线程同步任务作用gcd-07-sync_task

    同步任务的作用 同步任务,可以让其他异步执行的任务,依赖某一个同步任务 例如:在用户登录之后,再异步下载文件! - (void)gcdDemo1 { dispatch_queue_t queue = ...

  5. 算法系列3《SHA》

    SHA是一种数据加密算法,该算法经过加密专家多年来的发展和改进已日益完善,现在已成为公认的最安全的散列算法之一,并被广泛使用.该算法的思想是接收一段明文,然后以一种不可逆的方式将它转换成一段(通常更小 ...

  6. Resizing the View(待续。。。。)

    在iOS开发的过程中,控件的大小和位置如何去安排是一个现在看来比较麻烦的事情,需要从上到下的通知和从下到上的调整.而这部分在整个开发过程中是比较重要的,但是却经常没有被掌握.如果将这部分掌握,不管界面 ...

  7. 如何配置DNS服务器(局域网——域名指向某个IP地址)

    单击“开始”,指向“管理工具”,然后单击“DNS”,打开 DNS 管理器.   如有必要,向管理单元添加适用的服务器,然后连接该服务器.在控制台树中,单击适用的 DNS 服务器.   在“操作”菜单上 ...

  8. LoadRunner - 当DiscuzNT遇上了Loadrunner(中) (转发)

    当DiscuzNT遇上了Loadrunner(中) 在上文中,介绍了如果录制脚本和设置脚本执行次数.如果经过调试脚本能够正常工作的话,就可以设置并发用户数并进行压力测试了. 首先我们通过脚本编辑界面上 ...

  9. Hibernate从入门到精通(十)多对多单向关联映射

    上一篇文章Hibernate从入门到精通(九)一对多双向关联映射中我们讲解了一下关于一对多关联映射的相关内容,这次我们继续多对多单向关联映射. 多对多单向关联映射 在讲解多对多单向关联映射之前,首先看 ...

  10. nodejs tools

    1.supervisor npm install supervisor -g supervisor app.js cd public cd bin supervisor www http://www. ...