zoukankan      html  css  js  c++  java
  • vim 学习笔记

    vim编辑器
    vi : visual Inertface 可视化接口
    vim : vi improved 扩展版
    语法着色

    模式化编辑器:
      编辑模式(命令模式): 默认模式
      输入模式:
      末行模式: 
        等待输入命令
        10d 删除第十行
        10,20d
        set nu 显示行号
        ! ls /etc 不用退出文件输入 系统shell命令

    模式转换
    编辑--> 输入

          小写
          i:在当前光标位置前面输入
          a:在当前光标位置后面输入
          o:在当前光标下一行新建一行 输入内容
          大写
          I 行首
          A 行尾
          O 上一行新建一行


    输入--> 编辑   ESC

    编辑-->末行: 必须得从编辑模式进入 只需要输入:冒号

    末行--> 编辑: esc esc
                     

     功能介绍:

    一、 打开文件
        vim +12 光标到12行 
        vim + 打开光标到末尾
        vim +/PATERN 打开文件定位到第一次匹配的位置

    二、关闭文件
    末行模式关闭文件 : wq ==:x 
    编辑模式关闭文件 : 大写ZZ 保存退出 就是 shift+zz


    三、移动光标(编辑模式)
    1. 逐个字符移动(手的位置)
      h 
      l 
      j 下
      k 上

      8l 向左移动8个字符
    2.逐单词移动
      w 移到下一个单词的词首
      e 移到当前或者下一个单词的词尾
      b 移到当前或者前一个单词的词尾
      3w 向后跳3个单词
    3.行内跳转
      0(零) 绝对行首
      ^ 行首的第一个非空白字符
      $ 绝对行尾
    4.行间跳转
      #G 跳转至第#行
      G 跳转到最后一行
      末行模式下: 直接给行号回车

    四、翻屏
      crtl+f:向下翻一屏
      crtl+b:向上翻一屏
      crtl+d:向下翻半屏
      crtl+u:向上翻半屏
    五、删除单个字符
    #x 删除 光标所在处后面#个字符 x删除单个

    六、删除命令:d
    d命令和跳转命令组合使用 3dw 
      #dw, #de #db 
      dd: 删除当前光标所在行 3dd
      #dd 删除包括当前光标所在行在内的#行
    末行模式下:
      starAdd,EndAdd . , +5 表示删除当前行到后面五行
      支持相对表示法: 
      . 当前行
      $ 最后行 $-3
      +# 向下的#行 
    七、粘贴命令:p

    删除的东西不会立即删除,删除的内容保存在缓冲区中
    最后一次删除的内容 可以粘贴到指定地区 可以粘贴n次
    小p: 如果删除或复制为整行,则粘贴至所在行的下方;非整行,则粘贴至所在行的下方
    大P: 相反

    八、复制命令 y
    用法同d

    九、先删除内容,再转换为输入模式
    修改
    c: 用法同d

    十、替换单个字符

    R 替换模式

    十一、撤销编辑undo
    u:撤销前一次操作 连续使用
    只能在缓存中保存50次
    3u 至倒数第三次
    后悔撤销操作了,就有Crtl+r 撤销的撤销,还原最近一次的撤销操作
    类似于window下的crtl+z Crtl+y
    十二、重复前一次编辑操作
      点命令 .
    十三、可视化操作
    v:按字符选取
    V: 矩形选取(整行选中)

    十四、查找
    /PATTERN 往后查找
    ?PATTERN 向前查找
    n 下一个
    N 上一个

    十五、查找并替换
    用法同set
    在末行模式下使用s命令
    startadd,endadd @ pattern @string @gi
    : .,$-1 s/hello/HELLO @g
    1,$ == % 表示全文

    十六、使用vim打开多个文件
    多个文件间复制粘贴
    vim file1 file2 file3
    :next 切换至前一个文件
    :prev 切换至前一个文件
    :last 切换至最后一个
    :first切换至第一个文件
    :qa 全部退出 q只能退出当前

    十七、分屏显示一个文件(word里面的窗口拆分)

    Crtl+w,s :水平拆分窗口
    Crtl+w,v :垂直拆分窗口
    在窗口间切换
    Crtl+w,APROW(方向键) 或者两次Crtl+w也能向下一个切换 
    :qa 关闭所有窗口

    十八、分窗口多个文件
    vim -o file1 file2 水平分割
    vim -O file1 file2 垂直分割

    切换 也是 crtl+w

    十九、将当前文件中部分内容另存为另外一个文件
    末行模式下使用w命令
    :w
    :addr1,addr2 w /path/to/somewhere


    二十、将 另外一个文件的内容填充在当前文件中
    :r /root/inittal 
    直接在后面添加另一个文件的内容


    二十一、和shell交互
    :!commen 
    然后回车后 会再返回到vi编辑界面


    二十二、高级话题
    1、显示或取消行号
    :set nu
    :set nonu

    2.显示忽略或区分字符大小写 :set ignorecase
    :set ic
    : set noic

    3.设定自动缩进 :set autoindent
    写脚本编程的时候很重要
    :set ai
    :set noai
    4、查找到的文本高亮显示 或者取消掉
    :set hlsearch
    :set nohlsearch

    5.语法高亮
    :syntax on
    :syntax off

    二十三、配置文件
    /etc/vimrc
    单用户家目录下 自己新建.vimrc
    ~/.vimrc

    vim 进程强行被退出 网络断开的时候 经常会报错
    vim -r inittab
    file.swp 文件要手动删掉 备份文件 rm -f .inittab.swp

    If this is the case, use ":recover" or "vim -r inittab"
    to recover the changes (see ":help recovery").
    If you did this already, delete the swap file ".inittab.swp"

  • 相关阅读:
    火狐优化及遇到的问题
    拷贝工程,名字不改变问题
    Ajax基础实例
    Java中检测字符串的编码格式
    innerHTML和outerHTML有什么区别
    启动Tomcat出现“Bad version number in .class file (unable to load class XXX)”解决
    MyEclipse8.6安装SVN 教程 与遇到的问题
    彻底卸载JDK的-并只依赖配置环境安装JDK(不依赖注册表)-解决Error opening registry key'softwareJavasoftJava Runti问题
    数据库下的分页代码
    WSGI
  • 原文地址:https://www.cnblogs.com/zpzp7878/p/10361871.html
Copyright © 2011-2022 走看看