本文出自   http://blog.csdn.net/shuangde800

------------------------------------------------------------------------------------------------

本文内容学习自《使用vi编辑器, Lamb & Robbins编著》

本文内容概要:

set设置

.vimrc配置

vim下执行linux命令

利用linux命令来编辑当前文件

短语缩写

本文约定:
$ + 命令 表示在普通的bash的命令行下
:  + 命令 表示在vim的ex(命令)模式, 按"Ctrl" + ":" 进入


------------------------------------------------------------------------------------------------


set命令


有两种类型的选项可以使用:set命令进行修改:不是开就是关的触发选项和带数字或字符串值的选项(如页边距的位置和文件名)
 
一般触发选项的命令为:set cmd
关闭选项的命令为:set nocmd
上面cmd代表某种命令选项

例如,
:set ic  在搜索时忽略大小写 (ic=ignore case
:set noic  在搜索时不忽略大小写

可以用:set all 命令查看所有的选项,可以看到你设置的值或者默认值

:set option?   查看option这个选项的当前设置值
:set                显示在.vimrc文件或当前会话期间修改或设置过的选项



.vimrc文件


在Linux中,.vimrc在用户home目录下(初始时没有,要自己创建一个),可以修改这个文件。

可以把set, ab和map命令写入该文件中,那么打开vim编辑,会使用这个文件里的配置



替换环境


除了读取home目录下的.vimrc配置文件外,还可以让vim读取当前目录下的.vimrc文件,这样可以对那些适用于特殊项目的选项进行设置。

注意,可以在home目录下的.vimrc设置某些选项,然后在本地目录中取消这些设置。




执行linux命令


在vim进行编辑时,可以显示或读取任何Linux命令执行的结果。
用感叹号(!)可以制定vim创建一个shell并把它后面的内容看成Linux命令:
:!command

例如,
:!date  显示当前时间


上面的命令,只能执行一次命令,然后就返回vim编辑环境了,如果想要执行多次命令而不会返回vim编辑环境,可以用命令,
:sh
这个命令其实是新建了一个shell,可以像正常的命令行一样操作。
如果要退出shell并返回vim编辑,按 Ctrl + D


利用read(r)命令可以把Linux命令执行的结果读入到当前编辑的文件中:
:r  !date
将会把当前时间读入到编辑文件中




使用命令过滤文本


利用感叹号执行linux命令,可以让vim利用linux命令所提供的功能来编辑。
例如文件内容:
4
5
2
3
要把这几行从小到大排序,可以利用系统的sort命令:
:1, 4 !sort
将会对这四行排序

 

短语缩写


缩写很有用,我们经常在文件中反复输入同样长的短语,无论是在插入模式还是在命令模式下,vim和ex都有许多不同的用来保存长命令序列的方法
 
:ab  hw  hello world!
这个命令表示hw是hello world!的缩写,那么在插入模式或者命令模式下,只要输入hw作为一个完整的单词(不能是其他单词的一部分),就会自动拓展成hello world!


如果要取消这个缩写,可以输入
:unab hw

列出当前的所有缩写
:ab





vim高级编辑(一)的更多相关文章

  1. vim 高级编辑技巧

    建议参考IBM官方文档https://www.ibm.com/developerworks/cn/linux/l-cn-tip-vim/ 重新输入以前输入过的某条命令Ctrl + r 全局替换格式:& ...

  2. vi/vim高级命令集粹

    vi/vim高级命令集粹 (ctrl +v过来 留着以后看) 1.交换两个字符位置 xp 2.上下两行调换 ddp 3.把文件内容反转 :g/^/m0/ (未通过) 4.上下两行合并 J 5.删除所有 ...

  3. 关闭QtCreator的vim风格编辑模式

    今天不小心点到了键盘的快捷键Alt+V,使QtCreator进入了vim风格编辑模式,导致快捷键拷贝粘贴都不正常,找了下资料才发现是这个问题.具体操作如下: 打开QtCreator去掉下列位置的勾选或 ...

  4. vim 的编辑模式 命令模式

    1.vim的编辑模式    进入编辑模式 按键: a  i  o a: 表示在光标当前的,后面开始插入,写数据 i : 则表示 前面 . o : 表面在光标当前的,下一行开始写入数据. O : 大写的 ...

  5. Linux 多个vi、vim进程编辑同一文件时的临时文件问题

    多个vi.vim进程编辑同一文件时的临时文件问题 by:授客 QQ:1033553122   使用vi.vim编辑文件,实际是先copy一份临时文件并映射到内存里进行编辑,所以你编辑的是临时文件,不是 ...

  6. 用VIM查看编辑二进制文件

    用VIM查看编辑二进制文件 vim可以很方便地编辑二进制文件,个人认为它比emacs的二进制编辑方式更好用.vim中二进制文件的编辑是先通过外部程序xxd来把文件dump成其二进制的文本形式,然后就可 ...

  7. [转]基于Protel DXP软件的PCB高级编辑技巧大全

    来源:基于Protel DXP软件的PCB高级编辑技巧大全 一.放置坐标指示 放置坐标指示可以显示出PCB板上任何一点的坐标位置. 启用放置坐标的方法如下:从主菜单中执行命令 Place/Coordi ...

  8. vim 如何编辑 GB2312 编码的文件?

    vim 如何编辑 GB2312 编码的文件? 彻底搞清楚字符编码: ASCII, ISO_8859, GB2312,UCS, Unicode, U 结合file和iconv命令转换文件的字符编码类型 ...

  9. 文本处理三剑客之 Sed ——高级编辑命令

    本篇介绍sed的高级编辑命令 高级编辑命令 P:打印模式空间开端至\n内容,并追加到默认输出之前 n: 读取匹配到的行的下一行覆盖至模式空间 N:读取匹配到的行的下一行追加至模式空间 h: 把模式空间 ...

随机推荐

  1. Mysql主从配置+读写分离(转)

       MySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具.因此,我们首先要在系统中源码编译安装cmake工具. 注:安装前须查看是否已经安装了 ...

  2. Cocos2d-X游戏开发之Windows7+VS2010环境搭建(亲测)

    Cocos2d—X游戏引擎,提供Mac系统下的Xcode开发和Windows系统的VS开发,应该是比较常用的2种. 使用Mac以后,就会发现使用Xcode开发实在是福分啊.VS开发步骤繁琐,调试效率低 ...

  3. 区间dp-zoj3541-The Last Puzzle

    题目链接: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3541 题目大意: 在数轴上,有n个按钮,位置递增为d1,d2, ...

  4. 软件project师的属性与发展

    工作近十年了.[软件project师] 一直是我职业 title 的中心词,仅仅是前面的修饰语在不断变化,从0基础.中级.高级到资深. 事实上 [软件project师] 是一个非常泛化的定义.工作现实 ...

  5. android 中webview调用js

    1.android中利用webview调用网页上的js代码. Android 中可以通过webview来实现和js的交互,在程序中调用js代码,只需要将webview控件的支持js的属性设置为true ...

  6. WCF技术剖析之十七:消息(Message)详解(上篇)

    原文:WCF技术剖析之十七:消息(Message)详解(上篇) [爱心链接:拯救一个25岁身患急性白血病的女孩[内有苏州电视台经济频道<天天山海经>为此录制的节目视频(苏州话)]]消息交换 ...

  7. nexus搭建

    Nexus是Maven仓库管理软件,可以用来搭建私服.主页 http://www.sonatype.org/nexus/ 下载地址 http://www.sonatype.org/nexus/down ...

  8. VC动态轨迹画线

    分类: 2.4 线程/图形学2010-04-30 22:14 1878人阅读 评论(0) 收藏 举报 文档null 这是一个绘制直线的简单绘图程序,能过实现动态轨迹画线,在拖动时产生临时线来表示可能画 ...

  9. SQL中on条件与where条件的区别(转载)

    数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户. 在使用left jion时,on和where条件的区别如下: 1. on条件是在生成临时表时使用的条 ...

  10. QT_opengl_gluPerspective没有定义的处理方法

    原地址:http://blog.sina.com.cn/s/blog_6b11cdda0101fe27.html 例如: gluPerspective( 45.0, (GLfloat)width/(G ...