• Linux之文本编辑器


    功能最强大的编辑器之一 vi

    1、vi和vim的区别

    它们都是多模式编辑器,不同的是vimvi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。

    vim的这些优势主要体现在以下几个方面:

    1、多级撤消
    我们知道在vi里,按 u只能撤消上次命令,而在vim里可以无限制的撤消。

    2、易用性

    vi只能运行于unix中,而vim不仅可以运行于unix,windows ,mac等多操作平台。

    3、语法加亮
    vim可以用不同的颜色来加亮你的代码。

    4、可视化操作
    就是说vim不仅可以在终端运行,也可以运行于x window、 mac os、 windows。

    5、对vi的完全兼容
    某些情况下,你可以把vim当成vi来使用。
    vi和vim都是Linux中的编辑器,不同的是vim比较高级,可以视为vi的升级版本。vi使用于文本编辑,但是vim更适用于coding。 

    2、vi有3个模式:插入模式、命令模式、低行模式。 
    插入模式:只有在此模式下才可以字符输入,按ESC将回到命令模式。 (命令模式下按“i” ,“a”,"o"
    命令模式:可以移动光标、删除字符等。 
    低行模式Last line mode:可以保存文件、退出vi、设置vi、查找等功能(低行模式也可以看作是命令模式里的)按 ":", "/", "?" 进入低行模式

    3、vi常用命令

    打开,保存,或关闭文件(vi命令模式下)

    vi filename       //打开filename文件 

    :w       //保存文件 

    :w vpser.net //保存至vpser.net文件 

    :q          //退出编辑器,如果文件已修改请使用下面的命令 

    :q!        //强制退出编辑器,且不保存 

    :wq       //退出编辑器,且保存文件 

    :x         //同wq,保存并退出

    插入文本或行(vi命令模式下使用,执行下面命令后将进入插入模式,按ESC键可退出插入模式)

    a      //在当前光标位置的右边添加文本 
    i       //在当前光标位置的左边添加文本 
    A     //在当前行的末尾位置添加文本 
    I      //在当前行的开始处添加文本(非空字符的行首) 
    O     //在当前行的上面新建一行 
    o     //在当前行的下面新建一行 
    R    //替换(覆盖)当前光标位置及后面的若干文本 
    J    //合并光标所在行及下一行为一行(依然在命令模式) 

    Last line mode下指令简介(低行模式也可以看作是命令模式里的,在command模式下,按 ":", "/", "?" 进入低行模式。)

    1.列出行号
    set nu: 输入“set nu”后,会在文章的每一行前面列出行号。
    2.跳到文章的某一行
    #:井号代表一个数字,在Last line mode提示符号“:”前输入数字,再按Enter就会跳到该行了,如:15[Enter]就会跳到文章的第15行。[常用]
    3.寻找字符串
    /关键字:先按/,再输入您想寻找的字,如果第一次找的关键字不是您相尽可能的,可以一直按n会往下寻找到您要的关键字为止。
    ?关键字:先按?,再输入您想寻找的字,如果第一次找的关键字不是您想要的,可以按n会往前寻找到您要的关键字为止。
    4.取代字符串
    1,$s/string/replae/g:在last line mode输入“1,$s/string/replace/g”会将全文的string字符串取代为replace字符串,其中1,$s就是指搜寻区间为文章从头至尾的意思,g则是表示全部取代不必确认。
    %s/string/replace/c:同样会将全文的string字符串取代为replace字符串,和上面指令不同的地方是,%s和1,$s是相同的功能,c则是表示要替代之前必须再次确认是否取代。
    1,20s/string/replace/g:将1至20行间的string替代为relpace字符串。
    5.存文件
    w:在last line mode提示符号“:”前按w即可将文件存起来。[超常用]
    #,# w filename:如果您想摘取文章的某一段,存成另一个文件,可用这个指令#代表行号,例如30,50 w nice,将您正在编辑文章的第30~50行存成nice这个文件。
    6.离开
    q:按q就离开,有时如果无法离开vi,可搭配“!:强置离开vi,如“q!”
    qw:一般建议离开时,搭配w一起使用,如此离开时还可存文件。[常用]

    vi命令:

    进入vi的命令
    vi filename :打开或新建文件,并将光标置于第一行首
    vi +n filename :打开文件,并将光标置于第n行首
    vi + filename :打开文件,并将光标置于最后一行首
    vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处
    vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename
    vi filename....filename :打开多个文件,依次编辑

    移动光标类命令
    h :光标左移一个字符
    l :光标右移一个字符
    space:光标右移一个字符
    Backspace:光标左移一个字符
    k或Ctrl+p:光标上移一行
    j或Ctrl+n :光标下移一行
    Enter :光标下移一行
    w或W :光标右移一个字至字首
    b或B :光标左移一个字至字首
    e或E :光标右移一个字j至字尾
    ) :光标移至句尾
    ( :光标移至句首
    }:光标移至段落开头
    {:光标移至段落结尾
    nG:光标移至第n行首
    n+:光标下移n行
    n-:光标上移n行
    n$:光标移至第n行尾
    H :光标移至屏幕顶行
    M :光标移至屏幕中间行
    L :光标移至屏幕最后行
    0:(注意是数字零)光标移至当前行首
    $:光标移至当前行尾


    屏幕翻滚类命令
    Ctrl+u:向文件首翻半屏
    Ctrl+d:向文件尾翻半屏
    Ctrl+f:向文件尾翻一屏
    Ctrl+b;向文件首翻一屏
    nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。


    插入文本类命令
    i :在光标前
    I :在当前行首
    a:光标后
    A:在当前行尾
    o:在当前行之下新开一行
    O:在当前行之上新开一行
    r:替换当前字符
    R:替换当前字符及其后的字符,直至按ESC键
    s:从当前光标位置处开始,以输入的文本替代指定数目的字符
    S:删除指定数目的行,并以所输入文本代替之
    ncw或nCW:修改指定数目的字
    nCC:修改指定数目的行


    删除命令
    ndw或ndW:删除光标处开始及其后的n-1个字
    do:删至行首
    d$:删至行尾
    ndd:删除当前行及其后n-1行
    x或X:删除一个字符,x删除光标后的,而X删除光标前的
    Ctrl+u:删除输入方式下所输入的文本

    搜索及替换命令 :

    /pattern:从光标开始处向文件尾搜索pattern
    ?pattern:从光标开始处向文件首搜索pattern
    n:在同一方向重复上一次搜索命令
    N:在反方向上重复上一次搜索命令
    :s/p1/p2/g:将当前行中所有p1均用p2替代
    :n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代
    :g/p1/s//p2/g:将文件中所有p1均用p2替换


    选项设置
    all:列出所有选项设置情况
    term:设置终端类型
    ignorance:在搜索中忽略大小写
    list:显示制表位(Ctrl+I)和行尾标志($)
    number:显示行号
    report:显示由面向行的命令修改过的数目
    terse:显示简短的警告信息
    warn:在转到别的文件时若没保存当前文件则显示NO write信息
    nomagic:允许在搜索模式中,使用前面不带“”的特殊字符
    nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始
    mesg:允许vi显示其他用户用write写到自己终端上的信息


    最后行方式命令
    :n1,n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下
    :n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下
    :n1,n2 d :将n1行到n2行之间的内容删除
    :w :保存当前文件
    :e filename:打开文件filename进行编辑
    :x:保存当前文件并退出
    :q:退出vi
    :q!:不保存文件并退出vi
    :!command:执行shell命令command
    :n1,n2 w!command:将文件中n1行至n2行的内容作为command的输入并执行之,若不指
    定n1,n2,则表示将整个文件内容作为command的输入
    :r!command:将命令command的输出结果放到当前行 。

  • 相关阅读:
    转: SSH框架总结(框架分析+环境搭建+实例源码下载)
    转:ClickOnce部署Winform程序的方方面面
    转:在决定使用ClickOnce发布你的软件前,应该知道的一些事情(一些常见问题解决方法)
    转: c#.net利用RNGCryptoServiceProvider产生任意范围强随机数的办法
    转:winform 安装包(很详细)
    转:c# WinForm开发 DataGridView控件的各种操作总结(单元格操作,属性设置)
    转:C# WinForm窗体及其控件的自适应
    转:c# 安装包制作
    转:socket
    MyEclipse 智能提示设置
  • 原文地址:https://www.cnblogs.com/qinfei0967/p/7071956.html
Copyright © 2020-2023  润新知