`

vim 操作

 
阅读更多
vim 打开多个文件: vim a b c ... n
    vim 在多个文件中任意切换:  在底行模式下输入 n dir/filename
    vim 在多个文件中从当年文件切换到上一文件: 在底行模式中输入 e#
    vim 设置智能语法缩进: 在底行模式下输入 set smartindent
    vim 显示工程文件行号: 在底行模式下输入 set number
    vim 取消显示文件行号: 在底行模式下输入 set nonnumber
    vim 分屏显示: 横向分屏/在底行模式下输入split  纵向分屏/在底行模式下输入vsplit
    vim 迅速将光标移至文件首: 在命令模式下连续输入gg
    vim 某行迅速匹配指定字符: 在命令模式下输入fx  x为匹配字符  F用于向左匹配
    vim 某行将指定字符串替换为另一个字符串: 在底行模式下输入s/string1/string2/g
    vim 删除光标所在行: 在命令模式下输入dd
    vim 复制光标所在行并粘贴于另一位置: 在命令行模式下输入yy  , 移动光标到预期位置 输入p
    vim 分屏后将光标在多屏间切换: 在命令行模式下输入ctrl+ww
    vim 撤消修改: 在命令行模式下输入u
    vim 多文件切换时返回之前的文件: ctrl+o
    vim 文件中左移 ,右移, 下行, 上行: 在命令模式下输入h, l, j, k
    vim 文件中跳转至指定行: 在命令模式下先输入行编号, 然后输入shift+g
    vim 文件中{ } 匹配: 在命令模式下将光标定位于{ } 其中一个, 然后输入%
    vim 保存文件中部分内容: 在底行模式下输入#,# w filename xx (xx为与原文件名区分的标志)
    vim 搜索当前文件中包含指定字符串的字符串: /string    扩展功能/\<string  /string\>  分别表示
    string仅在头或是尾出现, 如故结合起来用就相当于仅匹配string而不是把string作为子串
    vim 高亮/非高亮搜索到的字符串: set hlsearch / set nohlsearch
    vim 在文件右下角显示当前光标所在行以及文件浏览百分率: set ruler
    vim 代码补全效果: 在底行模式输入inoremap <F8> <C-x> <C-o> Enter后, 在程序文件中输入信息之后按Ctrl+p 代码补全功能出现...
    vim 全篇自动缩进: 在命令行模式下输入gg=G
    vim 单行缩进: 在命令行模式下输入=G 或 ==
    vim 缩写(通常用于定义固定得语句过长的注释): 在底行模式下输入iabbrev 缩写 原句或单词
    vim 删除指定缩写定义: 在底行模式下输入unabbrev 缩写名
    vim 删除全部缩写定义: 在底行模式下输入abclear
    vim 跳转到关键字定义处并水平分屏: 在底行模式下输入stag 关键字名
    vim 编译程序: 在底行模式下输入make atlas_digit 2>&1 | tee build.log (暂以某个项目为例)
    vim 设置C++注释识别: 在底行模式下输入set comments=://
    vim 设置缩进统一为n个空格: autocmd FileType=c,cpp set shiftwidth=n | set expandtab
    vim 排版注释: 在命令行模式下输入gq]/ (在C++注释风格上未看到效果,可能多支持C)
    vim 撤消树: 在底行模式下输入undo 结点编号   恢复到这个撤消树结点对应的内容
    vim 时空之旅: 在底行模式下输入undolist 查看撤消树,  可以根据编号任意恢复到某一结点内容
    下面这个功能是我最喜欢的, 也是浏览大规模代码的利器, SI就提供了这个功能, 没想到vim早都想到了, 呵呵
    vim 在多个文件中智能搜索光标所在关键字所对应的声明或是实现同时打开对应的文件为当前文件: 将光标定位到所要查询的关键字, 在命令行模式下输入ctrl + l + ] , 怎么样, 是不是和Source Insight效果一样,
    vim 的高级功能inoremap实现:
    inoremap ( ()<ESC>i
    inoremap ) <c-r>=ClosePair(')')<CR>
    inoremap { {}<ESC>i
    inoremap } <c-r>=ClosePair('}')<CR>
    inoremap [ []<ESC>i
    inoremap ] <c-r>=ClosePair(']')<CR>
    inoremap < <><ESC>i
    inoremap > <c-r>=ClosePair('>')<CR>

    function ClosePair(char)
      if getline('.')[col('.') - 1] == a:char
         return "\<Right>"
      else
         return a:char
      endif
   endf 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics