zoukankan      html  css  js  c++  java
  • vim常用命令

    1. 打开保存文件

    :e <filename>               打开文件

    :saveas <filename>       另存为

    :ZZ                              等于:wq 保存退出

    :bn                              切换到下一个打开的文件

    :bp                              切换到上一个打开的文件

    :!                               执行shell命令

    2. 进入输入模式

    i                                  从光标当前位置开始输入文件。

    a                                 从目前光标所在位置的下一个位置开始输入文字

    I                                  行首插入。

    A                                 行尾插入。

    o                                 插入新的一行,从行首开始输入文字。

    O                                在光标所在的行的上面插入一行。

    s                                 删除光标后的一个字符,然后进入插入模式。

    3. 移动光标

    h                                 向左

    space                           向右(我觉得比l方便)

    k                                  向上

    J                                   向下

    0                                  到行首

    ^                                  到本行第一个非空字符

    $                                   到行尾

    g_                                 到本行最后一个非空字符

    w                                   跳到下个字的开头,W忽略符号

    e                                   光标跳到下个字的字尾, E忽略符号

    b                                   光标回到上个字的开头,B忽略符号

    f+x                                向前跳到第一个x字符处,F向后

    t+x                                跳到x的前一个字符,T向后跳到x的后一个字符

    *|#                                搜索单词,*向下,#向上,配合大小n使用

    gd                                  光标移到变量定义处

    ctrl + n                           根据已有单词自动补齐

    zz                                  让光标所在行居于屏幕中央,写到最底部时有用

    zt                                   让光标所在行居于屏幕最顶部

    zb                                  让光标所在行居于屏幕底部

    %                                   移动到闭括号

    [{            移动到匹配的{

    4. 删除文本

    dw                               删除光标到word结尾

    cw                               删除光标到word结尾并进入insert模式

    daw                             删除光标所在的整个word

    caw                             删除光标的word并进入insert模式

    d$                               删除至行尾

    d0                               删除至行首

    dG              删除至最后一行

    : num1, num2 d             删除num1到num2之间的所有行

    : 1,.d                           删除第一行到当前行

    c$                                删除至行尾并进入insert模式,等于C

    c0                                删除至行首并进入insert模式

    dd                                删除整行

    ddp                              上下两行调换

    dt+x                             删除所有字符直到遇到x

    cc                                 删除整行并进入insert模式

    shift+j                           删除行尾的换行符,下一行接上来了

    dib                                删除()内文本

    dab                               删除()内文本,包括()

    diB                                删除{ }内文本

    daB                               删除{ }内文本,包括{ }

    5. 复制文本

    yw                               复制光标到word结尾

    yaw                              复制整个word

    nyw                              复制光标至第n个word结尾

    y$                                复制至行尾

    y0                                复制至行首

    yG                                复制至最后一行

    : num1, num2 y             复制num1到num2之间的所有行

    :1,.y                             复制第一行到当前行

    :num1,num2  co num3   复制行num1到num2到行num3,适用于复制多行

    :num1, num2  m num3   剪切行num1到num2到行num3,适用于剪切多行

    yib                                复制()内文本

    yab                               复制()内文本,包括()

    yiB                                复制{ }内文本

    yaB                              复制{ }内文本,包括{ }

    p                                  复制到当前字符后

    P                                  复制到当前字符前

    6. 替换文本

    r                                  替换光标所在处的字符。

    R                                 替换光标所到处的字符,直到按下“ESC”键为止,非常实用!

    :s/string1/string2/g      将string1替换为string2, 限于本行

    :%s/string1/string2/g             全文替换,%表示所有行,s为substitute,g为global(替换范围内每行所有string1),没有g只会替换每行的第一个string1

    :num1,num2 s/string1/string2/g   行num1至num2范围内替换

    :1,500 /^/#/g               在前500行行首插入#

    :1,500 /$/#/g               在前500行行尾插入# 

    ~                                 切换大小写,当前字符

    7. 可视模式

    V                                  进入可视行模式,

    v                                  进入可视字符模式

    >                                  选中的块右移

    <                                  块左移

    =                                  块自动对齐

    使用V选择多行,>,<和=可以多行对齐,实用功能!

    ctrl + v                         列模式,可以选中块

    在所有被选择行前加注释:

    ctrl + v进入列模式, 选中注释行,I到第一行行首输入//, 按两次esc即可

    删除注释:

    ctrl+v 选中注释,d

    在所有被选中行后加文本:

    ctrl + v进入列模式, 选中注释行,$到行尾,A到第一行行尾输入文本, 按两次esc即可

    vib                               选中()内文本

    vab                             选中()内文本,包括()

    viB                              选中{ }内文本

    vaB                             选中{ }内文本,包括{ }

    8. 区域选择

    <action>a<object> 或<action>i<object>

    action                    通常是 d (删除), y (拷贝), v (可视模式选择)。

    object                   通常可以是字符 "   '    )    }    ]等,用于选择 “ ”   ‘ ’   ( )    [ ]     { }中的文本

    i只选择符号内部字符,a包含符号

    di)                         等于dib

    daB                       等于da}

    >>                        本行右缩进

    <<                        本行左缩进

    ==                        本行自动缩进当前行

    9. 命令

    :set hlsearch            高亮显示查找到的单词

    :set nohlsearch        关闭改功能

    :set nu                   显示行号

    :set nonu               关闭显示行号  

  • 相关阅读:
    BZOJ 3744 Gty的妹子序列
    BZOJ 3872 Ant colony
    BZOJ 1087 互不侵犯
    BZOJ 1070 修车
    BZOJ 2654 tree
    BZOJ 3243 向量内积
    1003 NOIP 模拟赛Day2 城市建设
    CF865D Buy Low Sell High
    CF444A DZY Loves Physics
    Luogu 4310 绝世好题
  • 原文地址:https://www.cnblogs.com/wkun/p/3798843.html
Copyright © 2011-2022 走看看