博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vim使用
阅读量:4691 次
发布时间:2019-06-09

本文共 3202 字,大约阅读时间需要 10 分钟。

vi使用:

  基本模式:
  输入模式:
  末行模式:
  内置的命令行接口

打开文件:
  +num:打开文件后,直接让光标处于第num行;
  +/PATTERN:打开文件后,直接让光标处于第一个被PATTERN匹配到的行首;
    例如:vim +3 /etc/passwd
      vim +/root /etc/passwd
模式转换:
  i:insert;在光标所在处插入;
  a:append;在光标所在处后面插入;
  o:在当前光标所在行的下方打开一个新行;
  I:在当前光标所在行的行首输入;
  A:在当前光标所在行的行尾输入;
  O:在当前所在行的上方打开一个新行;
关闭文件:
  :q 退出;
  :q! 强制退出,丢弃此前作出的修改;
  :wq 保存退出;
  :x 保存退出;
  :w /PATH/TO/SOMEWHERE
  ZZ:保存退出;
快速光标跳转:
  字符间跳转:
    h:左
    j:下
    k:上
    l:右
    num l/k/j/h:一次跳过指定num个字符;
  单词间跳转:
    w:下一个单词的词首;
    e:当前或下一个单词的词尾;
    b:当前或前一个单词的词首;
    num w/e/b:由num指定一次跳转单词的数量;
  行首或行尾跳转:
    ^:跳转至光标所在行行首的第一个非空白字符;
    0:跳转至光标所在行行首;
    $:跳 转至光标所在行行尾;
行间移动:
  num G:跳转至由num指定的行;
  G:跳转至最后一行;
  1G或gg:第一行;
句间移动:
  ):跳转至下一句
  (:跳转至上一句;
段落间移动:
  }:跳转至下一段;
  {:跳转至上一段;
vim编辑命令:
  字符编辑:
    x:删除光标处的字符;
    num x:删除光标处起始的num个字符;
    xp:交换光标所在处的字符及其后面字符的位置;
  替换命令:
    r:替换光标所在处的字符,但不改变编辑模式;
  删除命令:
    d^
    d$
    d0
    dw
    de
    db
    num dw/e/b
    dd:删除光标所在整行
    num dd:删除光标所在行及以下num行;
  粘贴命令:
    p:缓冲区中如果存储的为整行,则粘贴至光标所在行的下方。否则,则粘贴至当前光标所在处的后面;
    P:缓冲区中如果存储的为整行,则粘贴至光标所在行的上方。否则,则粘贴至当前光标所在处的前面;
  复制命令:
    y:复制,工作行为与d命令相似;
    yy:复制整行;
    num yy:包括光标所在行以及向下num-1行;
    y$
    y0
    y^
    ye
    yw
    yb
  改变命令:
    c:修改
      由编辑模式转换为输入模式;
      c$
      c^
      c0
      cb
      ce
      cb
      cc:删除并输入新内容;
      num cc:
  可视化命令:
    v:按字符选定;
    V:按行选定;
      注:经常结合编辑命令使用;
  撤销此前的编辑:
    u:撤销此前的操作;
    num u:撤销指定次数的操作;
    撤销此前的撤销:Ctrl+r
    重复前一个编辑操作:“.”
  翻屏操作:
    Ctrl+f:向文件尾部翻一屏;
    Ctrl+b:向文件首部翻一屏;

    Ctrl+d:向文件尾部翻半屏;

    Ctrl+u:向文件首部翻半屏;
vim的末行模式:
  内建的命令行接口:
    地址定界:
      :start_pos,end_pos
        num:具体第num行,例如2表示第二行;
        num1,num2:从第num1行起始,到num2行结尾;
        num1,+num2:从num1行起始,加上num2表示的行数,以及对num1到num1+num2之间的行所做的操作;
      “.”:表示当前光标所在行;
      $:最后一行;
      %:全文,相当于1$;
      /模式1/,/模式2/:从第一次被模式1匹配的行开始,一直到第一次被模式2匹配到的行结束;
        使用方式:
          后直接跟一个编辑命令;
            d
            y
            w /PATH/TO/SOMEWHERE:将范围内的行另存至指定文件中;
            r /PATH/TO/SOMEWHERE:从指定位置插入指定文件中的所有内容;
    查找:
      /PATTERN:从当前光标所在处向文件尾部查找;
      ?PATTERN:从当前光标所在处向文件首部朝朝;
      n:与命令同方向
      N:与命令反方向;
    查找并替换:
      s:在末行模式下完成查找替换操作;
      s/要查找的内容/替换为的内容/修饰符;
        要查找的内容,可使用模式;
        替换为的内容:不能使用模式,但可以使用\1,\2...等后向引用符号,还可以使用"&"引用前面查找时查找到的整个内容;
      修饰符:
        i:忽略大小写;
        g:全局替换,默认情况下,每行只替换第一次出现;
练习:
1、复制/etc/grub.conf至/tmp目录,用查找替换命令删除/tmp/grub.conf文件中的行首空白字符;
2、复制/etc/init.d/functions文件至/tmp目录,用查找替换命令将/tmp/functions的每行开头为空白字符的行的行首添加一个#号

多文件模式:
  vim FILE1 FILE2 FILE3
    :next 下一个文件;
    :prev 前一个文件;
    :first 第一个文件;
    :last 最后一个文件;
    :wall 保存所有文件;
    :qall 退出所有;
窗口分割模式:
  vim -o|-O FILE1 FILE2
    -O:垂直分隔;
    -o:水平分割;
  在窗口间切换:Ctrl+w Arrow
  单文件窗口分割:
    Ctrl+w,s:split 水平分割;
    Ctrl+w,v:verti 垂直分隔;

定制vim工作特性:

  配置文件:
    全局:/etc/vimrc
    个人:~/.vimrc
    末行:当前vim进程有效;

在末行模式下

  1、行号:

    显示:set number,简写set nu

    取消显示:set nonumber 简写set nonu

  2、括号匹配:
    匹配:set showmatch,简写set sm
    取消:set nosm
  3、自动缩进:
    启动:set ai
    取消:set noai
  4、高亮搜索:
    启用:set hlsearch
    取消:set nohlsearch
  5、语法高亮:
    启用:syntax on
    禁用:syntax off
  6、忽略字符大小写:
    启用:set ic
    禁用:set noic

转载于:https://www.cnblogs.com/swnlsdln/p/10834492.html

你可能感兴趣的文章
WPF之神奇的资源
查看>>
Java 大数运算
查看>>
L2TP/IPSec一键安装脚本
查看>>
DEV开发之界面皮肤
查看>>
7月份总结,8月到9月15日 大体计划
查看>>
.net 设计模式之工厂模式
查看>>
Regular Expressions(Chapter 7 of JavaScript: The Good Parts)
查看>>
001-数据库设计问题
查看>>
读书笔记_Effective_C++_条款四十八:了解模板元编程
查看>>
读《图解HTTP》有感-(返回结果的HTTP状态码)
查看>>
JSON.parse()与JSON.stringify()的区别
查看>>
C博客作业--指针
查看>>
2019 再次发起学习的号角!
查看>>
内存和硬盘、硬盘缓存和虚拟内存的概念
查看>>
.Net配置文件——反射+配置文件存储类型实例
查看>>
操作系统hosts文件
查看>>
1. 去除在谓词列上编写的任何标量函数
查看>>
知识点介绍
查看>>
迷途指针
查看>>
关于DO/DTO/VO的理解
查看>>