zoukankan      html  css  js  c++  java
  • vim 文本编辑器

    文本编辑器:字处理器

    vim: Visual Interface iMproved

    全屏编辑器,模式化编辑器
    vim模式
      编辑模式(命令模式)
      输入模式
      末行模式

    模式转换:
      编辑--> 输入
        i:在当前光标所在的字符的前面,转换为输入模式;
        a: 在当前光标所在的字符的后面,转换为输入模式;
        o:在当前光标所在行的下方,新建一行,转换为输入模式;

        I:在当前光标所在的行首,转换为输入模式;
        A:在当前光标所在的行尾,转换为输入模式;
        O: 在当前光标所在行的上方,新建一行,转换为输入模式;

      输入--> 编辑
        ESC

      编辑--> 末行
        :

      末行-->编辑
        ESC 可能多次

    一、打开文件
    #vim /pass/to/somefile

      vim +n somefile 直接到第n行
      vim + somefile 直接到文件的最后一行
      vim +/PATTERN: 打开文件,定位到第一次陪PATTERN匹配到的行首

    二、关闭文件

    1、;末行模式关闭文件

      :q 退出
      :wq 保存并退出
      :q! 不保存退出
      :w 保存
      :w! 强制保存
      :wq --> :x

    2、编辑模式下退出
      ZZ: 保存并退出

    三、移动光标(编辑模式)
    1、逐字符移动
      h: 左
      l: 右
      j: 下
      k: 上
      #h:移动指定数目的字符

    2、逐个单词移动
      w:表示移动到下一个单词的词首;
      e:表示移动到当前单词或下一个单词的词尾;
      b:表示移动到当前单词或前一个单词的词首;

      #w: #个单词

    3、行内跳转:
      0:行首,绝对行首;
      ^: 行首的第一个非空白字符
      $:绝对行尾;


    4、行间跳转
      #G:直接跳转至第#行内
      G:跳到最后一行;

      末行模式下,直接给出行号即可
      
    四、翻屏操作
      ctrl + f 向下
      ctrl + b 向上

      ctrl + d: 向下翻半屏
      ctrl + u: 向上翻半屏

    五:删除单个字符
      x: 删除光标所在的单个字符
      #x: 删除光标所在处向后的共#个字符

    六:删除命令: d命令与跳转命令组合使用
      d0
      d$
      dw
      de
      db
      3dw
      #d跳转符:删除跳转符范围的#个字符
      dd
      #dd:删除包括光标行所在内的#行
      末行模式下:
        :1,8d
      :.,100d 当前行到100行
      : .,+10d 当前行向下10行
      .: 当前行
      $: 最后一行
      +#: 向下#行
      -#:向上#行;

      删除的内容会保存在缓冲区中,最后一次删除的内容可以复制到光标所在的位置;

    七、粘贴命令 p
      p: 如果删除的或复制的为整行内容,则粘贴至所在行的下方;如果复制或删除的内容为非整行
    则粘贴至贯标所在行的后面;
      P: 如果删除的或复制的为整行内容,则粘贴至所在行的上方;如果复制或删除的内容为非整行
    则粘贴至贯标所在行的前面;

    八、复制命令 y
      y命令同d命令

    九、先删除内容再转换为输入模式
      c同d命令 修改命令

    十、替换:r replace
      r: 替换单个字符 当前光标下,r+需要被替换的字符
      R: 进入替换模式

    十一、撤销编辑操作 u
      u:撤销前一次的编辑操作,连续u可以撤销前次的n<50次的操作;
      #u:直接撤销前#次编辑操作;
      还原最近的一次撤销操作:ctrl+r

    十二、重复前一次编辑操作
      .

    十三、可视化模式
      v: 按字符选取
      V: 按矩形块选取 整行选取
      然后进行d p y操作;

    十四、查找
      /PATTERN 从首向尾部查找
      ?PATTERN 从尾部向首部查找
      n 向下跳转
      N 向上跳转

    十五、查找并替换
      在末行模式下使用s命令 和sed命令一样
      ADDR1,ADDR2s@PATTERN@string@gi
      从当前行到倒数第二行 he替换成HE: .,$-1s/he/HE/g

    练习:将/etc/instructor.repos.d/service.repo文件中的ftp://instructor.example.com/pub替换成http://127.16.0.1/yum

    %s@ftp://instructor.example.com/pub@http://127.16.0.1/yum@g

    十六 用vim编辑多个文件

    两个文件相互交互数据
    vim FILE1 FILE2 FILE3
    :next 切换至下一个文件
    :prev 切换至前一个文件
    :last 切换至最后一个文件
    :first 切换至第一个文件

    十七、分屏显示一个文件
    ctrl + w, s: 水平拆分窗口
    ctrl + w, v: 垂直拆分窗口

    在窗口间切换光标:
    ctrl + w:ARROW(向上的箭头,向下的箭头)
    :qa 关闭所有窗口

    十八、分窗口编辑多个文件
    vim -o:水平分割显示
    vim -O:垂直分割显示

    十九、将当前文件中的部分内容另存为另外一个文件
    末行模式下使用w命令
    :w
    :ADDR1,ADDR2w /path/to/somewhere

    二十、将另外一个文件的内容填充在当前文件中
    :r /path/to/somewhere

    vim /etc/inittab
    :r /etc/sysinit

    二十一、跟shell交互
    :! COMMAD

    二十二、高级话题
    1、显示或取消行号
    :set nu
    :set nonu
    2、显示忽略区分字符大小写
    :set ignorecase
    :set ic
    :set noic
    3、设定自动缩进
    :set autoindent
    :set ai
    :set noai
    4、查找到的文本高亮显示或取消
    :set hlsearch
    :set nohlsearch
    5、语法高亮
    :syntax on
    :syntax off

    二十三、配置文件
    /etc/vimrc
    ~/.vimrc

    vimtutor vim教程

  • 相关阅读:
    java中的拷贝(二)深克隆
    java中的拷贝(一)
    java类的访问权限
    对象和对象引用
    equals和==
    类与继承(一)
    WebSocket简单介绍
    php获取请求的方式(get/post)
    php 使用jquery实现ajax
    PHP 系统常量及自定义常量
  • 原文地址:https://www.cnblogs.com/chrisDuan/p/4593644.html
Copyright © 2011-2022 走看看