zoukankan      html  css  js  c++  java
  • bundle中vim相关快捷键的使用

    http://www.cnblogs.com/respawn/archive/2012/08/21/2649483.html

    http://blog.163.com/liao_ya/blog/static/196322187201331062458384/

    打造属于自己的Vim神器 

    vim-csupport

    http://www.cnblogs.com/eddy-he/archive/2012/09/14/vim_csupport.html

    VIM: C程序员插件C.vim

    http://blog.csdn.net/guolb57/article/details/7013076

     八项强大的功能

    功能一:自动为*.c文件添加文件头说明

           当你打开一个扩展名为.c的文件,在文件开始处会自动加上如下的描述,并且将光标定位到description处,此时是insert mode可直接键入文件描述

    $ vim myprogram.c
    /*
    * =================================================
    *       Filename:  myprogram.c
    *
    *    Description:
    *
    *        Version:  1.0
    *        Created:  01/19/09 20:23:25
    *       Revision:  none
    *       Compiler:  gcc
    *
    *         Author:  Dr. Fritz Mehner (mn), mehner@fh-swf.de
    *        Company:  FH Südwestfalen, Iserlohn
    *
    * =================================================
    */
    

     以改变AUTHOR COMPANY等得默认值

    vim ~/.vim/c-support/templates/Templates

    功能二:插入一个函数  if

            当需要创建一个新函数时,只要在正常模式(ESC)键入if,VIM会提示键入函数名(如图一),会直接得到图二的默认函数内容。

    功能三:插入main函数 im

            与功能二类似,在正常模式下键入im, 得到图三的默认的main函数内容

    功能四: 插入函数头 cfu

            插入一个函数头说明,在正常模式下键入cfu,VIM会提示键入函数名,如图四,会得到如图五的函数说明注释块

    功能五: 添加一个注释块 cfr
            添加一个注释块, 在正常模式下键入cfr, 会得到图6的注释块,并且光标被定位到注释块内,直接可键入注释。

     

    功能六:包含(include)一个头文件 p<

     

         在正常模式下键入p<, 会得到“#include <>”,并且光标被定位到尖括号内,可以直接键入要包含的头文件名

     

    nmap <F4> :NERDTree<cr>

    nnoremap <silent> <F5> :Grep<CR>

    nnoremap <silent> <F12> :A<CR>

    "切换到上一个结果

    nmap <F6> :cn<cr>

    "切换到下一各结果

    nmap <F7> :cp<cr>

    vim配置及插件安装管理(超级详细)

    http://blog.csdn.net/namecyf/article/details/7787479

    vim编程常用命令:

    下面是我常用的一些命令, 放在这里供我备忘:

    % 跳转到配对的括号去
    [[ 跳转到代码块的开头去(但要求代码块中'{'必须单独占一行)
    gD 跳转到局部变量的定义处
    '' 跳转到光标上次停靠的地方, 是两个', 而不是一个"
    mx 设置书签,x只能是a-z的26个字母
    `x 跳转到书签处("`"是1左边的键)
    > 增加缩进,"x>"表示增加以下x行的缩进
    < 减少缩进,"x<"表示减少以下x行的缩进

     

     cscope的主要功能是通过同的子命令"find"来实现的
    "cscope find"的用法:
    cs find c|d|e|f|g|i|s|t name

    0 或 s 查找本 C 符号(可以跳过注释)
    1 或 g 查找本定义
    2 或 d 查找本函数调用的函数
    3 或 c 查找调用本函数的函数
    4 或 t 查找本字符串
    6 或 e 查找本 egrep 模式
    7 或 f 查找本文件
    8 或 i 查找包含本文件的文件


    如果每次查找都要输入一长串命令的话还真是件讨人厌的事情, Cscope的帮助手册中推荐了一些快捷键的用法, 下面是其中一组, 也是我用的, 将下面的内容添加到~/.vimrc中, 并重启vim:

    nmap <C-_>s :cs find s <C-R>=expand("<cword>")<CR><CR>
    nmap <C-_>g :cs find g <C-R>=expand("<cword>")<CR><CR>
    nmap <C-_>c :cs find c <C-R>=expand("<cword>")<CR><CR>
    nmap <C-_>t :cs find t <C-R>=expand("<cword>")<CR><CR>
    nmap <C-_>e :cs find e <C-R>=expand("<cword>")<CR><CR>
    nmap <C-_>f :cs find f <C-R>=expand("<cfile>")<CR><CR>
    nmap <C-_>i :cs find i ^<C-R>=expand("<cfile>")<CR><CR>
    nmap <C-_>d :cs find d <C-R>=expand("<cword>")<CR><CR>

    当光标停在某个你要查找的词上时, 按下<C-_>g, 就是查找该对象的定义, 其他的同理.
    按这种组合键有一点技巧,按了<C-_>后要马上按下一个键,否则屏幕一闪就回到nomal状态了
    <C-_>g的按法是先按"Ctrl+Shift+-", 然后很快再按"g"

    QuickFix窗口中我们可以找到每一个编译错误, 同样你可以用鼠标点击每一条记录, 代码会马上自动跳转到错误处, 你还可以用下面的命令来跳转:

    :cn        // 切换到下一个结果
    :cp        // 切换到上一个结果

    如果你经常使用这两个命令, 你还可以给他们设定快捷键, 比如在~/.vimrc中增加:
    nmap <F6> :cn<cr>
    nmap <F7> :cp<cr>

    C-w,h j k l    向"左,下,上,右"切换窗口.

    VI/VIM高级技巧征集中,欢迎大家来交流,谢绝灌水!

    http://bbs.csdn.net/topics/350219702

    w或W :光标右移一个字至字首
    b或B :光标左移一个字至字首
    e或E :光标右移一个字至字尾
    ) :光标移至句尾
    ( :光标移至句首
    }:光标移至段落开头
    {:光标移至段落结尾
    nG:光标移至第n行首
    n+:光标下移n行
    n-:光标上移n行
    n$:光标移至第n行尾
    H :光标移至屏幕顶行
    M :光标移至屏幕中间行
    L :光标移至屏幕最后行
    0:(注意是数字零)光标移至当前行首
    $:光标移至当前行尾

    屏幕翻滚类命令
    Ctrl+u:向文件首翻半屏
    Ctrl+d:向文件尾翻半屏
    Ctrl+f:向文件尾翻一屏
    Ctrl+b;向文件首翻一屏

    : 进入ex模式
    ) 下一句
    ( 上一句
    } 下一段
    { 上一段
    ]] 下一节
    [[ 上一节
    0 行的开头
    $ 行的末尾
    ^ 行的第一个非空白字符
    + 下一行的开头
    - 上一行的开头
    (空格) 下一个字符
    (回车) 下一行
    / 向前搜索
    ? 向后搜索
    % 查找当前小(中,大)括号的匹配字符
    , 逆向重复上一个f,F,t或T操作
    ; 重复上一个f,F,t或T操作
    . 重复上一个操作
    ` 转到标记处
    ' 转到标记所在行的开头
    `` 查找前回到上一个做标记的地方
    ' 查找前回到上一个做标记所在行的开头
    ~ 切换字符的大小写
    " 保存到寄存器中
    !! 重复上一次SHELL命令
    ! 把后面的文本送给命令, 取代输出(例如, !}fmt把当前的段落
    送给命令fmt处理,然后用fmt返回的东西替换输出.)
    >> 右移当前段落一个移动宽度(shiftwidth)
    << 左移当前段落一个移动宽度(shiftwidth)
    >% 从当前到匹配小(中,大)括号之间的文本右移
    <% 从当前到匹配小(中,大)括号之间的文本左移
    (似乎漏了一个符号|, 移动到某一列----译注)
    a 在当前位置之后添加
    A 在当前行的末尾添加
    ^a 没有使用
    b 上一个单词的开头
    B 上一个单词的开头,忽略标点符号
    ^b 上移一屏
    c 覆盖...
    C 覆盖到行末尾
    ^c 终止插入模式,在命令模式没有用
    d 删除...
    D 删除到行末尾
    ^d 下移半屏,如果在插入模式下则移到上一个移动宽度(ShiftTab)处
    e 单词的末尾
    E 单词的末尾,忽略标点符号
    ^e 屏幕下卷一行
    f 查找...
    F 向后查找...
    ^f 下移一屏
    g 未用
    G ...跳至[缺省是到文件末尾]
    ^g 显示状态栏
    h 左移
    H 屏幕上的第一行
    ^h 在插入模式下是退格,命令模式下是左移
    i 在当前的位置前面插入
    I 在本行的第一个非空白字符前面插入
    ^i 插入模式下是制表键,命令模式下未用
    j 下移
    J 把下一行合并到本行
    ^j 命令模式下是下移,插入模式下是建一个新行
    k 上移
    K 未用
    ^k 未用
    l 右移
    L 屏幕中的最后一行
    ^l 重绘屏幕
    m 把当前位置标记到寄存器中
    M 屏幕的中间行
    ^m 回车
    n 重复上次查找
    N 逆向重复上次查找
    ^n 命令模式下是下移
    o 在当前行的下面建一个新行
    O 在当前行的上面建一个新行
    ^o 未用
    p 在当前行的下面粘贴
    (译注--应为在当前位置的后面粘贴)
    P 在当前行的上面粘贴
    (译注--应为在当前位置的前面粘贴)
    ^p 命令模式下是上移
    q 未用
    Q 退出并且启动ex
    ^q 未用
    r 覆盖当前的字符
    R 在插入模式下一直覆盖字符
    ^r 在命令模式下面重绘屏幕
    s 替换
    S 替换整行
    t 到...
    T 向后到...
    ^t 移到下一个移动宽度(shifttab)处
    u 撤消上一次操作
    U 撤消对本行的所有修改
    ^u 上移半屏
    v 未用
    V 未用
    ^v 未用
    w 下一个单词的开头
    W 下一个单词的开头,忽略标点符号
    ^w 命令模式下未用,在插入模式下是到上一个单词的开头处
    x 删除当前字符
    X 删除前一个字符
    ^x 未用
    y 复制...
    Y 复制整行
    ^y 屏幕上卷一行
    z 重新配置当前行周围的屏幕
    ZZ 保存之后退出
    ^z 未用
    (译注--在命令模式下,^z执行了UNIX暂停操作)

  • 相关阅读:
    跨域问题注解解决
    跳出循环到指定位置
    idea model管理
    maven 取本地jar
    注解 元注解
    手动打jar包到maven
    sonar搭建
    jmockit、junit
    注解
    虚拟机指令
  • 原文地址:https://www.cnblogs.com/jingzhishen/p/3628621.html
Copyright © 2011-2022 走看看