zoukankan      html  css  js  c++  java
  • vim模式及基础命令

    VIM基本介绍
    vi和在修改vim命令是linux中强大的文本编辑器,由于linux系统一切皆文件,而配置一个服务就是在修改其配置文件的参数
    vim其实是vi的升级版
    yum install -y vim

    vi和vim的区别
    vi不显示高亮颜色语法
    vim显示高亮颜色语法
    其他功能没什么区别,所以在linux系统下,使用vi还是vim取决个人习惯

    vim模式介绍
    vim的三种模式的切换  图1
    命令模式
           控制光标移动、可对文件进行复制、粘贴、删除等工作。使用vim filename编辑一个文件时,一进入该文件
           就是命令模式了。在这个模式下,可以进行光标移动、复制、删除、粘贴操作。
    输入(编辑)模式
           从命令模式进入编辑模式,只需你按一个键即可(i,l,a,A,o,O,r,R)。当进入编辑模式时,会在屏幕
           的最下一行出现“INSERT”的字样。从编辑模式回到命令模式只需要按键盘左上方的ESC键即可。
    末行模式
           在命令模式下,输入“:”或者“/”即可进入末行模式。在该模式下,可以进行的操作有,显示行号、搜索、替换
           、保存、退出

                  图1   vim模式之间的切换

    vim编辑器配置文件流程如下:
    1、默认打开文件处于命令模式
    2、需要从命令模式切换至编辑模式
    3、编辑模式修改配置文件,然后返回命令行模式
    4、最后通过命令模式进入末行模式,保存和退出操作

    注意:在vim中,无法直接从编辑模式切换到末行模式

    yum install -y httpd
    命令行模式
    光标的移动
           方向:hjkl,小键盘的上下左右
    光标的跳转
           行间跳转
                   G/shift+g 跳转光标到行末
                   gg 跳转光标到行首
                   Ngg 跳转光标至当期文件内的N行
          行内跳转
                   $/end 将当前光标跳转到光标所在行的末端(尾部)
                   ^/home 将当前光标跳转到光标所在行的头部-->数字0
          翻页
                   ctrl+f/pagedown 向下翻页
                   ctrl+b/pageup 向上翻页
    [root@localhost tmp]# cp /etc/httpd/conf/httpd.conf /tmp/
    [root@localhost tmp]# vim httpd.conf

    复制
           yy 复制当前光标所在的行
           Nyy 复制挡墙光标以及光标以下N-1行

    粘贴
           p 粘贴至当前光标下一行
           P(大写) 粘贴至当前光标上一行

    删除
           dd 删除当前光标所在的行
           Ndd 删除当前光标所在的行及以下的N-1行
           dG 删除当前光标以后的所有行
           D 删除当前光标到行尾
           x 删除当前光标标记往后的字符
           X 删除当前光标标记往前的字符

    剪切
           先删除dd,后粘贴p

    撤销
           u 撤销上一次的操作
           U 撤销之前所有的操作

    替换
           r 替换当前光标标记的当个字符
           R 进入REPLACE,连续替换,ESC结束


    编辑模式
    i 进入编辑模式,光标不做任何操作
    I 进入编辑模式,并且光标会跳转至本行的头部
    a 进入编辑模式,将当前光标往后一位
    A 进入编辑模式,将光标移动至本行的尾部
    o 进入编辑模式,并在当前光标下添加一行空白内容
    O 进入编辑模式,并在当前光标上添加一行空白内容

    末行模式
    :w 保存当前的状态
    :w! 强制保存当前的状态
    :q 退出当前文档(文档必须保存才能退出)
    :q! 强制退出文档不会修改当前内容
    :wq 先保存,在退出
    :wq! 强制保存并退出
    :x 先保存,在退出
    ZZ 保存退出,shift+zz
    行间跳转:
    :number 跳转至对应的行号
    复制
          :ny 复制单行
           :m,ny 复制m到m行后的内容
           :%y 复制所有行
    删除
           :nd 删除单行
           :m,nd 删除m行及m行后的n-1行
           :%d 删除文件所有内容
    查找 /string 需要搜索的内容
           n 按搜索到的内容依次往下进行查找
           N 按搜索到的内容依次网上进行查找
    替换
           :s#bin#test 替换光标所在行的第一个满足条件的内容
           :s#bin#test#g 替换光标所在行的所有满足条件的内容
           :m,nds#sbin#test#g 替换m-n行中包含sbin的内容为test-5行中包含sbin的内容为test
           :%s#bin#test#g 替换整个文本文件中包含sbin的替换为test
           :%s#bin#test#gc 替换内容时提示是否需要替换
    另存
           :w /root/test 将文件所有内容另存为/root/test
    读入
           :r /etc/hosts 读入/etc/hosts文件当前光标下面
           :5r /etc/hosts指定/etc/hosts文件当前文件的哪行下面

    VIM视图模式
    视图模式(从命令行模式进入视图模式)
    ctrl+v 进入VISUAL BLOCK选中需要注释的行(可视块模式)
    1.插入:shift+i 进入编辑模式,输入#,结束按ESC键
    2.删除:选中内容后,按x或d键删除
    3.替换:选中需要替换的内容,按下r键,然后输入替换后的内容
    shift+v 进入VISUAL LINE选中行内容(可视行模式)
    1.复制:选中行内容后按y键即可复制
    2.删除:选中行内容后按d键删除

    VIM 环境变量
    环境变量临时生效

    :set nu 显示行号
    :set ic 忽略大小写,在搜索的时候有用
    :set al 自动缩进
    :set list 显示制表符(空行、tab键)
    :set no[nu|ic|ai...] 取消临时设定的变量

    环境变量永久生效
    ~/.vimrc 个人环境变量(优先级高) /etc/vimrc 全局环境变量

     VIM个人练习:

    请把/etc/passwd复制到/tmp/目录下,并重命名为test.txt
          cp /etc/passwd /tmp/test.txt
          使用vi,在vi里面使用末行模式的w和e来实现
    用vim打开test.txt并设置行号
         :set nu
    分别向下、向右、向左、向右移动5个字符
    把光标移动到第10行
       :10
       10gg
    把光标移动到行末,在移动到行首
         end$ home^
    移动到test.txt文件的最后一行
         G
    移动到文件的行首
         gg 1gg :1
    搜索文件中出现的root并数一下一共出现多少个,不区分大小写
         :set ic :%s/root//ng :%s/root/&/ng
    把从第一行到第三行出现的root替换成student
         :1,3s#root#student#g
    还原上一步操作
         u
    把整个文件中所有的root替换成stduent
        :%s#root#student#g
    把光标移动到20行,删除本行
       :20
        dd
    还原上一步操作
         u
    删除第19行
        :19d
    还原上一步操作
         u
    删除从5行到10行的所有内容
         :5,10d
    还原上一步操作
          u
    复制2行并粘贴到11行下面
         :2y :11 p
    还原上一步操作(按两次u)
    复制从11行到15行的内容并粘贴到8行上面
        :11,15y :8 P
    还原上一步操作(按两次u)
    把13行到18行的内容移动文件的尾部
        :13d :18 p
    还原上一步操作(按两次u)
    光标移动到首行,把/sbin/nologin改成/bin/bash
        gg :s#/sbin/nologin#/bin/bash#g
    在第一行下面插入新的一行,并输入“#hello”
       :1 o # hello
    保存文档并退出
       :wq

  • 相关阅读:
    关于一些无法被代替的宏定义函数
    error in invoking target 'mkldflags ntcontab.o nnfgt.o' of makefile
    ajax——XMLHttpRequest
    Readprocessmemory使用方法
    互信息的概念和定理
    音频编辑大师 3.3 注册名称 许可证
    youwuku和koudaitong以及weimeng差异
    delphi webbrowser 经常使用的演示样本
    大约ActionContext.getContext()使用体验
    Codeforces Round #243 (Div. 1)——Sereja and Two Sequences
  • 原文地址:https://www.cnblogs.com/xmtxh/p/11710772.html
Copyright © 2011-2022 走看看