美文网首页
vim 速查表

vim 速查表

作者: 来个芒果 | 来源:发表于2018-03-26 10:12 被阅读0次

    基本操作

    < 如显示不全,请左右滑动 >

    快捷键 功能
    Esc 从当前模式转换到“普通模式”。所有的键对应到命令。
    i “插入模式”用于插入文字。回归按键的本职工作。
    : “命令行模式” Vim 希望你输入类似于保存该文档命令的地方。

    方向键

    < 如显示不全,请左右滑动 >

    快捷键 功能
    h 光标向左移动一个字符
    jCtrl + J 光标向下移动一行
    kCtrl + P 光标向上移动一行
    l 光标向右移动一个字符
    0 (数字 0)移动光标至本行开头
    $ 移动光标至本行末尾
    ^ 移动光标至本行第一个非空字符处
    w 向前移动一个词 (上一个字母和数字组成的词之后)
    W 向前移动一个词 (以空格分隔的词)
    5w 向前移动五个词
    b 向后移动一个词 (下一个字母和数字组成的词之前)
    B 向后移动一个词 (以空格分隔的词)
    5b 向后移动五个词
    G 移动至文件末尾
    gg 移动至文件开头

    浏览文档

    < 如显示不全,请左右滑动 >

    快捷键 功能
    ( 跳转到上一句
    ) 跳转到下一句
    { 跳转到上一段
    } 跳转到下一段
    [[ 跳转到上一部分
    ]] 跳转到下一部分
    [] 跳转到上一部分的末尾
    ][ 跳转到上一部分的开头

    插入文本

    < 如显示不全,请左右滑动 >

    快捷键 功能
    a 在光标后插入文本
    A 在行末插入文本
    i 在光标前插入文本
    o (小写字母 o)在光标下方新开一行
    O (大写字母 O)在光标上方新开一行

    特殊插入

    < 如显示不全,请左右滑动 >

    快捷键 功能
    :r [filename] 在光标下方插入文件 [filename] 的内容
    :r ![command] 执行命令 [command] ,并将输出插入至光标下方

    删除文本

    < 如显示不全,请左右滑动 >

    快捷键 功能
    x 删除光标处字符
    dw 删除一个词
    d0 删至行首
    d$ 删至行末
    d) 删至句末
    dgg 删至文件开头
    dG 删至文件末尾
    dd 删除该行
    3dd 删除三行

    简单替换文本

    < 如显示不全,请左右滑动 >

    快捷键 功能
    r{text} 将光标处的字符替换成 {text}
    R 进入覆写模式,输入的字符将替换原有的字符

    复制/粘贴文本

    < 如显示不全,请左右滑动 >

    快捷键 功能
    yy 复制当前行至存储缓冲区
    ["x]yy 复制当前行至寄存器 x
    p 在当前行之后粘贴存储缓冲区中的内容
    P 在当前行之前粘贴存储缓冲区中的内容
    ["x]p 在当前行之后粘贴寄存器 x 中的内容
    ["x]P 在当前行之前粘贴寄存器 x 中的内容

    撤销/重做操作

    < 如显示不全,请左右滑动 >

    快捷键 功能
    u 撤销最后的操作
    Ctrl+r 重做最后撤销的操作

    搜索和替换

    < 如显示不全,请左右滑动 >

    快捷键 功能
    /search_text 检索文档,在文档后面的部分搜索 search_text
    ?search_text 检索文档,在文档前面的部分搜索 search_text
    n 移动到后一个检索结果
    N 移动到前一个检索结果
    :%s/original/replacement 检索第一个 “original” 字符串并将其替换成 “replacement”
    :%s/original/replacement/g 检索并将所有的 “original” 替换为 “replacement”
    :%s/original/replacement/gc 检索出所有的 “original” 字符串,但在替换成 “replacement” 前,先询问是否替换

    书签

    < 如显示不全,请左右滑动 >

    快捷键 功能
    m {a-zA-Z} 在当前光标位置设置书签,书签名可用一个大小写字母({a-zA-Z})
    :marks 列出所有书签
    {a-zA-Z} 跳转到书签 {a-zA-Z}

    选择文本

    < 如显示不全,请左右滑动 >

    快捷键 功能
    v 进入逐字可视模式
    V 进入逐行可视模式
    Esc 退出可视模式

    改动选中文本

    < 如显示不全,请左右滑动 >

    快捷键 功能
    ~ 切换大小写
    d 删除一个词
    c 变更
    y 复制
    > 右移
    < 左移
    ! 通过外部命令进行过滤

    保存并退出

    < 如显示不全,请左右滑动 >

    快捷键 功能
    :q 退出 Vim,如果文件已被修改,将退出失败
    :w 保存文件
    :w new_name 用 new_name 作为文件名保存文件
    :wq 保存文件并退出 Vim
    :q! 退出 Vim,不保存文件改动
    ZZ 退出 Vim,如果文件被改动过,保存改动内容
    ZQ 与 :q! 相同,退出 Vim,不保存文件改动

    vim分屏

    • 以分屏的方式的打开多文件:vim -O main.cpp my-oj-toolkit.h
    • 打开/关闭:在进入Vim后,可以使用这些命令来打开/关闭窗口:
    :sp[lit] {file}     水平分屏
    :new {file}         水平分屏   
    :sv[iew] {file}     水平分屏,以只读方式打开
    :vs[plit] {file}    垂直分屏
    :clo[se]            关闭当前窗口
    
    • 切换窗口
      切换窗口的快捷键就是Ctrl+w + hjkl:
    Ctrl+w h        切换到左边窗口
    Ctrl+w j        切换到下边窗口
    Ctrl+w k        切换到上边窗口
    Ctrl+w l        切换到右边窗口
    Ctrl+w w        遍历切换窗口
    
    • 交换上下左右两个窗口的位置
    ctrl_w+x
    
    • 移动窗口
      分屏后还可以把当前窗口向任何方向移动,只需要将上述快捷键中的hjkl大写:
    Ctrl+w H        向左移动当前窗口
    Ctrl+w J        向下移动当前窗口
    Ctrl+w K        向上移动当前窗口
    Ctrl+w L        向右移动当前窗口
    
    • 调整大小
      调整窗口大小的快捷键仍然有Ctrl+W前缀:
    Ctrl+w +        增加窗口高度
    Ctrl+w -        减小窗口高度
    Ctrl+w =        统一窗口高度
    ps: 未成功,可用[vertical] res [N] 来设置宽度。若不加vertical 则设置高度
    参考:https://blog.csdn.net/Devil_2009/article/details/7006113
    

    窗口本身的位值的移动:
    ctrl_w + r: 窗口本身, 不是鼠标指针顺时针 (向下, 向右 移动), R : 则是逆时针反方向(向上, 向左)移动.
    ctrl_w+x: 左右上下对应位置的窗口 对调. 要注意窗口必须是 对应的, 如果不对应将无法对换, 比如左边一个大窗口, 右边有两个小的 子窗口, 则左右不能互换.

    窗口本身 的位置移动, 而且大小也发生"最大化"变化
    Ctrl_w+ HJKL( 注意是大写的字母 H, J, K, L , 表示要按shift才能实现的)... 要注意, 可以通过 windows 窗口 "贴边" 最大化来理解, H和 L 就是 向左或向右 最大化贴边 显示; 而 JK 则是 向上 或 向下 贴边 最大化显示. 最大化后 就不能 再次操作复原窗口了, 其实也没有必要

    另:vim分屏操作,参考http://harttle.land/2015/11/14/vim-window.html http://www.cnblogs.com/barrychiao/p/3446865.html

    =======================================

    一、基本操作

    1.游标移动

    按Esc进入普通模式,在该模式下使用方向键或者h,j,k,l键可以移动游标。

    按键 说明
    h 左
    l 右(小写L)
    j 下
    k 上
    w 移动到下一个单词
    b 移动到上一个单词

    2.插入模式

    在普通模式下使用下面的键将进入插入模式,并可以从相应的位置开始输入

    命令 说明
    i 在当前光标处进行编辑
    I 在行首插入
    A 在行末插入
    a 在光标后插入编辑
    o 在当前行后插入一个新行
    O 在当前行前插入一个新行
    cw 替换从光标所在位置后到一个单词结尾的字符

    3.退出vim

    从普通模式输入:进入命令行模式,输入wq回车,保存并退出编辑
    以下为其它几种退出方式:

    命令 说明
    :q! 强制退出,不保存
    :q 退出
    :wq! 强制保存并退出
    :w <文件路径> 另存为
    :saveas 文件路径 另存为
    :x 保存并退出
    :wq 保存并退出

    普通模式下输入Shift+zz即可保存退出vim

    4.删除文本

    进入普通模式,使用下列命令可以进行文本快速删除:

    命令 说明
    x 删除游标所在的字符
    X 删除游标所在前一个字符
    Delete 同x
    dd 删除整行
    dw 删除一个单词(不适用中文)
    d$或D 删除至行尾
    d^ 删除至行首
    dG 删除到文档结尾处
    d1G 删至文档首部
    除此之外,你还可以在命令之前加上数字,表示一次删除多行,如:

    2dd表示一次删除2行

    二、文档编辑

    5.vim重复命令
    1. 重复执行上条命令: .
      2.连续执行命令n次:
      n<command>,如: 3dd,连续删3行,d3w,连续删3个单词
    6.快速跳转

    1.行间

    • nG : 游标移动到第 n 行(如果默认没有显示行号,请先进入命令模式,输入:set nu以显示行号)
    • gg :游标移动到到第一行
    • G 到最后一行

    2. 行内跳转

    • w 到下一个单词的开头
    • e 到下一个单词的结尾
    • b 到前一个单词的开头
    • ge 到前一个单词的结尾
    • 0或^ 到行头
    • $ 到行尾
    • f<字母> 向后搜索<字母>并跳转到第一个匹配的位置(非常实用)
    • F<字母> 向前搜索<字母>并跳转到第一个匹配的位置
    • t<字母> 向后搜索<字母>并跳转到第一个匹配位置之前的一个字母(不常用)
    • T<字母> 向前搜索<字母>并跳转到第一个匹配位置之后的一个字母(不常用)
    7.复制、剪切、粘贴
    1. 普通模式中使用y复制

    yy复制游标所在的整行(3yy表示复制3行)
    y^ 复制至行首,或y0。不含光标所在处字符。
    y$ 复制至行尾。含光标所在处字符。
    yw 复制一个单词。
    y2w 复制两个单词。
    yG 复制至文本末。
    y1G 复制至文本开头。

    1. 普通模式中使用p粘贴
    • p(小写)代表粘贴至光标后(下)
    • 普通模式中,P(大写)代表粘贴至光标前(上)
    1. 剪切
      dd即剪切===> ddp 交换光标所在行和下一行

    三、查找、替换--普通模式下

    1. 替换、撤销
      普通模式下:

    r+<待替换字母> :将游标所在字母替换为指定字母
    R :连续替换,直到按下Esc

    cc :替换整行,即删除游标所在行,并进入插入模式
    cw :替换一个单词,即删除一个单词,并进入插入模式
    C(大写) :替换游标以后至行末
    ~ :反转游标所在字母大小写
    u{n} :撤销一次或n次操作
    U(大写) :撤销当前行的所有修改
    Ctrl+r :redo,即撤销undo的操作

    1. 缩进
      ' >>、<<
      shiftwidth:
    • set shiftwidth? 查看当前设置
    • set shiftwidth n 设置
      调整文本位置:
      命令行模式输入:
      • ce 本行居中
      • ri 右
      • le 左
    1. 查找
      / icmp 向下查找icmp
      ?icmp 向上查找..
      n 继续查找,N 查找上一个出现的。

    普通模式下输入*寻找游标所在处的单词
    普通模式下输入#同上,但 # 是向前(上)找,*则是向后(下)找
    普通模式下输入g*同* ,但部分符合该单词即可
    普通模式下输入g#同# ,但部分符合该单词即可

    四、高级功能

    1. 多文件编辑
      1. 进入vim前使用的参数就是多个文件
        默认进入1.txt文件的编辑界面
    • 命令行模式下输入:n编辑2.txt文件,可以加!即:n!强制切换,之前一个文件的输入没有保存,仅仅切换到另一个文件
    • 命令行模式下输入:N编辑1.txt文件,可以加!即:N!强制切换,之前文件内的输入没有保存,仅仅是切换到另一个文件
    1. 进入vim后打开新文件

    命令行模式下输入:e 3.txt 打开新文件3.txt
    命令行模式下输入:e# 回到前一个文件
    命令行模式下输入:ls可以列出以前编辑过的文档
    命令行模式下输入:b 2.txt(或者编号)可以直接进入文件2.txt编辑
    命令行模式下输入:bd 2.txt(或编号)可以删除以前编辑过的列表中的文件项目
    命令行模式下输入:e! 4.txt,新打开文件4.txt,放弃正在编辑的文件
    命令行模式下输入:f 显示正在编辑的文件名
    命令行模式下输入:f new.txt,改变正在编辑的文件名字为new.txt

    1. 恢复文件

    如果因为断电等原因造成文档没有保存,可以采用恢复方式,vim -r进入文档后,输入:ewcover 1.txt来恢复

    1. 可视模式命令

    在普通模式下输入v(小写),进入字符选择模式,就可以移动光标,光标走过的地方就会选取。再次按下v会后就会取消选取。

    在普通模式下输入Shift+v(小写),进入行选择模式,按下V之后就会把整行选取,您可以上下移动光标选更多的行,同样,再按一次Shift+v就可以取消选取。

    在普通模式下输入 Ctrl+v(小写),这是区域选择模式,可以进行矩形区域选择,再按一次Ctrl+v取消选取。

    在可视模式下输入d或x删除选取区域内容
    在可视模式下输入y复制选取区域内容

    批量插入
    ctrl+v进入可视块模式,再按G到文件最后一行。然后shift+i进入插入模式,输入’123’,按esc,这样就达到了在每行行首插入’123’的目的。

    1. 视窗操作

    vim可以在一个界面里打开多个窗口进行编辑,这些编辑窗口称为vim的视窗。
    命令行模式下输入:new 打开一个新的vim视窗,并进入视窗编辑一个新文件(普通模式下输入Ctrl+w也可以,但是Ctrl+w在chrome下会与chrome关闭标签页的快捷键冲突,所以使用该快捷键你可以在IE或其它浏览器进行练习)

    命令行模式下输入:sp 1.txt 打开新的水平分屏视窗来编辑1.txt

    命令行模式下输入:vsp 2.txt 打开新的垂直分屏视窗来编辑2.txt
    普通模式下Ctrl-w s 将当前窗口分割成两个水平的窗口
    普通模式下Ctrl-w v 将当前窗口分割成两个垂直的窗口
    普通模式下Ctrl-w q 即 :q 结束分割出来的视窗。如果在新视窗中有输入需要使用强制符!即:q!
    普通模式下Ctrl-w o 打开一个视窗并且隐藏之前的所有视窗
    普通模式下Ctrl-w j 移至下面视窗
    普通模式下Ctrl-w k 移至上面视窗
    普通模式下Ctrl-w h 移至左边视窗
    普通模式下Ctrl-w l 移至右边视窗
    普通模式下Ctrl-w J 将当前视窗移至下面
    普通模式下Ctrl-w K 将当前视窗移至上面
    普通模式下Ctrl-w H 将当前视窗移至左边
    普通模式下Ctrl-w L 将当前视窗移至右边
    普通模式下Ctrl-w - 减小视窗的高度
    普通模式下Ctrl-w + 增加视窗的高度

    1. 加密文档
      vim x file ,然后输入密码,下次打开会需密码
    2. 执行外部命令
      在命令行模式中输入!可以执行外部的shell命令

    :!ls 用于显示当前目录的内容
    :!rm FILENAME用于删除名为 FILENAME 的文件
    :w FILENAME可将当前 VIM 中正在编辑的文件另存为 FILENAME 文件

    1. 帮助系统

    普通模式下按F1打开vim自己预设的帮助文档
    命令行模式下输入:h shiftwidth 打开名为shiftwidth的帮助文件
    命令行模式下输入:ver 显示版本及参数

    1. 功能设定
      set nu(显示行数),设定值退出vim后不会保存。要永久保存配置需要修改vim配置文件。
    • 获取目前的设定

    命令行模式下输入:set或者:se显示所有修改过的配置
    命令行模式下输入:set all 显示所有的设定值
    命令行模式下输入:set option? 显示option的设定值
    命令行模式下输入:set nooption 取消当期设定值

    • set功能的说明

    命令行模式下输入:set autoindent(ai) 设置自动缩进
    命令行模式下输入:set autowrite(aw) 设置自动存档,默认未打开
    命令行模式下输入:set background=dark或light,设置背景风格
    命令行模式下输入:set backup(bk) 设置自动备份,默认未打开
    命令行模式下输入: set cindent(cin) 设置C语言风格缩进

    相关文章

      网友评论

          本文标题:vim 速查表

          本文链接:https://www.haomeiwen.com/subject/ockzaxtx.html