vim

作者: 净土_0342 | 来源:发表于2018-05-22 15:00 被阅读0次

    插件相关

    快捷键 说明
    , Leader Key
    <leader>n 打开/关闭代码资源管理器
    <leader>t 打开/关闭函数列表
    <leader>a .h .cpp 文件切换
    <leader>i 转到函数声明
    <leader>u 转到函数实现
    <leader>o 打开include文件
    <leader>y 拷贝函数声明
    <leader>p 生成函数定义
    <leader>w 单词跳转
    <leader>f 搜索~目录下的文件
    <leader>F 搜索当前目录下的文本
    <leader>g 显示git仓库提交记录
    <leader>G 显示当前文件提交记录
    <leader>gg 显示当前文件在某个commit下的完整内容
    <leader>ff 语法错误自动修复(FixIt)
    <F5> 显示语法错误提示窗口
    <F7> 启用markdown实时预览
    <F8> 关闭markdown实时预览 i
    <F9> 显示上一主题
    <F10> 显示下一主题
    <leader>l 按竖线对齐
    <leader>= 按等号对齐
    gcc 注释代码
    gcap 注释段落
    vif 选中函数内容
    dif 删除函数内容
    cif 改写函数内容
    vaf 选中函数内容(包括函数名 花括号)
    daf 删除函数内容(包括函数名 花括号)
    caf 改写函数内容(包括函数名 花括号)
    + 逐渐增大选择区域
    - 逐渐减小选择区域
    <c-j> 多光标编辑,ctrl+j选中当前单词,再按ctrl+j选中下一个同样的单词,选完后按c批量修改

    插入模式

    快捷键 说明
    i 在光标处进入插入模式
    I 在行首进入插入模式
    a 在光标后进入插入模式
    A 在行尾进入插入模式
    o 在下一行插入新行并进入插入模式
    O 在上一行插入新行并进入插入模式
    gi 进入到上一次插入模式的位置
    <esc> 退出插入模式

    缓存操作

    快捷键 说明
    :e <filename> 新建buffer打开文件
    <c-p> 切换到上一个buffer
    <c-n> 切换到下一个buffer
    <leader>d 删除当前buffer

    窗口操作

    快捷键 说明
    :sp <filename> 横向切分窗口并打开文件
    :vsp <filename> 竖向切分窗口并打开文件
    <c-w>h 跳到左边的窗口
    <c-w>j 跳到下边的窗口
    <c-w>k 跳到上边的窗口
    <c-w>l 跳到右边的窗口
    <leader>d 删除当前窗口

    光标移动

    快捷键 说明
    h 上下左右移动
    j 上下左右移动
    k 上下左右移动
    l 上下左右移动
    0 光标移动到行首
    ^ 跳到从行首开始第一个非空白字符
    $ 光标移动到行尾
    <c-o> 跳到上一个位置
    <c-i> 跳到下一个位置
    <c-b> 上一页
    <c-f> 下一页
    <c-u> 上移半屏
    <c-d> 下移半屏
    H 调到屏幕顶上
    M 调到屏幕中间
    L 调到屏幕下方
    :n 跳到第n行
    w 跳到下一个单词开头(标点或空格分隔的单词)
    W 跳到下一个单词开头(空格分隔的单词)
    e 跳到下一个单词尾部(标点或空格分隔的单词)
    E 跳到下一个单词尾部(空格分隔的单词)
    b 上一个单词头(标点或空格分隔的单词)
    B 上一个单词头(空格分隔的单词)
    ge 上一个单词尾
    % 在配对符间移动, 可用于()、{}、[]
    gg 到文件首
    G 到文件尾
    fx 跳转到下一个为x的字符
    Fx 跳转到上一个为x的字符
    tx 跳转到下一个为x的字符前
    Tx 跳转到上一个为x的字符前
    ; 跳到下一个搜索的结果

    文本编辑

    快捷键 说明
    r 替换当前字符
    R 进入替换模式,直至 ESC 离开
    s 替换字符(删除光标处字符,并进入插入模式,前可接数量)
    S 替换行(删除当前行,并进入插入模式,前可接数量)
    cc 改写当前行(删除当前行并进入插入模式),同 S
    cw 改写光标开始处的当前单词
    ciw 改写光标所处的单词
    caw 改写光标所处的单词,并且包括前后空格(如果有的话)
    c0 改写到行首
    c^ 改写到行首(第一个非零字符)
    c$ 改写到行末
    C 改写到行末(同 c$)
    ci" 改写双引号中的内容
    ci' 改写单引号中的内容
    ci) 改写小括号中的内容
    ci] 改写中括号中内容
    ci} 改写大括号中内容
    cit 改写 xml tag 中的内容
    cis 改写当前句子
    c2w 改写下两个单词
    ct( 改写到小括号前
    x 删除当前字符,前面可以接数字,3x代表删除三个字符
    X 向前删除字符
    dd 删除当前行
    d0 删除到行首
    d^ 删除到行首(第一个非零字符)
    d$ 删除到行末
    D 删除到行末(同 d$)
    dw 删除当前单词
    diw 删除光标所处的单词
    daw 删除光标所处的单词,并包含前后空格(如果有的话)
    di" 删除双引号中的内容
    di' 删除单引号中的内容
    di) 删除小括号中的内容
    di] 删除中括号中内容
    di} 删除大括号中内容
    dit 删除 xml tag 中的内容
    dis 删除当前句子
    d2w 删除下两个单词
    dt( 删除到小括号前
    dgg 删除到文件头部
    dG 删除到文件尾部
    d} 删除下一段
    d{ 删除上一段
    u 撤销
    U 撤销整行操作
    CTRL-R 撤销上一次 u 命令
    J 链接多行为一行
    . 重复上一次操作
    ~ 替换大小写
    g~iw 替换当前单词的大小写
    gUiw 将单词转成大写
    guiw 将当前单词转成小写
    guu 全行转为小写
    gUU 全行转为大写
    gg=G 缩进代码
    << 减少缩进
    >> 增加缩进
    == 自动缩进
    CTRL-A 增加数字
    CTRL-X 减少数字
    p 粘贴到光标后
    P 粘贴到光标前
    v 开始标记
    y 复制标记内容
    V 开始按行标记
    CTRL-V 开始列标记
    y$ 复制当前位置到本行结束的内容
    yy 复制当前行
    Y 复制当前行,同 yy
    yiw 复制当前单词
    3yy 复制光标下三行内容
    v0 选中当前位置到行首
    v$ 选中当前位置到行末
    viw 选中当前单词
    vi) 选中小括号内的东西
    vi] 选中中括号内的东西
    vis 选中句子中的东西
    gv 重新选择上一次选中的文字
    :set paste 允许粘贴模式(避免粘贴时自动缩进影响格式)
    :set nopaste 禁止粘贴模式
    "?yy 复制当前行到寄存器 ? ,问号代表 0-9 的寄存器名称
    "?p 将寄存器 ? 的内容粘贴到光标后
    "?P 将寄存器 ? 的内容粘贴到光标前
    :registers 显示所有寄存器内容
    :[range]y 复制范围,比如 :20,30y 是复制20到30行,:10y 是复制第十行
    :[range]d 删除范围,比如 :20,30d 是删除20到30行,:10d 是删除第十行
    ddp 交换两行内容:先删除当前行复制到寄存器,并粘贴

    文件操作

    快捷键 说明
    :w 保存文件
    :w <filename> 按名称保存文件
    ZZ 保存文件(如果有改动的话),并关闭窗口
    :e <filename> 打开文件并编辑
    :saveas <filename> 另存为文件
    :r <filename> 读取文件并将内容插入到光标后
    :r !dir 将dir命令的输出捕获并插入到光标后
    :close 关闭文件
    :q 退出
    :q! 强制退出
    :wa 保存所有文件
    :cd <path> 切换Vim当前路径
    :new 打开一个新的窗口编辑新文件
    :enew 在当前窗口创建新文件
    :vnew 在左右切分的新窗口中编辑新文件
    :tabnew 在新的标签页中编辑新文件

    增删改查批量操作

    快捷键 说明
    /pattern 从光标处向文件尾搜索 pattern
    ?pattern 从光标处向文件头搜索 pattern
    n 向同一方向执行上一次搜索
    N 向相反方向执行上一次搜索
    * 向前搜索光标下的单词
    # 向后搜索光标下的单词
    :s/p1/p2/g 将当前行中全替换p1为p2
    :%s/p1/p2/g 将当前文件中全替换p1为p2
    :%s/p1/p2/gc 将当前文件中全替换p1为p2,并且每处询问你是否替换
    :10,20s/p1/p2/g 将第10到20行中所有p1替换为p2
    :%s/1\\2\/3/123/g 将“1\2/3” 替换为 “123”(特殊字符使用反斜杠标注)
    :%s/\r//g 删除 DOS 换行符 ^M
    :g/^\s*$/d 删除空行
    :g/test/d 删除所有包含 test 的行
    :v/test/d 删除所有不包含 test 的行
    :%s/^/test/ 在行首加入特定字符(也可以用宏录制来添加)
    :%s/$/test/ 在行尾加入特定字符(也可以用宏录制来添加)

    宏录制

    快捷键 说明
    qa 开始录制名字为a的宏
    q 结束录制宏
    @a 播放名字为a的宏
    100@a 播放名字为a的宏100次
    :normal@a 播放名字为a的宏直到自动结束

    帮助

    快捷键 说明
    h tutor 入门文档
    h quickref 快速帮助
    h index 查询Vim所有键盘命令定义
    h summary 帮助你更好的使用内置帮助系统
    h pattern.txt 正则表达式帮助
    h eval 脚本编写帮助
    h function-list 查看VimScript的函数列表
    h windows.txt 窗口使用帮助
    h tabpage.txt 标签页使用帮助
    h tips 查看Vim内置的常用技巧文档

    其他

    快捷键 说明
    vim -u NONE -N 开启vim时不加载vimrc文件
    <leader>e 快速编辑vimrc文件
    <leader>s 重新加载vimrc文件
    <leader>h 打开vimplus帮助文档
    vim - o 文件1,文件2 横向打开多个文件
    vim -O 文件1,文件2 纵向打开多个文件
    :vs file 横向打开多个文件
    :sp file 纵向打开多个文件

    相关文章

      网友评论

          本文标题:vim

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