zoukankan      html  css  js  c++  java
  • Vim文本编辑工具

    Vim介绍

    vim是vi的升级版本,比如:vim编辑文本时,会显示颜色,而vi不显示颜色。

    yum安装vim

    [root@centos-01 ~]# vim
    -bash: vim: 未找到命令
    [root@centos-01 ~]# yum install -y vim-enhanced

    vim的三种模式

    vim的三种模式:一般模式、编辑模式、命令模式。

    1. 一般模式:当vim filename编辑一个文件时,一进入该文件就是一般模式了。在这个模式下,你可以做的操作有:上下移动光标;删除某个字符;删除某行;复制、粘贴一行或者多行。
    2. 编辑模式:一般模式下,是不可以修改某一个字符的。从一般模式进入编辑模式,只需你按一个键即可(i、I、a、A、o、O、r、R)。当进入编辑模式时,会在屏幕的最下一行出现“INSERT”或“REPLACE”的字样。从编辑模式回到一般模式只需要按一下键盘左上方的ESC键即可。
    3. 命令模式:在一般模式下,输入”:”或者“/”即可进入命令模式。在该模式下,你可以搜索某个字符或者字符串,也可以保存、替换、退出、显示行号等。

    拷贝文件用作练习

    [root@centos-01 ~]# yum install -y dnsmasq
    [root@centos-01 ~]# cp /etc/dnsmasq.conf /tmp/1.txt
    [root@centos-01 ~]# vim /tmp/1.txt

    一般模式下移动光标

    按键 行为操作
    h / 向左方向键 光标向左移动一个字符
    j / 向下方向键 光标向下移动一个字符
    k / 向上方向键 光标向上移动一个字符
    l(L的小写) / 向右方向键 / 空格键 光标向右移动一个字符
    Ctrl+f / PageUp键 屏幕向前移动一页
    Ctrl+b / PageDown键 屏幕向后移动一页
    数字0 / Shift+6 移动到本行行首
    Shift+4 移动到本行行尾
    gg 移动到该文本的首行
    G 光标移动到文本的尾行
    nG(n是数字) 移动到该文本的第n行
    Ctrl+d 屏幕向前移动半页
    Ctrl+u 屏幕向后移动半页
    n空格 / nl(n是数字) 按下数字然后按空格 / l,则光标向右移动n个字符;如果该行字符小于n,则光标继续从下行开始向右移动一直到n

    一般模式下复制剪切粘贴

    按键 行为操作
    dd 删除/剪切光标所在的那一行
    ndd(n为数字) 删除/剪切从光标所在行开始的n行
    yy 复制光标所在行
    nyy 从光标所在行开始,向下复制n行
    p 从光标所在行开始,向下粘贴已经复制的内容
    P 从光标所在行开始,向上粘贴已经复制的内容
    u 还原上一步操作
    Ctrl+r 取消上一步的还原
    x 向后删除/剪切一个字符
    X 向前删除/剪切一个字符
    v 按v后移动光标会选中指定字符,然后可以实现指定字符的复制、剪切等操作

    进入编辑模式

    按键 行为操作
    i 在当前字符前插入字符
    I 在当前行的行首插入字符
    o 在当前行下插入新的一行
    O 在当前行上插入新的一行
    a 在当前字符后插入字符
    A 在当前行的行尾插入字符

    命令模式

    按键 行为操作
    /word 向光标之后寻找一个字符串名为word的字符串,当找到第一个word后,按“n”继续搜后一个,“Shift+n”搜前一个
    ?word 向光标之前寻找一个字符串名为word的字符串,当找到第一个word后,按“n”继续搜前一个
    :n1,n2s/word1/word2/g 在n1和n2行间查找word1这个字符串并替换为word2
    :1,$s/word1/word2/g 从第一行到最末行,查找word1并替换成word2
    :1,$s/word1/word2/gc 加上c的作用是,在替换前需要用户确认

    如果查找/替换的字符串含有“”符号,那么可以在“”符号前加上“/”符号,例如查找“/etc/hosts”,可以这样操作“//etc/hosts”。查找替换字符串时,字符串包含“”符号,也可以把“/”换成“#”或者“@”,例如“:1,$s#word1#word2#g”。

    按键 行为操作
    :set nu 在每行的行首显示行号
    :set nonu 取消行号
    :nohl 取消高亮
    :w 将编辑过的文本保存
    :w! 若文本属性为只读时,强制保存
    :q 退出
    :q! 不管编辑或未编辑都不保存退出
    :wq 保存退出
    :x 在编辑文件后执行“:x”,效果同“:wq”。如果打开文件查看,并没有任何改动,则“:wq”会更改mtime,“:x”不会更改mtime。

    Vim实践操作

    [root@centos-01 ~]# cp /etc/dnsmasq.conf /tmp/1.txt
    [root@centos-01 ~]# vim /tmp/1.txt
    1. 分别向下、向右、向左、向上移动6个字符(6j6l6h6k
    2. 分别向下、向上翻两页(分别按两次Ctrl+fCtrl+b
    3. 把光标移动到第49行(49G
    4. 把光标移动到行尾,再移动到行首(Shift+4Shift+6
    5. 移动到文件的最后一行(G
    6. 移动到文件的首行(gg
    7. 搜索文件中出现的“dnsmasq”(/dnsmasq
    8. 把从第1行到第10行出现的dnsmasq替换成dns(:1,10s/dnsmasq/dns/g
    9. 还原上一步操作(u
    10. 把整个文件中所有的etc替换成cte(:1,$s/etc/cte/g
    11. 还原上一步操作(u
    12. 把光标移动到第37行,删除字符“ly”(37G然后按l向右移动光标找到“ly”,按v选中指定字符再删除)
    13. 还原上一步操作(u
    14. 删除第50行(50G dd
    15. 还原上一步操作(u
    16. 删除第37-42行的所有内容(37G 6dd
    17. 还原上一步操作(u
    18. 复制第48行的内容并粘贴到第52行下面(48G yy 52G p
    19. 还原上一步操作(u
    20. 复制第37-42行的内容并粘贴到第45行上面(37G 6yy 45G P
    21. 还原上一步操作(u
    22. 把第37-42行的内容移动到第19行下面(37G 6dd 19G p
    23. 还原上一步操作(需要按两次u,因为先是剪切再粘贴)
    24. 把光标移动到文本首行,把第1行内容改为“#!/bin/bash”(先按gg,把光标定位到第1行,然后按字母A,进入编辑模式,Ctrl+u删除当前行内容,进行修改操作,完成后按ESC
    25. 在第1行下面插入新的一行,并输入“# Hello!”(按o进入编辑模式,同时光标向下另起一行,输入“# Hello!”)
    26. 保存文档并退出(按ESC键,输入“:wq”)
  • 相关阅读:
    二维数组实现八皇后问题
    解决Java接口内部类的main()方法无法打印输出的问题
    hbase shell 常见命令
    hbase-0.94 Java API
    JavaMail简单版实验测试
    经典KMP算法C++与Java实现代码
    Hadoop之倒排索引
    哈希哈希
    Servlet和JSP学习指导与实践(三):JSP助阵
    Servlet和JSP学习指导与实践(二):Session追踪
  • 原文地址:https://www.cnblogs.com/Genesis2018/p/8998089.html
Copyright © 2011-2022 走看看