zoukankan      html  css  js  c++  java
  • vi的搜索和替换

    搜索中进行替换 
    /which  #搜索which
    cwthat  #替换成that
    n       #重复搜索
    .       #重复替换
    
    一种类型的替换命令 
    g/pattern/s/old/new/g
    
    第一个 g 表示是有选择的操作, pattern 指定选择行的模式, s 表示替换操作, old 是要替换的内容, new 是新内容, g 表示全局替换下面是一些例子: 
    #给第一到十行加上括弧
    :1,10/.*/(&)/
    
    其中的 
     &    代表的是搜索模式
     ~    代表上一次替换命令中制定的替换文本
     u   改成大写
     l   改成小写
     U或者L和e或者E配合 将后面开始到被替换串结束或者到e和E为止的所有支付变成大写或者小写
     另外在vi中可以使用除了\,",和|之外的任何非字母表字符做替换命令的分隔符, 这在进行路径替换的时候非常的有用
    
    下面时一些例子: 
       #将That or this 换成 This or that
       :%s/(That) or (this)/u2 or l1/
       ----  
       #将句尾的child换成children
       :%s/child([ ,.;!:?])/children1/g
       ----
       #将mgi/r/abox换成mgi/r/asquare
       :g/mg([ira])box/s//mg//my1square/g    <=>  :g/mg[ira]box/s/box/square/g
       ----
       #将多个空格换成一个空格
       :%s/  */ /g
       ----
       #使用空格替换句号或者冒号后面的一个或者多个空格
       :%s/([:.])  */1 /g
       ----
       #删除所有空行
       :g/^$/d
       ----
       #删除所有的空白行和空行
       :g/^[     ][     ]*$/d
       ----
       #在每行的开始插入两个空白
       :%s/^/>  /
       ----
       #在接下来的6行末尾加入.
       :.,5/$/./
       ----
       #颠倒文件的行序
       :g/.*/m0O  <=> :g/^/m0O
       ----
       #寻找不是数字的开始行,并将其移到文件尾部
       :g!/^[0-9]/m$ <=> g/^[^0-9]/m$
       ----
       #将文件的第12到17行内容复制10词放到当前文件的尾部
       :1,10g/^/12,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=4
    
    #设置缩进时移动的宽度
    :set shiftwidth=4
    
    #设置语法高亮模式
    :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 #1 command #映射第一个功能键, 即F1
    :map [C-v][Home] command #映射home键
    
    od命令可以用来以8进制方式查看文件 
    @register 执行register中的文本作为命令 
    r命令可以用于读入文件或者将命令的输出读入当前的缓冲区 
    r file #读入文件
    r! ls  #读入命令输出
    
    增加和减少缩进级别在vi的自动缩进模式中,可以通过下面的命令更改缩进级别 
    C-T     增加一个缩进级别
    C-D     减少一个缩进级别
    ^ ^D    光标移到开始,并保留缩进级别
    0 ^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=1
    :while num<=end
    :let line=getline(".")
    :let line=substitude(line,$,num," ")
    :call setline(".", line)
    :+
    :let num=num+1
    :endwhile
     
    插件
    tip of the day 
    calendar 
    jad 
    sketch 
    其他
    加密
    
    :X #之后输入密码, :wq退出即可, 去掉密码只要在输入提示输入密码的时候输入回车即可
    
    将dos文件转化为linux文件 
    :1,$s///g
    
    在每行的行首/尾插入newstring 
    #行首
    :g/^/s//newstring/g
    :%s/^/newstring/g
    行尾
    :g/$/s//newstring/g
    :%s/$/newstring/g
  • 相关阅读:
    C#中的abstract、virtual、interface关键字
    tsql字符串截取
    C# byte换算
    apple-mobile-web-app-capable
    Content-Security-Policy
    sqlserver建立连接服务器
    20 ViewPager Demo4自动轮播
    20 ViewPager Demo3指示器
    20ViewPager demo1,2:接收ViewPager展示View的使用
    有没有最好的学习Angularjs2的视频入门体验?
  • 原文地址:https://www.cnblogs.com/tychyg/p/5068864.html
Copyright © 2011-2022 走看看