学习笔记 for 《简明 Vim 练级攻略》 分类: ubuntu 2013-06-18 13:02 288人阅读 评论(0) 收藏

  

原文出处:http://coolshell.cn/articles/5426.html
以及:http://coolshell.cn/articles/1679.html

插入模式:
  • a → 在光标后插入
  • o → 在当前行后插入一个新行
  • O → 在当前行前插入一个新行
  • cw → 替换从光标所在位置后到一个单词结尾的字符

光标移动:
  • 0 → 数字零,到行头
  • ^ → 到本行第一个不是blank字符的位置(所谓blank字符就是空格,tab,换行,回车等)
  • $ → 到本行行尾
  • g_ → 到本行最后一个不是blank字符的位置。
  • fa → 到下一个为a的字符处,你也可以fs到下一个为s的字符。   (fxj:f是find的意思)
  • t, → 到逗号前的第一个字符。逗号可以变成其它字符。             (fxj:t是till的意思)
  • 3fa → 在当前行查找第三个出现的a。
  • F 和 T → 和 f 和 t 一样,只不过是相反方向。
Line moves


按单词移动:
Word moves example
  • w → 到下一个单词的开头。
  • e → 到下一个单词的结尾。
  • W,E,反方向

按匹配移动:
  • % : 匹配括号移动,包括 ({[. (陈皓注:你需要把光标先移到括号上)
  • * 和 #:  匹配光标当前所在的单词,移动光标到下一个(或上一个)匹配单词(*是下一个,#是上一个)

区域选择:
  • vi" → 会选择 foo.                                   (fxj:i” 是 in “的意思)
  • va" → 会选择 "foo".                               (fxj:a” 是 around “的意思)
  • vi) → 会选择 "foo".
  • va) → 会选择("foo").
  • v2i) → 会选择 map (+) ("foo")
  • v2a) → 会选择 (map (+) ("foo"))
Text objects selection


块操作: <Ctrl-v>

块操作,典型的操作,在行首插入: 0 <C-v> <C-d> I-- [ESC]

  • ^ → 到行头
  • <Ctrl-v> → 开始块操作
  • <Ctrl-d> → 向下移动 (你也可以使用hjkl来移动光标,或是使用%,或是别的)
  • I-- [ESC] → I是插入,插入“--”,按ESC键来为每一行生效。

Rectangular blocks


或者在行尾插入:<C-v> + <C-d> 或 hjkl + $ + A + [ESC]
  • <C-v> → 开始块操作
  • <C-d> → 向下移动 (你也可以使用hjkl来移动光标,或是使用%,或是别的)
  • → 到行尾
  • A-- [ESC] → A是append,插入“--”,按ESC键来为每一行生效。

自动提示:
在 Insert 模式下,你可以输入一个词的开头,然后按 <C-p>或是<C-n>,自动补齐功能就出现了

可视化后可以进行的操作:
  • J → 把所有的行连接起来(变成一行)
  • < 或 > → 左右缩进
  • = → 自动给缩进
  • d (删除 )
  • y(复制)
  • gU (变大写)
  • gu (变小写)

分屏: :split 和 vsplit.
  • :split → 创建分屏 (:vsplit创建垂直分屏)
  • <C+w> s:上下分割当前打开的文件。
  • <C+w> v:左右分割当前打开的文件。
  • <C+w> c:关闭分屏
  • <C+w> =:让所有的屏都有一样的高度
  • <C-w><dir> : dir就是方向,可以是 hjkl 或是 ←↓↑→ 中的一个,其用来切换分屏。
  • <C-w>_ (或 <C-w>|) : 最大化尺寸 (<C-w>| 垂直分屏)
  • <C-w>+ (或 <C-w>-) : 增加尺寸
posted @ 2013-06-18 13:02  前行者2011  阅读(134)  评论(0编辑  收藏  举报