zoukankan      html  css  js  c++  java
  • Linux vi入门必备

      

    一、vi、vim介绍
     
    文本编辑器分为:
    (1)基于图形界面,如gedit、geany等;
    (2)基于命令行,如nano、vi、joe等;
    每个命令行界面的文本编辑器都有各自不同的快捷键,比如nano的保存为CTRL+W,vim的保存为:w;
    基于命令行的文本编辑器是必要的,因为Linux的tty1~tty6都是命令行界面,是打不开图形界面的文本编辑器的;
     
    vi是每个Linux Distribution都默认安装的文本编辑器,并且很多软件的默认编辑器都是vi,因此学习vi是很必要的;
    vim是vi的高级版本,vi是文本编辑器,而vim应该说是程序编辑器,因为能够像一般的IDE一样,根据文件名载入不同的语法高亮,即颜色区分,比如java文件会遵循java的语法高亮;
    下面我们就编写一个"hello world"的java程序来看看vim的语法高亮;
     
     
    可以看出vim有很好的语法检查功能,因为关键字都使用了不同的颜色标出;
     
     
    vi有三种模式:
    (1)一般模式:进入vi的默认模式,能够进行复制、黏贴、删除等操作;
    (2)编辑模式:从一般模式按下‘i’即可进入;
    (3)命令行模式:从一般模式按下“:”、'?'、'/'即可进入;
     
    注意:如果安装了vim后,输入vi后也是使用vim编辑器,我们输入alias后看到“alias vi='vim'”;
     
     
    二、vi/vim按键
     
     

    “一般模式”的常用按键

    h

    向左

    J

    向下

    K

    向上

    l

    向右

    20h

    向左20个字符

    20j

    向下20行

    20k

    向上20行

    20l

    向右20个字符

    Page Up

    向上翻页

    Page Down

    向下翻页

    Home

    光标移到当前行的最左端

    End

    光标移到当前航的最右端

    n [空格]

    光标向右移动n个字符

    N[Enter]

    光标向下N行

    G

    光标移到最后一行

    nG

    光标移动到第n行

    gg或1G

    光标移动到第一行

    /word

    向下查找word

    ?word

    向上查找word

    n

    如果是/word后使用,则表示向下继续查找;

    如果是?word后使用,则表示向上继续查找;

    N

    如果是/word后使用,则表示向上继续查找;

    如果是?word后使用,则表示向下继续查找;

    :n,m/old/new/g

    从第n行到第m行中,将old替换为new

    :n,$s/old/new/g

    从第n行到最后一行中,将old替换为new

    u

    类似windows中的CTRL+Z,前一步

    x

    向后删除一个字符

    X

    向前删除一个字符

    3x

    向后删除3个字符

    3X

    向前删除3个字符

    dd

    删除当前行

    3dd

    删除当前行开始的3行

    yy

    复制当前行

    3yy

    复制当前行开始的3行

    p

    黏贴到当前光标的下一行

    P

    黏贴到当前光标的上一行

    CTRL+r

    重做前一个操作

    .

    重复前一个操作

     

    “命令行模式”的常用按键

    :w

    保存

    :q

    退出vim

    :wq

    保存并退出

    :wq!

    (在可以转换权限的情况下)强制保存并退出

    :q!

    直接退出不保存

    :w filename

    另存为filename

    :n,m w filename

    将第n行到第m行另存为filename

    :set nu

    显示行号

    :set nonu

    不显示行号

    :! command

    暂时离开vim,并执行command,执行完后再进入vim

    :r filename

    将filename文件的数据读入当前文件

    :set all

    显示当前vim的环境配置

     
    三、vim的恢复机制
     
     
    vim正在编辑某个文件时都会同时存在 .file.swp,此文件用来暂存,帮助恢复文件内容,当vim正常关闭此文件时,.filename.swp文件会消失;
     
     
     
    我们看到图中说明了出现此界面的两个原因:
    (1)多人同时编辑此文件:因为Linux是多用户的操作系统,因此可能两个人同时登陆并编辑此文件,如果A进入系统开始编辑1.txt文件,则会出现.1.txt.swp,当A还没编辑完但B也想进去编辑时,因为此文件的目录中存在.1.txt.swp,则就会出现上图的界面;
    (2)非正常关闭文件;
     
    图中最后一行说明了我们此时可以采取的几个动作:
    (1)o:以只读方式打开;
    (2)R:恢复,即从swp文件中恢复,但是swp文件不会随着vim关闭而删除,需要手动删除;
    (3)d:删除swp文件;
    (4)q:退出vim;
     
    四、vim记录及默认配置文件
     
     
    /etc/vimrc文件为全局vim配置文件;
     
    1.如果我们用xiazdong账户使用vim后,在/home/xiazdong就会出现.viminfo文件,此文件用来作为vim的日志,记录用户使用vim打开了什么文件,做了什么操作;
    2.如果xiazdong账户想要配置vim的默认环境,则可以在/home/xiazdong创建.vimrc,并且配置一些特征,比如显示行号,语法检查等;
    一般使用如下配置:

    set hlsearch
    set backspace=2
    set autoindent
    set nu
    set ruler
    set showmode
    set bg=dark
    syntax on

     
     
    五、Visual Block功能
     
    可以用于块复制;
    (1)CTRL+v:开始复制块;
    (3)y:复制块;
    (4)p:黏贴块;
    (5)d:删除块;
     
     
     
     
    六、同时编辑多个文件
     
    多文件编辑的好处是能够将一个文件的某些内容yy后,p到另一个文件中;
     
    vim file1 file2 即可同时编辑两个文件,但是屏幕中同时只会出现一个文件内容,需要进行切换;
    (1):n:向下切换;
    (2):N:向上切换;
    (3):files:列出当前编辑的所有文件;
     
    七、多窗口编辑
     
    如下图:一个界面能够显示多个文件内容;
     
     

     
    (1) :sp :打开当前文件;
    (2) :sp filename:打开filename文件;
     
    (1)CTRL+w+↓:光标切换到下一个窗口;
    (2)CTRL+w+↑:光标切换到上一个窗口;
    (3):q:关闭光标所在的窗口;
     
     
    八、编码问题
     
     
    可能会出现乱码问题,解决方法:保持终端的字符编码与文件的字符编码一致!
    tty1~tty6不支持显示中文,因此在tty1~tty6中显示中文必出现乱码;
    设置终端的字符编码:
     
     
    编码转换命令:iconv
    iconv -f 文件的原本编码 -t 文件的新编码 filename -o newfilename
    比如有一个big5编码的文件:1.big5,要转换成utf8的文件:2.utf8,则: iconv -f big5 -t utf8 1.big5 -o 2.utf8
     
     
    来源:http://www.cnblogs.com/iqian/articles/5243005.html
  • 相关阅读:
    NOIP 2018 day1 题解
    公司管理与信息化基础成熟度模型
    信息化成熟度整体评估模型
    审计抽样
    正态分布
    函证决策
    SALESORDERINCOME.QVW
    ERP上线通用模板
    可转换债券分拆
    luogu 1373 小a和uim之大逃离 dp
  • 原文地址:https://www.cnblogs.com/zhyc/p/5870867.html
Copyright © 2011-2022 走看看