搜索中进行替换
/which #搜索which
cwthat #替换成that
n #重复搜索
. #重复替换 一种类型的替换命令
g/pattern/s/old/new/g 第一个 g 表示是有选择的操作, pattern 指定选择行的模式, s 表示替换操作, old 是要替换的内容, new 是新内容, g 表示全局替换下面是一些例子:
#给第一到十行加上括弧
:,/.*/(&)/ 其中的
& 代表的是搜索模式
~ 代表上一次替换命令中制定的替换文本
\u 改成大写
\l 改成小写
\U或者\L和\e或者\E配合 将后面开始到被替换串结束或者到\e和\E为止的所有支付变成大写或者小写
另外在vi中可以使用除了\,",和|之外的任何非字母表字符做替换命令的分隔符, 这在进行路径替换的时候非常的有用 下面时一些例子:
#将That or this 换成 This or that
:%s/\(That\) or \(this\)/\u\ or \l\/
----
#将句尾的child换成children
:%s/child\([ ,.;!:?]\)/children\/g
----
#将mgi/r/abox换成mgi/r/asquare
:g/mg\([ira]\)box/s//mg//my\1square/g <=> :g/mg[ira]box/s/box/square/g
----
#将多个空格换成一个空格
:%s/ */ /g
----
#使用空格替换句号或者冒号后面的一个或者多个空格
:%s/\([:.]\) */\ /g
----
#删除所有空行
:g/^$/d
----
#删除所有的空白行和空行
:g/^[ ][ ]*$/d
----
#在每行的开始插入两个空白
:%s/^/> /
----
#在接下来的6行末尾加入.
:.,/$/./
----
#颠倒文件的行序
:g/.*/m0O <=> :g/^/m0O
----
#寻找不是数字的开始行,并将其移到文件尾部
:g!/^[-]/m$ <=> g/^[^-]/m$
----
#将文件的第12到17行内容复制10词放到当前文件的尾部
:,10g/^/,17t$
~~~~重复次数的作用
----
#将chapter开始行下面的第二行的内容写道begin文件中
:g/^chapter/.+2w>>begin
----
:/^part2/,/^part3/g/^chapter/.+2w>>begin
----
:/^part2/,/^part3/g/^chapter/.+2w>>begin|+t$ ex的命令
d 删除
m 移动
co 复制
t 复制行
p 打印
nu 显示行号
g 命令用于寻找匹配的行,然后执行相应的操作
v 反向寻找匹配的的行,然后执行相应的操作 ex中用;代替,做行分界符时会将;前面的行改变成当前行 选项设置
#设置tab宽度
:set tabstop= #设置缩进时移动的宽度
:set shiftwidth= #设置语法高亮模式
:set syntax=fvwm #关闭备份
:set nobackup
:set nowritebackup #建议按照如下的方式使用备份
:set backup
:set backupdir=/var/bak
:set backupext=.bak #下面一些选项是一次听讲座的时候记录的, 具体什么意思没有记清楚, 但应该很有用的
:set nocp
:set su
:set his
:set cin
:set sm #显示匹配的括号
:set ai #自动缩进
:set cino=:ogotocsus
:set paste/nopaste
:set lbr
:set font=mb
:set cindent #打开c缩进模式 #打开语法高亮显示
:syntax on #格式重排
= 建议的主题配置:
colo torte #图形模式
colo else #字符模式 命令与键
为了防止ex对特殊键进行解释, vi中可以用C-v对其进行跳脱.如下所示:
[RETURN] ^M
[ESC] ^[
[BACKSPACE] ^H
C-T ^T
C-W ^W
C-x ^X
| 不能转义 map!用于在插入模式下强制映射, unmap!用于在插入模式下取消映射
映射一个功能键
:map # command #映射第一个功能键, 即F1
:map [C-v][Home] command #映射home键 od命令可以用来以8进制方式查看文件
@register 执行register中的文本作为命令
r命令可以用于读入文件或者将命令的输出读入当前的缓冲区
r file #读入文件
r! ls #读入命令输出 增加和减少缩进级别在vi的自动缩进模式中,可以通过下面的命令更改缩进级别
C-T 增加一个缩进级别
C-D 减少一个缩进级别
^ ^D 光标移到开始,并保留缩进级别
^D 光标移到开始,并重置缩进级别 可以通过下面的命令设置自动缩进模式
:set autoindent <<和>>是进行缩进和反缩进的命令
>> 把行或者块右移8个空格
<< 把行或者块左移8个空格 显示控制字符
:set list #临时的等价命令是l 启用括号匹配
:set showmatch #:set sm -设置显示模式
:normal #正常模式
:syntax #语法高亮模式
:hex #十六进制模式
:html #html模式
:man #man模式
:set binary #二进制模式
:set incsearch #增量搜索模式
:set showmode #可视模式 cindent 按照c的格式缩进
在vi中查看c源码的时候, 可以在#include "hell.h" 在双引号中间安gf就可以打开头文件, C-o(C-t)返回.
窗体分割命令
[N] sp[lit] [position] [file]
[N] new [position] [file]
[N] sv[iew] [position] [file] 缩写文本
#用myurl代表http:://localhost/
:ab myurl http:://localhost/
#取消缩写
:una myurl 使用ctags
:! ctags *.c #建立tags文件
: tag name
^] #查看tag定义 命令的选项:
-d
-g
-l #指定语言
-m #为结构的成员建立索引
-t #为c的typedef建立索引
-T #为C++的typedef建立索引 宏
vi中在全文前植入行号的宏
:%s/^/^|/
:$
:let end=line(".")
:|
:let num=
:while num<=end
:let line=getline(".")
:let line=substitude(line,$,num," ")
:call setline(".", line)
:+
:let num=num+
:endwhile 插件
tip of the day
calendar
jad
sketch
其他
加密 :X #之后输入密码, :wq退出即可, 去掉密码只要在输入提示输入密码的时候输入回车即可 将dos文件转化为linux文件
:,$s///g 在每行的行首/尾插入newstring
#行首
:g/^/s//newstring/g
:%s/^/newstring/g
行尾
:g/$/s//newstring/g
:%s/$/newstring/g

vi的搜索和替换的更多相关文章

  1. 在vi中搜索字符串,替换字符串

    在vi中搜索一个字符串: 输入命令:"vi test.txt"用vi打开一个文本文件. 输入命令:"/spider"用ESC键进入命令模式,然后输入一个&quo ...

  2. 转载:如何运用VI编辑器进行查找替换

    使用vi编辑器编辑长文件时,常常是头昏眼花,也找不到需要更改的内容. 这时,使用查找功能尤为重要. 方法如下: 1.命令模式下输入“/字符串”,例如“/Section 3”. 2.如果查找下一个,按“ ...

  3. Vim进阶技术:搜索和替换

    行内搜索 行内搜索,也就是在当前行内进行搜索和移动,通常都与编辑命令一起使用. fx -- 移动到下一个字符x的位置,光标停留在x字符上面 tx -- 移动到下一个字符x的位置,光标停留在x前一个字符 ...

  4. 10年前文章_ vi编辑器查找与替换方法

    vi编辑器查找与替换方法1.查找:/ 当前行往下找:? 当前行往上找找到后继续查找同方向 n反方向 N2.替换格式: range s/source/target/g解释:range表示要搜索的范围 & ...

  5. VIM 文件搜索与替换

    文件内搜索与替换 :[range]s/pattern/string/[c,e,g,i] 例如: :%s/oldword/newword/cg //对文本中全部匹配进行替换 :m,ns/oldword/ ...

  6. vi、vim 查找替换

    vi/vim 中可以使用 :s 命令来替换字符串.该命令有很多种不同细节使用方法,可以实现复杂的功能,记录几种在此,方便以后查询.    :s/vivian/sky/ 替换当前行第一个 vivian ...

  7. vi/vim 键盘图 & 替换

    在VIM中进行文本替换:    1.  替换当前行中的内容:    :s/from/to/    (s即substitude)        :s/from/to/     :  将当前行中的第一个f ...

  8. IntelliJ IDEA全局内容搜索和替换

      在做项目时,有时会在整个项目里或指定文件夹下进行全局搜索和替换,这是一个很方便功能.使用方法如下: 一.全局搜索 1.使用快捷键Ctrl+Shift+F打开搜索窗口,或者通过点击Edit–> ...

  9. 【vim】搜索与替换

    1. 搜索 命令 功能 备注 * 向下搜索光标所在处的词 n下一个,N上一个 # 向上搜索光标所在处的词 同上 [+<Ctrl>+i 跳转到光标所在处的变量的声明 使用tag [+< ...

随机推荐

  1. abp相关

    在.core中增加类.并指定属性长度. nutget 中运行Add-Migration 名称 Update-Database -Verbose 迁移成功. 1.安装指定版本类库install-pack ...

  2. go开启多进程——拆分多个进程同时处理(分而治之)

    使用了goroutine实现了多线程,使用chan来控制多线程. runtime.GOMAXPROCS(3)来设置最大的原生线程. runtime.Gosched() 显式地让出CPU时间给其他gor ...

  3. php 图片上传 文件上传 大小 限制

    nginx  413 Request Entity Too Large Php无法上传文件 查看php脚本运行用户,写个php脚本 <?php echo shell_exec("id ...

  4. 图谱论(Spectral Graph Theory)基础

    拉普拉斯矩阵(Laplacian matrix),也称为导纳矩阵(Admittance matrix)或者基尔霍夫矩阵(Kirchohoff matrix) 归一化的拉普拉斯矩阵定义为 例子: 拉普拉 ...

  5. jQuery 数据操作函数

    函数 描述 .clearQueue() 从队列中删除所有未运行的项目. .data() 存储与匹配元素相关的任意数据. jQuery.data() 存储与指定元素相关的任意数据. .dequeue() ...

  6. Eclipse集成resin服务器

    就我遇到的问题来说吧: 1. resin-pro-4.0.36去官网下载,目前这是最新版,27M 2. Eclipse安装Resin服务器的插件 Help->Install New Soft-& ...

  7. java用iText导出word文档

    1.需要导入的jar包 2.导出word并下载其实是分两步的. 第一步是将需要导出的数据导出(上传)到服务器上 第二步是将服务器上的文档下载到本地 3. 第一步.上传文档 (1)设置响应信息以及构造上 ...

  8. IndiaHacks 2016 - Online Edition (CF) . D

    这题思路很简单,二分m,求最大流是否大于等于x. 但是比赛过程中大部分的代码都被hack了... 精度问题,和流量可能超int 关于精度问题,这题真是提醒的到位,如果是先用二分将精度控制在10^-8左 ...

  9. cocos2d-x-3.1rc0中找不到"extensions/ExtensionMacros.h"的问题

    笔者导入UI编辑器的资源时,提示无法打开包括文件:“extensions/ExtensionMacros.h”: No such file or directory” 然后参考了3.0的一篇文章.得出 ...

  10. Python3.6全栈开发实例[010]

    10.有字符串 "k:1|k1:2|k2:3|k3:4" 处理成字典 {'k':1,'k1':2....} s = "k:1|k1:2|k2:3|k3:4" d ...