• Linux学习笔记之VIM


    项目3 文本编辑器vim

    3.1 vim的工作模式

    Vi:Visual Editor的缩写,命令行界面下的文本编辑器;Unix操作系统中默认的编辑器等

    Vim:Vi IMproved的缩写,Vi的升级版;用彩色显示文本,可视为程序编辑器等

    默认CentOS已经安装Vim,如果没有,联网后使用以下命令进行安装:

    yum install -y vim-enhanced
    

    Vim的3种工作模式:

    • 一般模式(指令模式)

      • 使用命令 vim filename 进入一般模式:
        移动光标
        删除字符或行
        复制和粘贴
        查找和替换
    • 编辑模式

      • 从一般模式切换到编辑模式:i、I、a、A、o、O、r、R 中的任意一个
      • 当进入编辑模式时,屏幕的最后一行出现“INSERT”或“REPLACE”的字样
      • 从编辑模式返回一般模式:ESC 键
    • 从一般模式进入编辑模式

      按键 作用
      i 在光标前插入字符
      I 在光标所在行的行首插入字符
      a 在光标后插入字符
      A 在光标所在行的行末插入字符
      o 在光标所在行下插入新的一行
      O 在光标所在行上插入新的一行
      r 替换光标所在的字符,只替换一次
      R 一直替换光标所在的字符,直到按下Esc键
    • 命令行模式

      按键 作用
      :w 保存文本
      :w! 如果文件属性为只读时,强制保存
      :q 退出vi
      :q! 强制退出vi,不管编辑还是未编辑都不保存退出
      :wq 保存之后退出
      :e! 将文档还原到最原始状态
      ZZ 等价于:wq
      :w [filename] 将文档另存为filename
      :r [filename] 在光标所在行的下面读入filename文档的内容
      :set nu 在每行的行首设置行号
      :set nonu 取消行号
      :n1,n2 w [filename] 将n1到n2行的内容另存为filename文件中
      :sp 在vim中实现文件多窗口编辑
      :only 只保留当前分屏
      :q 退出当前所在分屏
      :n 多文件编辑不分屏显示时,编辑下一个文件
      :N 多文件编辑不分屏显示时,编辑上一个文件
      :files 列出目前vim开启的所有文件
      :! command 暂时离开vi,执行某个Linux命令,例如::! ls/home 暂时列出/home下的文件,然后会提示按回车返回vi
      • 从一般模式进入命令行模式:
        保存文件
        退出Vim
        读入外部文件
        显示行号等

    3.2 vim常见命令

    一般模式下的功能键分类:

    • 移动光标

      按键 作用
      h或左方向键 光标向左移动一个字符
      j或下方向键 光标向下移动一个字符
      k或上方向键 光标向上移动一个字符
      l或右方向键 光标向右移动一个字符
      n方向键(n是数字) 光标向方向键方向移动n个字符
      Ctrl+f或PgDn 屏幕向文件尾移动一页
      Ctrl+b或PgUp 屏幕向文件头移动一页
      n空格(n是数字) 按下数字n然后按空格,则光标向右移动n个字符,如果该行字符数小于n,则光标继续从下行开始向右移动,一直到n
      0(数字0)或Home 移动到本行行首
      $或End 移动到本行行尾
      H 光标移动到当前屏幕的最顶行
      M 光标移动到当前屏幕的中央那一行
      L 光标移动到当前屏幕的最底行
      G 光标移动到文本的最末行
      nG(n是数字) 光标移动到文本的第n行
      gg 光标移动到文本的首行
      n回车(n是数字) 光标向下移动n行
    • 删除、复制和粘贴

      按键 作用
      x, X x为向后删除一个字符,X为向前删除一个字符
      nx(n是数字) 向后删除n个字符
      dd 删除光标所在的那一行
      ndd(n是数字) 删除光标所在的向下n行
      d1G 删除光标所在行到第1行的所有数据
      dG 删除光标所在行到末行的所有数据
      yy 复制光标所在的那一行
      nyy 复制从光标所在行开始的向下n行
      p,P p将复制的数据从光标下一行粘贴,P则从光标上一行粘贴
      y1G 复制光标所在行到第1行的所有数据
      yG 复制光标所在行到末行的所有数据
      J 将光标所在行与下一行的数据结合成一行
      u 还原过去的操作
      Ctrl+r 重复上一个操作
      . 重复前一个操作
    • 查找和替换

      按键/输入 作用
      /keyword 向光标之后寻找名为keyword的字符串,当找到第一个keyword后,该单词高亮显示,按下“n“继续查找下一个,按下”N“,反方向查找下一个
      ?keyword 向光标之前寻找名为keyword的字符串,当找到第一个keyword后,该单词高亮显示,按下“n“继续查找下一个,按下”N“,反方向查找下一个
      :n1,n2s/word1/word2/g 在n1和n2行之间查找word1字符串并替换为word2
      :1,$s/word1/word2/g 从第一行到最末行,查找word1并替换为word2
      :1,$s/word1/word2/gc 在第一行和最末行之间查找word1,替换为word2之前需要用户确认

    3.3 vim的其他事项(恢复文件与打开时的警告信息+额外功能)

    文件救援--交换文件(filename.swp)

    在使用 vim 编辑的时候会产生一个 swp 文件, 类似于一个编辑缓冲存档. 该文件是隐藏状态, 必须使用 ls -a 命令才能看到。重新连接上机器后, 再次打开该文件时, 一般会弹出类提示:
    说这文件有个编辑缓存文档, 你要使用下面的哪个命令来继续操作?

    • 【O】以只读方式打开
    • 【E】直接编辑
    • 【R】恢复
    • 【D】删除交换文件
    • 【Q】退出
    • 【A】中止

    注意:文件 filename.swp 不需要时,需要用户手动删除,用 rm -rf 的方式删除该swp文件


    彩蛋(因后续文本改动,思维图并没有及时同步变动,请读者自行补充)


    未完,待续 ~

  • 相关阅读:
    flock对文件锁定读写操作的问题 简单
    hdu 2899 Strange Fuction(二分)
    hdu 2199 Can you solve this equation? (二分)
    poj 3080 Blue Jeans (KMP)
    poj 2823 Sliding Window (单调队列)
    poj 2001 Shortest Prefixes (trie)
    poj 2503 Babelfish (trie)
    poj 1936 All in All
    hdu 3507 Print Article (DP, Monotone Queue)
    fzu 1894 志愿者选拔 (单调队列)
  • 原文地址:https://www.cnblogs.com/codeplayer1999/p/12556122.html
Copyright © 2020-2023  润新知