• linux vi/vim文本编辑


    在linux环境下,我们用的最多的文本编辑命令就是vi了,vim是vi的增强版。学习vim时候整理了一下常用的命令行,一起学习。

    介绍一下vim的三种常见状态模式: 命令模式,插入模式(编辑),正常模式。这三种模式可以相互转换。每次按两次esc,就可以推到正常模式,然后在进去其他模式。

    正常模式 :一般的,打开Vim都是正常模式。在任何模式下,只要按下 Esc 键就可以返回正常模式。

    插入模式 :插入模式则用来向文本中添加内容的。

    命令模式 :命令模式则多用于操作文本文件(而不是操作文本文件的内容),例如保存文件;或者用来改变编辑器本身的状态,例如设定多栏窗口、标签或者退出编辑器……

    将vim命令划分为三类:命令行类移动光标类编辑类。命令行是在vim编辑器的底部输入需要执行的命令行的形式,移动光标类是所有定位光标位置的指令,编辑类是对所打开文档的内容进行修改。

    命令行类

    打开

    > vim 文件名

    保存

    > :w 保存文件

    退出

    > :q   冒号加q 不保存退出。注意:若文件有修改无法直接退出,命令无效,此时可使用:wq保存并退出或使用:q!强制退出。

    > /    斜杠加所要的搜索的字符 字母n可以查看下一个,大写的N可以查看上一个。

    >?  问号后面加上要搜索的字符,字母n可以查看下一个,大写的N可以查看上一个。

    替换

    > :%s/a/b   将文档中的每行第一个字符串a替换为b (可以对应多个字符)

    >:%s/a/b/g   将文档中所有字符串a替换为b

    >:%s/a/b/gc  由你决定文档中每一个字符串a是否替换为b, 输出如下命令选择项,这里的y表示同意替换当前字符串;n表示不替换;a表示替换所有匹配到的字符串;q表示退出此次替换操作。

    >:n1,n2 s/old/new/g :在n1和n2行之间查找old字符串,全部替换成字符串new。

    多窗口操


    1、打开多个窗口
    打开多个窗口的命令以下几个:
    横向切割窗口
    :new+窗口名(保存后就是文件名) 
    :split+窗口名,也可以简写为:sp+窗口名
    纵向切割窗口名
    :vsplit+窗口名,也可以简写为:vsp+窗口名
    2、关闭多窗口
    可以用:q!,也可以使用:close,最后一个窗口不能使用close关闭。使用close只是暂时关闭窗口,其内容还在缓存中,只有使用q!、w!或x才能真能退出。
    :tabc 关闭当前窗口
    :tabo 关闭所有窗口
    3、窗口切换
    :ctrl+w+j/k,通过j/k可以上下切换,或者:ctrl+w加上下左右键,还可以通过快速双击ctrl+w依次切换窗口。
    4、窗口大小调整
    纵向调整
    :ctrl+w + 纵向扩大(行数增加)
    :ctrl+w - 纵向缩小 (行数减少)
    :res(ize) num  例如::res 5,显示行数调整为5行
    :res(ize)+num 把当前窗口高度增加num行
    :res(ize)-num 把当前窗口高度减少num行
    横向调整
    :vertical res(ize) num 指定当前窗口为num列
    :vertical res(ize)+num 把当前窗口增加num列
    :vertical res(ize)-num 把当前窗口减少num列
    5、给窗口重命名
    :f file
    6、vi打开多文件
    vi a b c
    :n 跳至下一个文件,也可以直接指定要跳的文件,如:n c,可以直接跳到c文件
    :e# 回到刚才编辑的文件
    7、文件浏览
    :Ex 开启目录浏览器,可以浏览当前目录下的所有文件,并可以选择
    :Sex 水平分割当前窗口,并在一个窗口中开启目录浏览器
    :ls 显示当前buffer情况
    8、vi与shell切换
    :shell 可以在不关闭vi的情况下切换到shell命令行
    :exit 从shell回到vi

    移动光标类

    这是编辑状态下进行的操作(编辑状态在下一节中介绍)

    上下左右移动

    >  k  上移 j 下移 h 左移 l 右移   

    > num+j/k/h/l  向上/下/左/右移动num个单位

    光标移动

    光标的移动,前提是vim在命令模式下进行的:

    > gg 跳转到文档的首行开始的位置

    > G 跳转到文档结尾行的开始位置

    > num + G 跳转到指定行数的位置,这里的num是一个整形数字。

    > 0  跳转至行首

    > $ 跳转到行尾

    > w 光标每次跳动一个英文单词,光标定位到下一个单词的首字母。

    > e 光标每次跳动一个英文单词,光标定位到下一个单词的尾部。

    > % 光标移动到当前字符所“匹配”的字符。“匹配”:成对的字符 如‘{’和‘}’,‘(’和‘)’,‘['和’]'。

    编辑类

    vim在正常模式状态下进行的操作。

    插入

    > i   在光标所在字符前执行插入操作。这时候vim由正常状态到了编辑状态。vim的变化如下图所示。

    > I  (大写的i) 在光标所在行行首插入。

    >a   在光标所在字符后执行插入操作。

    >A   在光标所在行行尾插入。

    > o 同 i 操作,不过o命令是在光标的下一行位置增添新的一行,并且vim进入如上图所示的状态,可以插入任意字符。

    >O (大写的o) 在光标所在行,上一行插入。命令实现速度要比o慢许多,通常使用‘ko’命令代替。

    复制

    > yt*    复制光标所在位置到指定字符前的位置的字符串,这里的*就是指定字符,可以为任意一字符。

    > yf*    复制光标所在位置到指定字符的位置的字符串(包括指定位置),这里的*就是指定字符,可以为任意一字符。

    > y$   复制到行尾 

    > yy   复制光标所在行

    > num + yy / y + num +y   复制光标所在行及其之后num-1行,共num行。

    更多y与移动光标类命令组合如yw,yG 请自行挖掘

    粘贴

    >  p   将所复制的内容粘贴。

    删除

    > dd  删除光标所在行  用法与 y 相同。

    > x  删除光标处的一个字符。

    调用寄存器

    >"+ 实现与外部文件的复制和粘贴。常用的命令组合是”+y复制,”+p粘贴。一个比较常用的场景,如用nodepad打开txt文档ctrl+A,ctrl+C进行复制,打开vim窗口,调整光标位置,”+p粘贴;或在vim窗口中gg”+yG(调整光标位置至文档开头并复制至文档末尾),并打开nodepad,ctrl+V复制

    im命令可以连续组合使用,有许多神奇的特效。不足请指正。

  • 相关阅读:
    计划任务工具-windows
    [JavaWeb基础] 017.Struts2 和 ajax交互简介
    html5学习之路_007
    [PHP学习教程
    [PHP学习教程
    [注]还原记忆力的真面目
    理解Java对象序列化
    HashTable和HashMap的区别详解
    HDFS NameNode内存全景
    HDFS 原理、架构与特性介绍
  • 原文地址:https://www.cnblogs.com/gaochsh/p/6762463.html
Copyright © 2020-2023  润新知