vim 基本操作

vim 基本操作
积累我的vim操作,注意这不是入门资料,是长时间使用后的一些初级积累和整理
 
常用组合操作
  1. 全选: ggVG
  2. 交换两个字符位置  xp
  3. 上下两行调换  ddp
  4. 显示位置信息

    命令CTRL-G可在屏幕的下端显示当前所在位置的信息。我们还可以在CTRL-G命令加上一个数字参数,这个数字越大得到的信息就越详细。命令1CTRL-G会显示文件的全路径。命令2CTRL-G会同时显示缓冲区的数字标号。

    命令gCTRL-G可显示出当前文件中的字符数的信息。主要显示出当前行数(Line)、列数(Col)、字数(Word)、字符数(Char)和字节数(Byte)等信息。

  5.  
常见错误
  1. vim 不能正常保存,需强制保存
    看是不是在_vimrc中设置了临时文件的路径,但你并没有创建相应的文件夹。这种情况多发生在重装系统的情况下。
打开关闭
  1. ZZ 相当于:wq
  2. ZQ相当于:q!
  3. :saveas <path/to/file> →另存为 <path/to/file>
  4. 追加到一个文件    :2 w >>a.txt   把第2行追加到a.txt
移动类
  1. 为了满足少数用户屏幕行的移动,vim提供了 gj gk 命令,来实现屏幕行的移动
  2. shift + g 直接跳到最后一行 相当于 G
  3. H移动到屏幕第一行 L移动到屏幕最后一行 M移动到屏幕中间
  4. 放置行
    1. 有时我们希望将指定的行放在屏幕顶端。先将光标放在指定的行上,然后输入z<Enter>,这一行就会出现在屏幕的顶端了。我们还可以利用参数将指定的行置于屏幕顶端。例如命令8z<Enter>就是将第八行置于屏幕顶端。这个命令将指定的行置于顶端,并将光标移动到本行第一个非空白字符处。
    2. 如果要将指定行置于顶端,并将光标保持在一行的当前位置不变,可以使用zt命令。
    3. 如果要将指定的行放在屏幕底部,可以使用命令z-或是zb。所不同的是,前者将光标放在这一行中第一个没有空白符的字符处,而后者是保持光标的位置不变。
    4. 命令zz或是z.可以将指定的行放在屏幕的中部。这两个命令的不同就是,前者保持光标的位置不变,而后者是将光标置于第一个非空白的字符处。
  5. 屏幕移动类
    命令小结
    CTRL-E 向下动滚一行
    CTRL-F 向下滚动一屏
    PageDown
    CTRL-B 向上滚动一屏
    PageUp
    H 移动到屏幕顶部
    M 移动到屏幕中间
    L 移动到屏幕底部
标记与宏
  1. m
  2. q
  3. @s 播放宏s
  4. @@播放刚才的宏
跳转类操作
  1. Ctrl+O 跳转到前一个位置, 多次按可依次往前跳
  2. Ctrl+I 如果使用了Ctrl+O,则再使用Ctrl+I可以往回跳
  3. '{标记} 返回到标记的那一行的行首
  4. `{标记} 返回到标记的那一行的具体的位置
  5. '. 跳转到上一次修改过的行(SUPER) {这与 '标记 很像 也是跳到标记的那一行}
  6. `. 跳转到上一次修改过的地方,比行还精确 { 与`标记很像,跳到标记的那一位置}
  7. '' {两个单引号}返回到你最后停留的那一行的行首
  8. ``{两个tab键上面的那个键}返回到你最后停留的那一个具体的位置
基本编辑操作
  1. A 行尾插入   
  2. y0 d0
  3. y$ d$
  4. yfa dfa
  5. :12,y 拷12行到光标所在行之间的内容
  6. :,24 y 拷光标当前行到24行之间的内容
  7.  10w      路过10个字
  8. 插入100个de   100ide <esc>
  9. 用vim 写文本文件时遇英文 故意留空格,这样用w可以快速移动到英文。{我自己的体会}
  10. C        修改光标处到行末字符,即先删除后插入(same as c$)
  11. 两行合并为一行:J
  12. 合并多行 :3,5join 合并3-5行
  13.  10w      路过10个字
  14. 插入100个de   100ide <esc>
  15. 用vim 写文本文件时遇英文 故意留空格,这样用w可以快速移动到英文。{我自己的体会}
  16. C        修改光标处到行末字符,即先删除后插入(same as c$)
  17. 用一条命令删除第 50 行到 100 行
    1. 是在一次面试中被问到的一个问题,当时没回答出来,但是永远也不会忘记了。
      :50,100 d
      删除第50行
      :50 d

  18. >> 输入此命令则光标所在行向右移动一个 tab.
    5>> 输入此命令则光标后 5 行向右移动一个 tab.
    :12,24> 此命令将12行到14行的数据都向右移动一个 tab.
  19. > 增加缩进,"x>"表示增加以下x行的缩进
    < 减少缩进,"x<"表示减少以下x行的缩进
  20. u/U在正常模式下与选择模式下作用不一样
    正常模式下:u 撤销  U用来撤消整行无作用
    选择模式下:u 将选择的字母变小写  U将选择的字母变大写
  21. 标注marks
    Examples:
    ma - set current cursor location as mark a
    'a - jump to beginning of line of mark a
    `a - jump to postition of mark a
    d'a - delete from current line to line of mark a
    d`a - delete from current cursor position to mark a
    c'a - change text from current line to line of mark a
    y`a - yank text to unnamed buffer from cursor to mark a
    :marks - list all the current marks
  22. r 只替换当前光标的字母,R 会向后替换
大小写转换
  1. ~: 更改当前光标下的字符的大小写 注意是波浪号
行内跳转
 0  ^  $  f  F  t T  e w E W b B
  1. 0 →到行头
  2. ^ →到本行的第一个非blank字符
  3. $ →到行尾
  4. g_ →到本行最后一个不是blank字符的位置。
  5. fa →到下一个a的字符处,你也可以fs到下一个为s的字符。
  6. ta →到逗号前的第一个字符。逗号可以变成其它字符。
  7. 3fa →在当前行查找第三个出现的a。
  8. FT →和 ft 一样,只不过是相反方向
  9. w 到下一个单词的开头
    e到下一个单词的结尾 
    如果你认为单词是由默认方式,那么就用小写的e和w。默认上来说,一个单词由字母,数字和下划线组成(陈皓注:程序变量>
  10. b前一个单词的开头 
  11. B按blank前一个单词的开头
  12. 如果你认为单词是由blank字符分隔符,那么你需要使用大写的E和W。(陈皓注:程序语句   
基本查找操作
  1. 快速查找单词
    1. * 高亮显示光标处当前单词(以空格为区分 即test test1则test test1各为一个单词),并跳转到下一匹配处
    2. # 与*相反,跳转到上一匹配处
    3. 注意 * # 只匹配整个单词。 即test 只能匹配test 不能匹配test1中的test
    4. g* g# 可以部分匹配。 如test 可以匹配test 也可以匹配test1中的test
    5. /<C-R><C-W> : Pull <cword> onto search/command line
分屏操作
  1. 命令一览

    命令小结
    :split 新建一个窗口并显示当前文件
    :new 新建一个窗口并开始新文件
    :sview 新建一个窗口并只读打开文件
    ctrl+Ww 切换窗口
    ctrl+Wj 切换至下一窗口
    ctrl+Wk 切换至上一窗口
    ctrl+Wt 切换至顶部的窗口
    ctrl+Wb 切换至底部的窗口
    ctrl+Wp 切换至刚才所在的窗口
    ctrl+Wr 向下循环移动窗口
    ctrl+WR 向上循环移动窗口
    ctrl+Wx 将当前窗口与下一窗口位置对换
    ctrl+WK 将当前窗口放到最顶端
    ctrl+WJ 将当前窗口放到最底部
    ctrl+Wc 关闭当前窗口
    ctrl+Wo 关闭其他所有窗口
    ctrl+W+ 增大窗口
    ctrl+W- 减小窗口
    ctrl+W= 等分窗口
    Ctrl+W_ 最大化窗口
  2. <C-w><dir> : dir就是方向,可以是 hjkl 或是←↓↑→中的一个,其用来切换分屏。
文件、buff操作
  1. 命令一览
基本命令
  1. 显示换行符 $ :set list 如果要取消 :set nolist
  2. 生成html :TOhtml  也可选择范围 如 :10,40TOhtml 如果是diff窗口还会显示两个窗口的内容。
  3. 指定一个文件的类型:set ft=vimwiki
  4. 指定文件格式是unix下还是dos下 set fileformats=unix
  5. 命令:set ruler可以打开标尺选项(ruler option)。将在屏幕右下角,显示当前所在的行和列,以及相对于整个文件所处的位置。

  6.  





posted @ 2013-02-21 11:04  man1m  阅读(524)  评论(0编辑  收藏  举报