添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
大鼻子的骆驼  ·  Game Theory (Stanford ...·  3 月前    · 
胆小的山羊  ·  【Day ...·  4 月前    · 
深沉的便当  ·  [资料帖] ...·  9 月前    · 
  • chrome://plugins 无法打开的解决方法,同时解决“该网页已屏蔽插件-adobe flash player”
  • 如何在GPT格式下创建EFI和MSR分区(安装WIN10/WIN8.1)
  • 联想X270——正版Win10换win7之BIOS配置及系统安装
  • 几款开源的堡垒机
  • code128条码生成与显示
  • Java操作Excel,设置某些单元格不可编辑(HSSFWorkbook ,XSSFWorkbook )
  • 第04章-VTK基础(6)
  • 通达OA用户操作手册(一)
  • postgresql——字符串函数
  • (转)C#进行图像处理的几种方法(Bitmap,BitmapData,IntPtr)
  • 5.EVE-NG关联SecureCRT,VNC,Wireshark
  • Stream 操作 合并两个list
  • Unity 利用UGUI打包图集,动态加载sprite资源
  • elasticsearch 数据丢失的分析
  • win7&win10安装AD管理工具
  • vi 和vim的区别

    vi vim 区别:
    vi :visual interface
    vim:vi improved, vim
    它们都是多模式编辑器,不同的是 vim vi 的升级版本,它不仅兼容 vi 的所有指令,而且还有一些新的特性在里面。
    [root@localhost ~]#  which vi
    /bin/vi
    [root@localhost ~]# which vim
    /usr/bin/vim

    模式化编辑器:
    编辑模式 ( 命令模式 ) x , dd
    输入模式: x , dd
    末行模式: q!

    进入文件让光标处于指定的行 :
    Vim +# smb.conf
    例子:
    [root@localhost ~]# vim +10 smb.conf (光标在第 10 行)
    [root@localhost ~]#
    进入文件让光标处于末行 :
    Vim + smb.conf
    例子:
    [root@localhost ~]# vim + smb.conf       ( 光标在末尾 )
    [root@localhost ~]#

    模式转换:
    编辑模式 -----à 输入模式:
    i : 在当前光标所在前面插入。
    a : 在光标所在后面插入。
    o : 在光标所在新插入一行。

    I :在当前光标所在行行首插入。
    A :在当前光标所在行行尾插入。
    O :在当前光标所在行的上方新增一行插入。

    输入模式 ------ 编辑模式:
    ESC

    编辑模式 ------- 末行模式:
    :     ( 冒号 )

    退出 vi
    :q (没改过的退出)
    :q! (强行不保存退出)
    :wq (保存退出)
    :w         ( 保存不退出 )
    :w!        ( 强行保存不退出,只有 root 可以 )
    ZZ         ( 大写 ZZ, 保存退出 )

    光标的跳转:
    h : 光标向左。 (5h :向左 5 个字符移动 )
    l : 光标向右。 (8l :向右 8 个字符移动,小写 L ,不是 I)
    j : 光标向下一行跳转。 (6j :移到下 6 )
    k : 光标向上一行跳转。 (7k :向上移动 7 )

    在单词间跳转:
    w : 下一个单词的词首。
    #w : 一下跳几个单词。 # 代表数字, 3w : 3 个单词。)
    e : 跳到下一个单词的词尾。
    b : 跳到前一个单词的词首。

    在行内跳到行尾,行首:
    ^ 行首(跳到这一行第一个字符行首。)
    0 行首 (跳到绝对行首,空白也算行首。)
    $ 行尾

    在行间跳转:
    gg :跳到文档的第一行。
    #G  (1 G ,跳到文档第一行, 5G :跳到第 5 行。 )
    G : 跳到文档最后一行。

    在末行模式下:
    :# (如 :10 跳到文档第 10 行。)

    翻屏操作:
    Ctrl+f : 向后一屏。
    Ctrl+b : 向前一屏。
    Ctrl+d : 向后半屏。
    Ctrl+u : 向前半屏。
    删除字符:
    x : 删除光标所在字符。
    #x : 3x 删除光标所在处向后的 3 个字符。
    X : 删除光标所在前一个字符。
    dd : 删除整行。
    dw : 删除当前光标所在的字符。 (3dw :删除光标所在处向后的 3 个字符。 )
    d$ : 删除当前光标到行尾的所有字符。 ( 包括光标所在字符。 )
    d0 : 删除当前光标到行首的所有字符。 (不包括光标所在字符。)
    #dd : 3dd ( 删除 3 )
    删除 10 行到第 20 行:(需要在末行模式下完成。 :
    :10,20d      ( 冒号 10 逗号 20d)
    . :表示当前行。
    $ :表示最后一行。
    +# :表示向下的 # 行。
    例如:
    删除当前光标所在行到最后一行:
    :.,$d     ( 冒号 点 逗号 美元号 d)
    :.,11d      ( 删除当前光标所在行到第 11 行。 )
    :20+3d    ( 删除 20 行之后加上 3 行,一共删除 4 行。 )

    粘贴:
    p : 粘贴,如果是删除或复制的是整行,在当前光标所在行下方粘贴。
    如果是删除单词或行的部分,在当前光标所在处后方粘贴。

    P : (大写 P )如果是删除或复制的是整行,在当前光标所在行上方粘贴。
    如果是删除单词或行的部分,在当前光标所在处前方粘贴。

    复制: ( 用法和 d 删除命令一样 )
    yy : 复制整行。
    yw : 复制当前光标所在的字符。 (3yw :复制光标所在处向后的 3 个字符。 )
    y$ : 复制当前光标到行尾的所有字符。 ( 包括光标所在字符。 )
    y0 : 复制当前光标到行首的所有字符。 (不包括光标所在字符。)
    #yy : 3yy ( 复制 3 )

    撤销编辑操作:
    u : 撤销上一次编辑操作。
    Ctrl+r : 撤销最后的撤销操作。 (u 撤销撤销撤多了,按 ctrl+r 还原最后一次撤销。 )

    可视化模式:
    相当于 word 中用鼠标按住左键拖一大片删除或复制的方式:
    v : 按字符选取,左右键选择到哪里,按 d 删除或按 y 复制。
    V: 按行选取。

    搜索:
    /keyword :从上到下查找。
    ?keyword :从下到上查找。
    n 键:查到下一个。
    N :往回查找。
    查找并替换:同 sed 应用
    在末行模式下使用 s 命令
    :定界 s/ 查找的内容 / 替换成的内容 /gi
    查找的内容:支持正则表达式。
    替换成的内容:不支持正则表达式,但可使用前向引用。

    例子:
    :1,20s/uname/UNAME/gi   (1 20 行,查找 uname 并替换 UNAME,gi 全局 )
    :.,$-1s/5/999999/g         ( 从当前行到最后一行减去 1 行中的 5 替换成 999999 全局替换 )
    :%s/zhang1/zhangdawei/g   ( 替换每一行中 zhang1 成为 zhangdawei : 百分号 s)

    修饰符:
    g : 全局替换。
    i : 查找时忽略字符大小写

    如何使用 vi 打开多个文件:
    [root@localhost ~]# vi rc.sysinit inittab
    此时默认打开第一个文件 rc.sysinit ,可以按 yy 复制一行。

    如何把在 rc.sysinit 里面复制的内容粘贴到 inittab 中:在末行模式下输入 : next

    可以打开多个文件:
    [root@localhost ~]#  vi rc.sysinit inittab abc
    文件的切换说明:
    在末行模式下输入 next   ( 表示切换下一个文件 )
    prev   ( 表示切换前一个文件 )
    last    ( 表示切换至最后一个文件 )
    first    ( 表示切换至第一个文件 )
    退出:
    :qa   ( 全部退出 )

    分屏显示一个文件:
    ctrl+w ,松开后按 s 键 :水平拆分窗口,当前光标在上一屏。把光标移动到下屏按 ctrl+w 松开后按方向键下。 ctrl+w 松开方向键上回到上屏。
    或:
    水平切割:
    :split
    :split xxx (要打开的文件名)
    :new (在新窗口创建文件)

    ctrl+w ,松开后按 v 键 :垂直拆分窗口。

    拆分后出去:
    qa   ( 全部退出 )
    分窗口编辑多个文件:
    -o ( o ,水平分割显示 )
    -O ( o ,垂直分割显示 )
    [root@en testold]# vim -o inittab grub.conf CentOS-Base.repo   ( 会分三屏显示,上中下, ctrl+w 上下键操作 )

    如何将另外一个文件的内容填充在当前文件中:
    :r 文件路径 / 文件名
    [root@localhost ~]# vim aa    ( 打开 aa 文件,把 b1 文件内容添加到 aa 文件中 )
    :r /root/testold/b1          ( 注意:添加 aa 文件中位置是光标所在行的下面行开始 )

    vi 模式下进行 shell 命令操作:
    假如需要输入一个路径,但是忘了详细路径,不用退出 vi ,查看路径的方法:
    :! 执行命令 ( 末行模式冒号叹号输入命令 )
    [root@localhost ~]# vim aa
    :!pwd
    /root/testold

    Press ENTER or type command to continue     ( 按回车继续 )

    显示行号和关闭行号:(只在当前 vi 编辑有效)
    显示行号: ( 只是显示行号,和文件内容无关 )
    :set nu
    关闭显示行号:
    :set nonu

    设定自动缩进:
    :set ai
    :set noai   ( 取消自动缩进 )
    [root@localhost ~]# vi aa
    zhe shi shou hang.     ( 末行模式 :set ai ,下面输入光标会自动缩进 )
    zhangdawei
    dwzhang
    zhang1
    zhang2             ( 末行模式 :set noai 退出缩进 )
    zhe shi suo jin!


    当用 vim 编辑文件时,用到搜索时,搜索到的字符串会有一片颜色高亮显示,如何取消颜色高亮显示:
    [root@localhost ~]# vim aa
    :set hlsearch      ( 搜索到的颜色显示 )
    :set nohlsearch    ( 取消搜索到的颜色显示 )
    vim 编辑脚本时,会有语法高亮,有的文件会有很多种颜色,如何关闭语法高亮?
    末行模式下:
    :syntax off     ( 关闭语法高亮 )
    :syntax on      ( 打开语法高亮 )

    :set 更改只是在本文件编辑时有效,关闭后再打开就无效,如何长期有效?需要在 vim 配置文件中更改:

    vim 配置文件有 2 个: ( 注意:是 vim 不是 vi ,需要用 vim 打开 )
    1.  /etc/vimrc    ( 全局配置文件,对所有用户有效 )
    [root@localhost ~]# ll /etc/vimrc
    -rw-r--r--. 1 root root 1962 Feb 17  2012 /etc/vimrc


    如何让文件打开就有行号:
    [root@localhost ~]# vi /etc/vimrc    ( 全局有效 )
    set nu       ( 随便找个位置加入 )


    2.  /root/.vimrc    ( 用户家目录下 vim 配置文件,如没有可自己添加 )
    [root@localhost ~]# vim .vimrc     ( 注意:一定在家目录下建立并且需要是隐藏文件 )
    set nu
    [root@localhost ~]#     ( vi 打开无效 )

    vim 学习文件,导师,如何学习 vim 说明文件:
    [root@localhost ~]#  vimtutor

    vi 错误问题:
    当正编辑文件时,非法退出(断电或者没有 :q 末行模式正确退出),此时 vi 进程还在运行,下次打开该文件时会显示:
    E325: ATTENTION
    Found a swap file by the name ".CentOS-Base.repo.swp"
    owned by: root   dated: Fri Nov 14 09:51:03 2014
    file name: ~root/testold/CentOS-Base.repo
    modified: YES
    user name: root   host name: en.com
    process ID: 3541
    While opening file "CentOS-Base.repo"
    dated: Fri Nov 14 08:54:56 2014
    ……………………………………………………….
    …………………………………………………………
    如果出现上述问题,就会在这个文件目录下有相对应的隐形文件 .CentOS-Base.repo.swp 存在:
    [root@localhost ~]# ls –a
    CentOS-Base.repo  .CentOS-Base.repo.swp  inittab .inittab.swp
    只要有 .swp 这样的文件,就代表上次非法退出的,每次打开该文件就会有警告的。
    除去打开文件警告信息:
    删除 .swp 文件: ( 前提要确定文件内容 )
    [root@en testold]# rm -rf .inittab.swp
    再去编辑就不会出现警告信息了!

    注意:
    此时打开的文件为编辑过没有保存的时期,如何恢复到编辑后非法退出的时期文件:用 -r
    [root@localhost ~]# vim -r aa
    [root@localhost ~]#
    如果误删除了文件 aa ,但是有 .aa.swp 隐藏文件在,如何恢复误删除的文件:
    [root@localhost ~]# vim -r aa
    :wq      ( 需要保存 )


    本文出自 “ 11628205 ” 博客,请务必保留此出处 http://11638205.blog.51cto.com/11628205/1863269

    文章来自:http://11638205.blog.51cto.com/11628205/1863269