本文出自   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. Windows Phone 8初学者开发—第22部分:用演示图板创建卷盘的动画

    原文 Windows Phone 8初学者开发—第22部分:用演示图板创建卷盘的动画 第22部分: 用演示图板创建卷盘的动画 原文地址:http://channel9.msdn.com/Series/ ...

  2. jetty插件开发配置

    <plugins> <!-- jetty插件 --> <plugin> <groupId>org.mortbay.jetty</groupId&g ...

  3. MinGW介绍与使用

    3.1:MinGW 是什么? MinGW 提供了一套简单方便的Windows下的基于GCC 程序开发环境.MinGW 收集了一系列免费的Windows 使用的头文件和库文件:同时整合了GNU ( ht ...

  4. Collections.sort方法对list排序的两种方式

    Collections.sort( )分为两部分,一部分为排序规则,一部分为排序算法 . 规则用来判断对象,算法则考虑如何进行排序 对于自定义对象,sort()不知道规则,所以无法比较,这种情况下一定 ...

  5. leetcode:Reverse Nodes in k-Group(以k为循环节反转链表)【面试算法题】

    题目: Given a linked list, reverse the nodes of a linked list k at a time and return its modified list ...

  6. lua 与 php 通过AES数据加密进行通讯

    近期公司有款<围住神经猫>的微信小游戏火爆的不行!公司又决定开发一系列的神经猫的小游戏,于是,我被拉过来了. 后来使用cocos-2dx 开发一款小游戏,client用的是lua脚本,为了 ...

  7. c语言,gdb

    Get gdb call stack http://blog.csdn.net/zoufeiyy/article/details/1490241 Debugging with GDB - Examin ...

  8. perl 获取文件内容里第一个AAA和最后一个AAA

    <pre name="code" class="html">[root@wx03 ~]# cat -n aaa 1 3`13 2 edqae 3 d ...

  9. Freemarker概念简单介绍

    Freemarker概念简单介绍 1.   Freemarker是什么 模板引擎:一种基于模板的,用来生成输出文本的通过工具. 基于java开发包和类库 2.   Freemarker能做什么 MVC ...

  10. Mac上利用Eclipse编译Cocos2d-x

    目前使用较多的Cocos2d-x开发平台是XCode,应该是由于大部分Cocos2d-x开发者都是iOS开发出生.但是当我们将XCode开发的Cocos2d-x工程发布Android版本时,每次都需要 ...