vi删除多行,替换,复制
- VI中的多行删除与复制
- 法一:
- 单行删除,:1(待删除行)d
- 多行删除 ,:1,10d
- 法二:
- 光标所在行,dd
- 光标所在行以下的N行,Ndd
- 方法1:
- 光标放到第6行,
- 输入:2yy
- 光标放到第9行,
- 输入:p
- 此方法适合复制少量行文本的情况,复制第6行(包括)下面的2行数据,放到第9行下面。
- 方法2:
- 命令行模式下输入
- 6,9 co 12
- 复制第6行到第9行之间的内容到第12行后面。
- 方法3:
- 有时候不想费劲看多少行或复制大量行时,可以使用标签来替代
- 光标移到起始行,输入ma
- 光标移到结束行,输入mb
- 光标移到粘贴行,输入mc
- 然后 :'a,'b co 'c 把 co 改成 m 就成剪切了
- 要删除多行的话,可以用 :5, 9 de
- VIM常用命令
- 常用命令
- 1) 光标命令
- k,j,h,l---上下左右光标移动命令,虽然可以在Linux中使用键盘右边的四个光标键, 但是记住这四个命令还有非常有用的,也就是右手在键盘上放置的位置部分
- nG ----n为行数,该命令立即使光标跳到指定行。
- Ctrl+G-----光标所在位置的行数和列数报告
- w,b------使光标向前或向后跳过一个单词
- 2) 编辑命令
- i,a,r -------在光标的前,后,上方插入字符命令(i=insert,a=append,r=replace)
- cw,dw------ 改变(置换)/删除光标所在处的单词的命令 (c=change,d=delete)
- x,d$,dd -----删除一个字符,光标所在处到行尾的所有字符,和整行的命令
- 3) 查找命令
- /string, ?string-----从光标所在处向后/向前查找相应的字符串的命令
- 4)拷贝复制命令
- yy,p -----拷贝一行到剪贴板/取出剪贴板中内容的命令
- 常见问题及应用技巧
- 1) 在一个新文件中读/etc/passwd中的内容,取出用户名部分
- vi file
- :r /etc/passwd 在打开的文件file中光标所在处读入/etc/passwd
- :%s/:.*//g 删除/etc/passwd中用户名后面的从冒号开始直到行尾的所有部分
- :3r /etc/passwd 这是在指定的行号后面读入文件内容
- 另外一种方法删掉文件中所有的空行及以#开始的注释行
- #cat squid.conf.default | grep -v '^$' | grep -v '^#'
- 2) 在打开一个文件编辑后才知道登录的用户对该文件没有写权,不能存盘
- vi file
- :w /tmp/1 既然没法存盘,不想放弃所做的所有修改,先临时存到/tmp/1
- :20,59w /tmp/1 或者仅仅把第20到59行之间的内容存盘成文件/tmp/1
- 3) 用VI编辑一个文件,但需要删除大段大段的内容
- vi file
- Ctrl+G 把光标移到需要删除的行的处按ctrl+G显示行号,再到结尾处再按Ctrl+G.
- :23,1045d 假定两次行号为23和1045,则把这几间的内容全删除
- 也可以在开始和结束两行中用ma,mb命令标记后用:'a,'bd删除.
- 4) 在整个文件或某几行中在行首或行尾加一些字符串
- vi file
- :3,$s/^/some string / 在文件的第一行至最后一行的行首前插入some string
- :%s/$/ some string/g 在整个文件每一行的行尾添加 some string
- :%s/string1/string2/g 在整个文件中替换string1成string2
- :3,7s/string1/string2/ 仅替换文件中的第三到七行中的string1成string2
- Note: s为substitute,%表示所有行,g表示global
- 5) 同时编辑两个文件,在两个文件中拷贝剪贴文本
- vi file1 file2
- yy 同时打开两个文件,在文件1的光标所在处拷贝所在行
- :n 切换到文件2 (n=next)
- p 在文件2的光标所在处粘贴所拷贝的行
- :N 切换回文件1
- 6) 替换文件中的路径
- :%s#/usr/bin#/bin#g 把文件中所有路径/usr/bin换成/bin
- 或者用
- :%s//usr/bin//bin/g 在'/'前用符号指出'/'是真的单个字符'/'
- 7) 用 vi 多行注释
- 如果要给多行程序作注释,一个笨办法就是 插入 # ,然后用 j 跳到下一行用 . 命令,重复上个命令。如果要注释几百行,这样的方法恐怕太愚蠢了。一个聪明的办法是:
- :.,+499 s/^/#/g
- 转自:http://blog.csdn.net/wallwind/article/details/7633356
vi删除多行,替换,复制的更多相关文章
- linux vi 删除多行的方法
dd 删除一行 d$ 删除以当前字符开始的一行字符 ndd 删除以当前行开始的n行 dw 删除以当前字符开始的一个字 ndw 删除以当前字符开始的n个字 D 与d$同义 d) 删除到下一句的开始 d} ...
- ASP FSO操作文件(复制文件、重命名文件、删除文件、替换字符串)
ASP FSO操作文件(复制文件.重命名文件.删除文件.替换字符串)FSO的意思是FileSystemObject,即文件系统对象.FSO对象模型包含在Scripting 类型库 (Scrrun.Dl ...
- phpstorm 正则匹配删除注释行(替换注释行为空行)
使用phpstorm 来编写php 和javascript 代码,感觉还是不错的,用得也很舒服. 遇到了一个需求,有时候在阅读框架源代码的时候 , 想过滤(删除)掉源代码中的注释行,如果手动逐行删除显 ...
- python3.4学习笔记(十五) 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
python3.4学习笔记(十五) 字符串操作(string替换.删除.截取.复制.连接.比较.查找.包含.大小写转换.分割等) python print 不换行(在后面加上,end=''),prin ...
- linux sed 替换(整行替换,部分替换)、删除delete、新增add、选取
sed命令行格式为: sed [-nefri] ‘command’ 输入文本 常用选项: -n∶使用安静(silent)模式.在一般 sed 的用法中,所有来自 STDI ...
- 转 Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
转自: http://www.cnblogs.com/huangcong/archive/2011/08/29/2158268.html 黄聪:Python 字符串操作(string替换.删除.截取. ...
- Linux之sed:删除某行以及替换
sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换.删除.新增.选取等特定工作,下面先了解一下sed的用法sed命令行格式为: sed ...
- jQuery中的查找节点、创建节点、插入节点、删除节点、替换节点、复制节点操作方法
jQuery操作节点我们可以分六点来讲,查找节点.创建节点.插入节点.删除节点.替换节点.复制节点. 一.查找节点 text() - 设置或返回所选元素的文本内容 ,html() - 设置或返回所 ...
- vi 常用命令行
vi 常用命令行 1.vi 模式 a) 一般模式: vi 处理文件时,一进入该文件,就是一般模式了. b) 编辑模式:在一般模式下可以进行删除,复制,粘贴等操作,却无法进行编辑操作.等按下‘i,I ...
随机推荐
- 组建Windows家庭组
这里,是必须得针对Windows 7.8.10而言,因为,Windows XP 和 Windows Vista系统没有家庭网络的功能.(比较过时的一些系统了) 1.Windows家庭组的简介 使用家庭 ...
- fscanf(格式化字符串输入)
fscanf(格式化字符串输入) 相关函数 scanf,sscanf 表头文件 #include<stdio.h> 定义函数 int fscanf(FILE * stream ,const ...
- zzuoj 10409 10409: D.引水工程
10409: D.引水工程 Time Limit: 2 Sec Memory Limit: 128 MBSubmit: 96 Solved: 34[Submit][Status][Web Boar ...
- Qt学习笔记-1 开发环境建立
关于Qt在这里不做过多介绍,吸引我的地方是有几点: 1.用C++开发语言: 2.多平台(wWindows.MAC.Linux.Android等): 3.界面所见几所得.其他的可以百度上了解: 从本文开 ...
- 射频识别技术漫谈(2)——国际标准【worldsing 笔记】
如果你只是智能卡的用户,通常可以不必关注国际标准,但作为智能卡的专业开发人员,则至少也要对相关标准有所了解.国际标准一般都是西方人制定的,原版都是英文的,而所谓中文版往往是对原版的直译,许多情况下并未 ...
- Notepad++的一些常用的快捷键
ctrl+/ 一个一个单词的往后跳Ctrl+H 替换Ctrl+F 查找Ctrl+D 复制当前行到下一行Ctrl+L 删除当前行Ctrl+Shift+F 在文件中找F5 打开run对话框F11 全屏 ...
- python(6)
python(6) 6.1 面向对象编程:OOP相信学过编程的就会了解它有多重要了.当然c什么的就算了 实际上面向对象就是把对象拥有的数据和方法封装在对象里面,由对象调用. 面向对象最重要的是类 ...
- ssh免密码登录记录
做mha.hadoop安装过程中都要用ssh免密码登陆,查过一些资料,踩过很多坑,下面用简单记录一下 首先要安装ssh linux : centOS 6.5 yum -y install *ssh* ...
- CAS Tomcat实现单点登录
转贴: http://www.cnblogs.com/ja-net/archive/2012/07/25/2608536.html 最近这两天在搞单点登录,第一次使用老出状况.以下是配置过程: 1.安 ...
- cdll和windll的差别
Python要想调用C语言写的动态连接库.不仅要兼容C接口的调用习惯,还须要兼容C语言的数据类型.幸运的是ctypes库已经做了这双方面的工作.以便调用动态连接库是很方便的.在Hello World的 ...