vim中的一些高级命令的使用
现在一般在windows下面对txt文档操作的时候,我一般使用gvim软件来操作,虽然没有unix/linu下面的正宗,并且很多命令没有,但是还是有很多方便之处的
下面是重温vim命令时,我我自己以前不曾用过的一些命令
在linux/unix的terminal中输入vimtutor可以打开vim的帮助文档(是中文的)
1.u/U/ctrl+r
u:这个不用说,相当于windows下面的ctrl+z,按下一次撤销一次先前进行的操作
U:这个我以前一直没有用到,因为那个时候搞不懂干什么的,现在知道他是 对当前操作的整行的内容进行修正,也就是说你在当前一行一次性做的所有操作都将恢复。
ctr+r:这个是一个撤销命令,就是对上一次命令的撤销(注意,这个是上一个命令(只针对一个命令)的一次撤销,注意是一次,按下多次ctrl+r的话,是撤销多次,但是还是针对同一个命令)。举个例子:
abcdefghijklmn:我用x删除了从b到g的内容,结果如下:
ahijklmn:然后我使用u回复了d-g的内容,结果如下:
adefghigklmn:然后我按下ctrl+r,结果是撤销了第二部的u的操作,一直按ctrl+r,最后的结果是:
ahijklmn:之后你无论怎么按ctrl+r,结果都是这样,不会回复用x删除的第一步的内容。这就说明了ctrl+r是针对上一次的同一个命令的
2.ctrl+g
这可查看当前光标所在的位置,会列出当前vim对应文件的全路径,这个功能有时候是很有用的,比如当你想要看当前编辑文件的全路径的话就会用到。
3.逆向搜索?
我们知道/这个是搜索的命令,不过这个是正向搜索,也就是从开头项结尾
而?+内容是逆向搜索,从结尾向开头搜索,用的地方不是很多
4.替换命令
:s/old/new :只替换一个(光标所在行)
:s/old/new/g:替换一行的内容
:#,#s/old/new/g:替换从几行到几行的内容
:%s/old/new/g:替换全文见内容
:%s/old/new/gc:这个命令很牛逼,加了一个c,会提示用户是否替换,有点喝windows一样了,和和
这个命令很常用,不过经常忘记前面的s和%s的区别
5.在vi中使用外部命令
:!ls -l
就是多加了一个!
6.w保存到指定文件和选择性的保存
:w a.txt
保存到了a.txt,就相当于另存为了
:#,# w a.txt
保存指定行数之间的内容到另一个文件中
7.r 把另一个文件内容弄进来
:r b.txt
把b.txt得内容插入到光标所在点后面
8.A
大些A是直接把光标移动到行尾进行插入
9.set ic
:set ic
不区分大小写,这样的话,你用/来搜索的话,就不区分大小写了
10.搜索到结果进行高亮显示
:set hls is
去掉的话使用
:set nohls
vim中的一些高级命令的使用的更多相关文章
- vim中翻页的命令
整页翻页 ctrl-f ctrl-b f就是forword b就是backward 翻半页 ctrl-d ctlr-u d=down u=up 滚一行 ctrl-e ctrl-y zz 让光标所杂 ...
- vim中常用折叠命令
最常用3个折叠命令 .反复打开关闭折叠:za (意思就是,当光标处折叠处于打开状态,za关闭之,当光标处折叠关闭状态,打开之) .打开全部折叠:zR .关闭全部折叠:zM 小试折叠: :set fdm ...
- 再谈vim中多窗口的编辑
参考:http://blog.csdn.net/shuangde800/article/details/11430659 很好 鼠标在各个窗口间循环移动: ctrl+w+(小写的 hjkl), &qu ...
- 再谈vim中多窗口的编辑 ctrl+w+H窗口位置最大化和互换等操作
参考:http://blog.csdn.net/shuangde800/article/details/11430659 很好 鼠标在各个窗口间循环移动: ctrl+w+(小写的 hjkl), &qu ...
- Vim 中使用cscope
使用cscope碰到的问题 1. E568: duplicate cscope database not added 根据提示,cscope数据库重复添加了,我使用的是vim7.2版本,而这个版本在已 ...
- vi/vim使用进阶: 在VIM中使用GDB调试 – 使用vimgdb
vi/vim使用进阶: 在VIM中使用GDB调试 – 使用vimgdb << 返回vim使用进阶: 目录 本节所用命令的帮助入口: :help vimgdb 在UNIX系统最初设计时,有一 ...
- Vim 中进行文件目录操作
Vim 中进行文件目录操作 当前文件名 我们知道Vim有48个寄存器,其中%只读寄存器中保存着当前文件路径. 例如在/home/harttle/下打开src/main.cpp,我们打印%的值: :ec ...
- vi/vim高级命令集粹
vi/vim高级命令集粹 (ctrl +v过来 留着以后看) 1.交换两个字符位置 xp 2.上下两行调换 ddp 3.把文件内容反转 :g/^/m0/ (未通过) 4.上下两行合并 J 5.删除所有 ...
- vim中替换命令
在VIM中进行文本替换: 1. 替换当前行中的内容: :s/from/to/ (s即substitude) :s/from/to/ : 将当前行中的 ...
随机推荐
- 152. Maximum Product Subarray
题目: Find the contiguous subarray within an array (containing at least one number) which has the larg ...
- 使用Oracle的存储过程批量插入数据
原文地址:http://www.cnblogs.com/liaoyu/p/oracle-procedure-batch-insert.html 作者:L君还在说之乎者也 最近在工作中,需要使用生成一些 ...
- C++ sizeof的使用总结
说明:以下代码在VS2008中通过,在32位操作系统下. 1. 定义 sizeof是一个操作符(operator). 其作用是返回一个对象或类型所占的内存字节数. 其返回值类型为size_t ...
- Java SE知识点
Java概述 Java的运行机制 JDK,JRE,JVM Java开发环境搭建 用记事本编写运行一个Hello World的完整过程 如何在Java中使用注释 使用Eclipse开发Java程序 使用 ...
- usaco4.12Fence Rails(迭代加深)
为了这题还去学了下迭代加深 回来还是不会写 只好参考各大神的代码及题解了 二分枚举最大可以切的块数 然后就是各种分析及优化 USACO题解里写了7个优化.. 问题分析 抽象一下就可以发现,算法的本质是 ...
- Cannot proxy target class because CGLIB2 is not available. Add CGLIB to the class path or specify proxy interfaces
问题解决:缺少jar包 cglib-2.1.3.jar
- 如何使一个网络下的2台路由器都可以dhcp上网
设备:2台路由器,网线若干 首先,设置好一个路由器,让它可以拨号上网.网关设置为192.168.1.1,子网掩码为255.255.255.0,dns为61.177.7.1 然后,设置第二台路由器.设置 ...
- HDU 4799 LIKE vs CANDLE 树形dp
题意:有n个人,他们的关系,形成一棵有根树(0是树根,代表管理员),每个人有一个价值 现在有一条微博,每个人要么点赞,要么送一个蜡烛 初始一些人利用bug反转了某些人的操作(赞变蜡烛 或者 蜡烛变成赞 ...
- lightoj 1005
组合数学,ans = C(n,k)*A(n,k). #include<cstdio> #include<string> #include<cstring> #inc ...
- acm位运算应用 搜索
acm位运算应用 搜索 搜索 此处不讲题目,只讲位运算是怎样在这些题中实现和应用的.由于搜索题往往是基于对状态的操作,位运算往往特别有效,优化之后的效果可以有目共睹. 例1.POJ 132 ...