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 
若需全文的行首插入可用以下命令
:%s/^/#/g

11.vim编辑器命令的更多相关文章

  1. Linux文件浏览(less、more、head、tail)以及vim编辑器命令总结

    结合小编学习实践,整理了Linux下查看内容(less.more.head.tail)和编辑内容(vim)的部分基础命令解析: 1.less命令 分页浏览内容,如果在shell命令行下按回车键,则一点 ...

  2. vim编辑器命令

    Vim介绍 vim(vimsual)是Linux/Unix系列OS中通用的全屏编辑器. vim分为两种状态,即命令状态和编辑状态,在命令状态下,所键入的字符系统均作为命令来处理,如:q代表退出,而编辑 ...

  3. 常用vim编辑器命令行

    按ESC键 跳到命令模式,然后: :w 保存文件但不退出vi:w file 将修改另外保存到file中,不退出vi:w! 强制保存,不推出vi:wq 保存文件并退出vi:wq! 强制保存文件,并退出v ...

  4. 【Linux 操作系统】vim编辑器配置及常用命令

    最近工作不安分, 没有了刚入行时候的锐气, 不知道什么时候开始懈怠起来, 周末在电脑旁边看新闻, 搞笑图片, 追美剧, 一坐就是一天, 很是空虚. 我需要摆脱这种状态, 正好想学习一下安卓底层, An ...

  5. 安卓程序代写 网上程序代写[原]vim编辑器配置及常用命令

    最近工作不安分, 没有了刚入行时候的锐气, 不知道什么时候开始懈怠起来, 周末在电脑旁边看新闻, 搞笑图片, 追美剧, 一坐就是一天, 很是空虚. 我需要摆脱这种状态, 正好想学习一下安卓底层, An ...

  6. vim编辑器配置及常用命令

    最近工作不安分, 没有了刚入行时候的锐气, 不知道什么时候开始懈怠起来, 周末在电脑旁边看新闻, 搞笑图片, 追美剧, 一坐就是一天, 很是空虚. 我需要摆脱这种状态, 正好想学习一下安卓底层, An ...

  7. vim 编辑器笔记

    vim 编辑器 命令模式(默认),尾行模式 : / 两种方式 (Esc比较慢,连续连词esc,删除全部尾行内容),编辑模式 a,i,o,s :q 退出编辑不保存 :wq 保存编辑并退出 :w 保存并写 ...

  8. Vim编辑器与shell脚本

      目录                                                          Vim文本编辑器 Shell脚本 Shell编程变量 流程控制语句 计划任务 ...

  9. Linux:VIM编辑器的使用

    打开vim编辑器 命令格式: vim 文件路径 vim编辑器的工作模式 进入编辑器后 默认为命令模式 进入输入模式 a 在光标后插入 o 换行插入 i 在光标前插入 返回命令模式 esc 键 进入末行 ...

随机推荐

  1. java线程之间的通信

    1.常用的方法 sleep() 该线程进入等待状态,不释放锁 wait() 该线程进入等待状态,释放锁 notify() 随机唤醒一个线程 notifyAll() 唤醒全部线程 getName() 获 ...

  2. 【nosql】之ehcache.xml文件属性描述

    <ehcache updateCheck="false" name="shiroCache"> <defaultCache <!--最大 ...

  3. 开启Unity3D之旅

    圣典知识目录http://game.ceeger.com/Manual/ NGUI http://www.taikr.com/course/34泰课课程 http://tieba.baidu.com/ ...

  4. springmvc学习(五)

    这次主要是记录一下 springmvc 关于异常处理 和 拦截的回顾 关于springmvc  异常处理:springmvc 提供了 HandlerExceptionResolver  异常处理解析接 ...

  5. 制作OpenStack云平台centos6.5镜像

    创建虚拟镜像 # qemu-img create -f raw Cloud_Centos6.5_64bit.img 10G [root@localhost ~]# ll /opt/CentOS-6.5 ...

  6. SAS数据集推送到sql server 数据库 实现代码段

    libname fdsas ODBC datasrc=fdsas user=fdsas password=fdsas123 preserve_tab_names=yes connection=shar ...

  7. CentOS之Vim

    安装  yum install -y vim-enhanced 移动光标 h或者向左的方向键:光标向左移动一个字符 l或者向右的方向键:光标向右移动一个字符 j或者向下的方向键:光标向下移动一个字符 ...

  8. 第9章 应用层(2)_动态主机配置协议(DHCP)

    2. 动态主机配置协议(DHCP) 2.1 静态地址和动态地址的应用场景 (1)静态地址应用场景 ①IP地址不经常更改的设备(如服务器地址) ②使用有规律的IP地址以便于管理(如学校机房为方便教师管理 ...

  9. linux中 shell编程 判断服务是否运行

    判断nginx是否运行中: if ps -ef|grep "nginx"|egrep -v grep >/dev/null then echo ok! else echo n ...

  10. Qt Opengl

    目前在Qt5中做Opengl的学习时候,发现gluPerspective函数没有定义. 1: gluPerspective( 45.0, (GLfloat)width/(GLfloat)height, ...