zoukankan      html  css  js  c++  java
  • Linux入门进阶第一天——vim文本编辑器

    一、VI / VIM概述

      [更新]:VIM资料参见http://www.runoob.com/linux/linux-vim.html

      是什么?

        是一个文本编辑器。

        Vim是从 vi 发展出来的一个文本编辑器.

      VIM有哪些提升?

        现在很多发行版本直接把VI做成了VIM的软链接

      如果使用VI打开文件,发现右下角有光标所在行列,则说明此时的VI就是VIM!(当然,也可以通过alias进行查看)

    二、基本使用

      1.操作模式

        基本上 vi/vim 共分为三种模式,分别是

          命令模式(Command mode),——鸟哥将其定义为 一般模式

          插入模式(Insert mode)——鸟哥将其定义为编辑模式

          底线命令模式(Last line mode)。 ——鸟哥将其定义为命令行命令模式

        先看一个实例:

        //直接使用(vim abc),若存在abc文件,则直接打开,若不存在,则创建一个

      这里之前没有创建过此文件,所以执行后是一个新文件:

      //默认是命令模式

      先介绍几个简单的命令,按一下 i ,进入编辑模式

      输入一些测试字符(此处发现小键盘无法正常输入数字)

      编辑完成后如何保存退出呢

        按一下 esc,到底行模式,再按:wq ,保存并退出:

      可以看到,文件正确编辑了:

      三个模式的关系如下:

      

       接下来介绍一下几个命令模式

      2.命令模式

      用户刚刚启动 vi/vim,便进入了命令模式。

      此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。

      以下是常用的几个命令:

        • i 切换到插入模式,以输入字符。
        • x 删除当前光标所在处的字符。
        • : 切换到底线命令模式,以在最底一行输入命令。

      若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。

      命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。

      几个实例:

      

      //打开文件(如不存在则创建新文件),经测试 centOS7此命令会到上次编辑处,各发行版略有差异

      

      //打开文件并定位到最后一行

      

      //打开文件并定位后第三行(切换数字定位任意行)

      

      //行数超过最大行,直接定位到最后一行

      

      //定位到第一次出现 hello 的位置,按 n ,切换下一个

       

      //同时打开或者创建多个文件,第一次在第一个文件,在底行模式输入 :n,切换到下一个文件

      若已到最后一个文件,无法前进,按 :N(或者 :prev)回到上一个文件

      3.输入模式

      在命令模式下按下i就进入了输入模式。

      在输入模式中,可以使用以下按键:

        • 字符按键以及Shift组合,输入字符
        • ENTER,回车键,换行
        • BACK SPACE,退格键,删除光标前一个字符
        • DEL,删除键,删除光标后一个字符
        • 方向键,在文本中移动光标
        • HOME/END,移动光标到行首/行尾
        • Page Up/Page Down,上/下翻页
        • Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
        • ESC,退出输入模式,切换到命令模式

      4.底行模式

      在命令模式下按下:(英文冒号)就进入了底线命令模式。

      底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。

      在底线命令模式中,基本的命令有(已经省略了冒号):

        • q 退出程序
        • w 保存文件

      按ESC键可随时退出底线命令模式。

    三、常用指令

      更多指令介绍,参考菜鸟教程http://www.runoob.com/linux/linux-vim.html

      常用指令分类介绍,参考https://www.cnblogs.com/meet/p/4797069.html

      一般模式常用指令:

        G——跳到指定行,numG(例如10G跳到第10行,1G或者gg跳到首行),直接输入G跳到文件最后一行

        0/$——跳到行首或行尾

        yy/nyy——yy复制当前行,nyy复制光标所在行向下n行(例如10yy)

        p/P——在当前行下一行粘贴(p),上一行使用(P)

        dd——删除/剪切光标所在行

        /string——向后(向前使用?string)搜索string(例如/abc,搜索abc),使用n向下继续搜索,N向上继续搜索

          消除搜索过的高亮字符——:noh

        u——撤销

        .——重复前一次操作(小数点)

        ctrl+f/ctrl+b——前翻页/后翻页(下一页/上一页)

        :n1,n2s/old/new/g——替换(使用%不使用n1 n2则为全局替换),若要使用者确认,加上c参数

        :r filename——读取另外一个文件进入当前文件

      进入编辑模式常用指令:

        i——在光标处插入

        o/O——在光标下一行输入新的一行(o),在上一行使用O

      底线命令模式:

        :wq——储存后离开

        :set nu——显示行号

        :n——到第n行,例如:10到第10行

        :bn—下一个文件(VIM多文件操作)
        :bp—上一个文件

      最后,命令是一言难尽的,这里附上VIM键盘图

     四、其他功能

      1.救援模式

        参考http://m.blog.csdn.net/weixin_36210698/article/details/72892553

      2.多文件编辑

        vim file1 file2直接打开多个文件

    vim 1.txt 2.txt

        通过:files查看打开的文件列表

        

        使用:n进入下一个文件(:N进入上一个文件)

       3.多窗口展示  、

      在命令行界面输入“:sp {filename}”即可!那个 filename 可有可无, 如果想要在新窗口启动另一个文件,就加入文件名,否则仅输入 :sp 时, 出现的则是同一个文件在两个窗口间!

      

      相关操作:

        ctrl+w+↑/↓——窗口切换(按键的按法是:先按下 [ctrl] 不放, 再按下 w 后放开所有的按键,然后再按下 j (或向下方向键),则光标可移动到下方的窗口。

        ctrl+w+q——离开(或者切换到下面的窗口使用:q离开)

        4.vim环境参数配置

          也就是之前的设置环境参数的:set nu不用每次都写,可以通过配置文件进行配置使用时

          完整环境参数参见http://blog.csdn.net/u011192409/article/details/49208605

          整体 vim 的设置值一般是放置在 /etc/vimrc 这个文件,不过,不建议你修改他! 你可以修改 ~/.vimrc 这个文件 (默认不存在,请你自行手动创建!),将你所希望的设置值写入! 举例来说,可以是这样的一个文件:

    "这个文件的双引号 (") 是注解
    set hlsearch "高亮度反白
    set backspace=2 "可随时用倒退键删除
    set autoindent "自动缩排
    set ruler "可显示最后一列的状态
    set showmode "左下角那一列的状态
    set nu "可以在每一列的最前面显示行号啦!
    set bg=dark "显示不同的底色色调
    syntax on "进行语法检验,颜色显示。

        5.中文乱码问题

        参考https://jingyan.baidu.com/article/ab69b270de8b4f2ca7189f1d.html

         6.断行符转换

        参考https://www.cnblogs.com/kerrycode/archive/2015/12/26/5077969.html

  • 相关阅读:
    mysql之SQL入门与提升(三)
    DROOLS通过URL访问changset
    drools规则管理Guvnor的安装
    kafka offset manage
    kafka comsumer
    kafka与zookeeper
    kafka数据祸福和failover
    kafka一些问题点的分析
    近期开发storm遇到一些问题的解决点
    关于大数据平台ETL可行性方案
  • 原文地址:https://www.cnblogs.com/jiangbei/p/7294773.html
Copyright © 2011-2022 走看看