进一步学习请看vim发布的帮助文档

jackxiang 2010-1-12 11:55 | |
进一步学习请看vim发布的帮助文档

VIM常用操作
    k      
h      l
     J
当前光标位置插入                  i
所在行首位置插入                  I
当前光标位置后面插入           a
在行尾编辑                           A
当前行下面另起一新行           o
当前行上面另起一新行           O
删除换行符                            J (即把一行连接到当前行)
删除光标所在字符                  x
删除光标所在前一个字符        X
删除整行                               dd
删除到行尾                            D
删除当前光标所在字符后编辑  s
退格                                      Ctrl-h
删除当前行后编辑                   S
撤消                                       u ,可以撤消多次
重做                                       Ctrl + R
重复上一个改变                       .  (Dot)
查前当前字的man页                相当于执行 : !man
屏幕左下角非空白处                L
屏幕中间非空白处                   M
屏幕左上角非空白处                H
向后移动一个word的开头         W, w (这两个有稍微的区别,W 以空白区分字)
向前移动一个word                   B, b(这两个有稍微的区别)
移到当前word的最后一个字符  e
移动到当前行行尾                   $
移动到当前行的第一个             ^
非空白字符上    
移动到当前行的第一个字符上    0 (zero)
单字符搜索命令(向右)              f :  命令"fx"在当前行上查找下一个字符x
单字符搜索命令(向左)              F
跳转到匹配的括号去                %   包括 { }  [ ]  ( ) 具体可以处理哪 些括号可以
                                             由'matchpairs'选项来定义: help mps
跳转到第一行                          gg (or 1G)
跳转到最后一行                       G
跳转到第 n 行                          nG 如 5G
跳转到文件的百分之N行           N%  如 90%跳到接近文件尾的地方
移动到当前窗口的中间             M
当前在文件中的位置                CTRL-G
向上滚动半屏                          CTRL-U
向下滚动半屏                          CTRL-D
向上滚动一屏                          CTRL-B
向下滚动一屏                          CTRL-F
将光标所在行调整至页面中间     zz
下卷一行                                 Ctrl+e
上卷一行                                 Ctrl+y
简单搜索(向后)                    如 /include  搜索单词 "include"
简单搜索(向前)                    如 ?include
查找当前单词的下一个位置       *
查找当前单词的上一个位置       #

Visual模式
V                                           (整行的选择)                          
Ctrl-v                                       选择一个区域内容
Shift-v                                     选择一个矩行区域
光标后粘贴                              p
光标前粘贴                              P
复制一行                                 Y
复制                                        y (需加一行辅助如 y3w 复制3个单词)
寄存器复制(a-z)                     如复制3行放到寄存器 a中 "a3Y
寄存器粘贴                              "aP
复制到剪切版                              "+y
剪切到剪切版                              "+x
从剪切版粘贴                              "+gp
只读方式打开文件                    Vim -R filename

折叠
环境变量 foldmethod 有6种值 manual、indent、expr、syntax、diff、marker
对着折叠的行展开                     0 (Zero)
创建折叠区域                           zf 后加上移动指令,如 zfj、 zf5k等
在括号处zf%,创建从当前行起到对应的匹配的括号上去((),{},[],<>等)。
折叠                                         zc
对所在范围内所有嵌套的            zC
折叠点展开折叠
展开折叠                                   zo
对所在范围内所有嵌套的            zO
处展开折叠
到当前打开的折叠的开始处。      [z
到当前打开的折叠的末尾处。      ]z
向下移动。到达下一个折叠的      zj
开始处。关闭的折叠也被计入。
向上移动到前一折叠的结束处。   zk
关闭的折叠也被计入。
删除 (delete) 在光标下的      zd (仅当 'foldmethod' 设为 "manual" 或 "marker" 时有效。)
折叠。
循环删除 (Delete) 光标下      zD (仅当 'foldmethod' 设为 "manual" 或 "marker" 时有效。)
的折叠,即嵌套删除折叠。
除去 (Eliminate) 窗口里        zE (仅当 'foldmethod' 设为 "manual" 或 "marker" 时有效。)
“所有”的折叠

窗口操作
水平分隔                                split
垂直分隔                                vsplit
新建一个窗口                         new
关闭当前窗口                         close
关闭其它窗口                         only
增加当前窗口高度                   Ctrl+W +
减小当前窗口高度                  Ctrl+W -
指定固定高度                        {height}Ctrl+W _
切换活动窗口                         Ctrl+W w   或 Ctrl+W Ctrl+W
到左边窗口                            Ctrl+W h
到右边窗口                            Ctrl+W l
到上边窗口                            Ctrl+W k
到下边窗口                            Ctrl+W j
到顶部窗口                            Ctrl+W t
到底部窗口                            Ctrl+W b

排版
向右缩进                                >>
向左缩进                                <<

右移当前行所在的{....}             >i}
内的所有代码(不含"{"和"}")
一个shiftwidth个空格
<i{  相反 <i} 一样效果

右移当前行所在的{....}             >a}  
内的所有代码(含"{"和"}")
一个shiftwidth个空格
<a{  相反 <a} 一样效果

大小写转换
行小写                                     guu
行大写                                     gUU
行翻转                                     g~~

标签页Vim在7以后的版本,开始支持标签页的功能
新建一个标签                        :tabnew
转到下一个标签                     :tabnext
转到上一个标签                     :tabprevious

标签 mark--方便跳来跳去

m 标签指令,mx把当前位置标为x, x 可为 a-z A-Z
'x 跳至标签为 x 所在行的行首非空白处
`x 跳至标签为 x 所在行标签时的位置

编辑多个文件

:n 下一个文件
:N 上一个文件
:first 第一个文件
:last 最后一个文件
:qa  全部退出

映射表
:map                                 Normal, Visual and Operator-pending
:vmap                               Visual
:nmap                               Normal
:omap                               Operator-pending
:map!                                Insert and Command-line
:imap                                Insert
:cmap                               Command-line
<silent>                            不在命令行上显示该映射

例子:
映射< 为 <>
:imap < x<Esc>r<a><Esc>ha



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/xuzhihong_gdut/archive/2009/01/15/3788220.aspx

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/2544/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!


最后编辑: jackxiang 编辑于2010-1-12 11:55
评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]