zoukankan      html  css  js  c++  java
  • Vim 常用快捷键

    1、vim ~/.vimrc 进入配置文件

    vimrc放在系统目录etc下,路径:cd /etc/vim 

    set nu      #行号

    set tabstop=4  #一个tab为4个空格长度

    set ai  #设置自动缩进

    syntax on   #高亮

    2、基本

    空格键 向右移动一格

    x 删除后面的字符 X 删除前一个字符  删除3个字符就是3x  

    dd:删除一行   D 删除到行尾 

    caw:改写单词  c 相当于 d 变为编辑模式

    J:删除换行符,使下一行并上来。     nJ:连接后面的n行

    u:撤销上一次操作      U:撤销当前行的所有修改

    ctrl+r:对撤消的撤消

    i 在光标前插入

    I 在行首插入 
    a 在光标后插入

    A 在行末插入

    o:在当前行的下面另起一行,并变为插入模式

    O:在当前行上面另起一行,变为插入模式

    Ctrl+o:临时变成命令模式(一次而已)

    :e!:放弃更改,然后相当于重新打开

    :help:帮助,可用ZZ退出帮助窗口

    vim中Nyy可以复制光标后的N行。有时我们不容易得出行数,这时可以用做标记的方法来制定复制范围: 

      1. 在开始行上输入ma作一个标记a 

      2. 移动到结束行,输入y'a会复制当前行到标记a之间的文本。d'a会删除。 

      或者是v进入可视模式,再13G跳转到相应行,y即可。

      :10,20y    回车即可,相应的删除也是如此     :10,20d     (此方法比上面两种方法更简单)

      :10,20 m 30    把10行到20行的内容,剪切到30行之后

      :10,20 co 30   把10行到20行的内容,复制到30行之后

    ctrl +n 自动补全 ctrl + p 也一样

    %: 移动到与制匹配的括号上去(),{},[],<>等

    ' 移动到上一次的修改行

    fx 向右跳到本行字符x处(x可以是任何字符)
    Fx 向左跳到本行字符x处(x可以是任何字符)
    tx 和fx相同,区别是跳到字符x前
    Tx 和Fx相同,区别是跳到字符x后

    # 到与当前单词相同的上一个单词上, * 到与当前单词相同的下一个单词上

    如果你要重复键入一个短语或一个句子, 也有一种快捷的方法。Vim有一种记录宏的机制。你键入"qa"开始把一段宏记录入寄存器变量`a'中。
    按下来你可以象平常一样键入你要的操作, 只是这些操作都会被Vim记录进它命名为`a'的宏中, 再次再下"q"键, 就结束了宏`a'的录制。当你要重复执行你刚才记录的那些操作时只要使用"@a"命令。共有26个可用的寄存器供你记录宏。 使用宏你可以重复多个不同的操作。而不仅仅是插入文本了。如果你要进行某种重复的操作, 记着要用这一招呀。

    3、移动:

    b、3b、w、3w:向前后移动几个单词,标点也算一个单词。相应的大写状态为不含标点,即只把空格和换行符作为单词间隔符。

    $:移动到行尾  3$:移动到3行后的行尾

    ^:移动到行首,0也是

    +:移到下一行的行首

    -: 移到上一行的行首

    f:搜索命令,小写时向后搜索(用来定位)如 fx:定位到下一个x上。   Fx:定位到上一个x上,重复时,可用;或,  不过 , 表示反方向

    %:跳到相对应的括号上,编程时常用

    33G:跳转到33行   此时按``可以返回到原来行

    gg:文件头   G: 文件尾

    30%:跳转到文件的30%处

    "H"意为Home, "M"为Middle, "L"为Last.  当前屏幕的上中下位置,大小写皆可

    Ctrl+G:显示当前位置

    set number:设置显示行号,set nonumber:关闭显示

    :set ruler 设置在窗口右下角显示行号,与上面的好处是,节省空间

    ctrl+ud  向上下滚动半屏

    ctrl+ey  向上下滚动一行

    ctrl+bf  向上下滚动一屏  这个比较实用,记住。

    zz:将当前行滚动于屏幕中间,方便查看上下文  zt置顶,zb置尾

    /string  查找string,回车后,按n键可以跳到下一个,N上一个,另外按/键后,按上下键可以找到以前查找的记录,同样的 :也有记录

    ?/string 同上,默认向上查找

    :set ignorecase 大小写无关

    :set noignorecase 大小写敏感

    * :查找下一个光标所在单词  #是查找上一个

    :set hlsearch  高亮显示查找结果

    :set nohlsearch  取消高亮

    :nohlsearch  去掉当前显示的高完(一次性)

     `` 上次光标停靠的行

    % 匹配到相应括号处

    >>   向右移动本行一段距离     <<   向左移动本行一段距离    3<<    把下面3行(包括本行),向左移动一段距离     :20,30>>  把20行到30行向右移动一段距离

    4、小幅改动:

    :%s/str1/str2/g   替换每一行的 str1为 str2

    :10,20s/str1/str2/g   替换从行10到行20之间的 str1为 str2

    :10,$s/str1/str2/g   替换从行10到最后一行之间的 str1为 str2

    :s/str1/str2/g   替换当前行的 str1为 str2

    .  重复执行命令 

    :10,$ w test2.cpp     取行10到最后一行内容,保存到test2.cpp

    :r class/User.hpp    读取文件中的内容,插入到当前行的后面

    dw:删除一个单词(光标后部分)  不如:daw实用    d4w:删除4个单词    d$:删除当前光标到行尾    d^:删除当前光标至行首       d换成c效果是一样的,只是操作完会变成insert模式   dnw: 删除N个单词   dnj: 向下删除n行      dnk: 向上删除n行 

    X:删除左边的字符,相当于<-键,x删除当前字符  D:相当于d$  C:相当于c$  s:相当于c1  S:相当于cc

    r:替换当前字符,但不会进入insert模式    3r:把后面3个字符替换掉    R:替换模式

    .:重复上一次操作

    v:进入Visual模式    V:进入可视行模式,比如 Vjjd 删除3行  Ctrl+v:可视块模式

    P:粘贴至光标前    p:粘贴至光标后    3P:粘贴3次      "2p     粘贴最后第二次的删除的内容

    yy:复制一行  yaw: 复制一个单词,光标在单词任意位置    ynw: 复制N个单词       ynj: 向下复制n行          ynk: 向上复制n行  

    自动缩进:

    :set cindent(所有的set都可以简写为se,虽然只节省了一个字符, 译者注) 需要注意的是cindent控制缩进量是通过shiftwidth选项的值, 而不是通过tabstop 的值, shiftwidth的默认值是8(也就是说, 一个缩进为8个空格, 译者注), 要改变默认的设置, 可以使用":set shiftwidth=x"命令, 其中x是你希望一个缩进量代表的空格的数目.

     { = 到前一个空行上
    } = 到下一个空行上

    ————全心全意投入,拒绝画地为牢
  • 相关阅读:
    开源项目
    [Accessibility] Missing contentDescription attribute on image [可取行]失踪contentDescription属性图像
    Android 布局 中实现适应屏幕大小及组件滚动
    EF 错误记录
    EasyUI 加载时需要显示和隐藏 panel(面板)内容破版问题
    IE 报表缩放后页面破版
    VS 2017 引入nuget 问题
    SSRS 报表显示页面 asp net session丢失或者找不到 asp net session has expired or could not be found()
    log4net 配置
    网站
  • 原文地址:https://www.cnblogs.com/Bw98blogs/p/7402249.html
Copyright © 2011-2022 走看看