vim命令详解

欢迎访问我的个人博客网站:http://www.yanmin99.com/

一、vim模式

  • vim模式介绍

    编辑模式(命令模式)
    输入模式
    末行模式
    替换模式(正常模式下,按R进入)

二、模式转换

  • 1、编辑–>输入
    i: 在当前光标所在字符的前面,转为输入模式;
    a: 在当前光标所在字符的后面,转为输入模式;
    o: 在当前光标所在行的下方,新建一行,并转为输入模式;
    I:在当前光标所在行的行首,转换为输入模式
    A:在当前光标所在行的行尾,转换为输入模式
    O:在当前光标所在行的上方,新建一行,并转为输入模式;
  • 2、输入–>编辑
    ESC
  • 3、编辑–>末行
    :
  • 4、末行–>编辑
    ESC, ESC

三、打开文件

  • 打开文件介绍

    vim +# :打开文件,并定位于第#行
    vim +:打开文件,定位至最后一行
    vim +/PATTERN : 打开文件,定位至第一次被PATTERN匹配到的行的行首

四、关闭文件

  • 1、末行模式关闭文件
    :q  退出
    :wq 保存并退出
    :q! 不保存并退出
    :w 保存
    :w! 强行保存
    :wq --> :x  
  • 2、编辑模式下退出
    ZZ: 保存并退出

五、移动光标

  • 1、逐字符移动
    h: 
    l: 
    j: 
    k: 
  • 2、以单词为单位移动
    w: 移至下一个单词的词首
    e: 跳至当前或下一个单词的词尾
    b: 跳至当前或前一个单词的词首
  • 3、行内跳转
    0: 绝对行首
    ^: 行首的第一个非空白字符
    $: 绝对行尾
  • 4、行间跳转
    gg: 第一行
    G:最后一行

六、翻屏幕

  • 翻屏幕介绍

    Ctrl+f: 向下翻一屏 
    Ctrl+b: 向上翻一屏
    Ctrl+d: 向下翻半屏
    Ctrl+u: 向上翻半屏
    ctrl+e: 向下滚动一行
    ctrl+y: 向上滚动一行

七、剪切和复制、粘贴

  • 1、剪切(删除)
    [n]x: 剪切光标右边n个字符,相当于d[n]l[n]X: 剪切光标左边n个字符,相当于d[n]h
    
    d$ or D: 删除(剪切)当前位置到行尾的内容。
    d[n]w: 删除(剪切)1(n)个单词
    d[n]l: 删除(剪切)光标右边1(n)个字符。
    d[n]h: 删除(剪切)光标左边1(n)个字符。
    d0: 删除(剪切)当前位置到行首的内容
    [n] dd: 删除(剪切)1(n)行。
    :m,nd<cr> 剪切m行到n行的内容。
    d1Gdgg: 剪切光标以上的所有行。
    dG: 剪切光标以下的所有行。
  • 2、复制
    y: 复制在可视模式下选中的文本。
    yy or Y: 复制整行文本。
    y[n]w: 复制一(n)个词。
    y[n]l: 复制光标右边1(n)个字符。
    y[n]h: 复制光标左边1(n)个字符。
    y$: 从光标当前位置复制到行尾。
    y^: 从光标当前位置复制到行首。
    y0: 从光标当前位置复制到行首。
    :m,ny<cr> 复制m行到n行的内容。
    y1G或ygg: 复制光标以上的所有行。
    yG: 复制光标以下的所有行。
    3、粘贴
    p: 在光标之后粘贴。
    P: 在光标之前粘贴。

八、查找、替换

  • 1、查找
    /something: 在后面的文本中查找something。
    ?something: 在前面的文本中查找something。
    /pattern/+number: 将光标停在包含pattern的行后面第number行上。
    /pattern/-number: 将光标停在包含pattern的行前面第number行上。
    n: 向后查找下一个。
    N: 向前查找下一个。
  • 2、替换
    :s/old/new - 用new替换当前行第一个old。
    :s/old/new/g - 用new替换当前行所有的old。
    :n1,n2s/old/new/g - 用new替换文件n1行到n2行所有的old。
    :%s/old/new/g - 用new替换文件中所有的old。
    :%s/^/xxx/g - 在每一行的行首插入xxx,^表示行首。
    :%s/$/xxx/g - 在每一行的行尾插入xxx,$表示行尾。
    所有替换命令末尾加上c,每个替换都将需要用户确认。 如:%s/old/new/gc,加上i则忽略大小写(ignore)

九、排版

  • 1、基本排版
    << 向左缩进一个shiftwidth
    >> 向右缩进一个shiftwidth
    :ce(nter) 本行文字居中
    :le(ft) 本行文字靠左
    :ri(ght) 本行文字靠右

十、快速编辑

  • 1、改变大小写
    ~: 反转光标所在字符的大小写。
    可视模式下的U或u:把选中的文本变为大写或小写
  • 2、替换
    r: 替换光标处的字符,同样支持汉字。
    R: 进入替换模式,按esc回到正常模式
  • 3、撤销、重做
    [n] u: 取消一(n)个改动。
    :undo 5 -- 撤销5个改变。
    :undolist -- 你的撤销历史
  • 4、可视化模式
    v: 按字符选取
    V:按矩形选取

十一、配置文件

  • 配置文件介绍

    /etc/vimrc    针对所有用户
    ~/.vimrc    针对当前用户

十二、高级话题

  • 1、显示或取消显示行号
    :set nu
    :set nonu
  • 2、查找到的文本高亮显示或取消
    :set hlsearch
    :set nohlsearch
  • 3、语法高亮
    :syntax on
    :syntax off
  • 4、显示忽略或区分字符大小写
    :set ic
    :set noic
<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值