vim map学习[1]

来源:互联网 发布:安卓手机定位软件 编辑:程序博客网 时间:2024/06/07 00:23


1.vim模式:

vim一共有六种模式:

普通模式

在普通 (normal) 模式里,你可以输入所有的普通编辑命令。启动编辑器之后就处于该模式 (除非你置位了 'insertmode'选项,下面会有说明)。亦称为命令 (command) 模式。

可视模式

该 (visual) 模式与普通模式相似,但是移动光标的命令会扩展高亮的区域。非移动命令作用于高亮的区域。见
|Visual-mode|。如果置位了 'showmode' 选项,窗口底部会出现"--VISUAL--" 字样。

选择模式

该 (select) 模式看起来与 MS-Windows 的选择模式很像。键入一个可显示字符会删掉所有被选择的字符并且进入插入模式。见 |select-mode|。如果置位了 'showmode' 选项,窗口底部会出现"--SELECT--" 字样。

插入模式:

在插入 (insert) 模式下你键入的内容会插入到缓冲区。见|insert-mode|。如果置位了 'showmode' 选项,窗口底部会出现"--INSERT--" 字样。

命令行模式:

在命令行 (command-line 或 Cmdline) 模式里你可以在窗口底部输入一行命令。执行 Ex 命令使用 ":",查找使用 "?"和 "/",调用过滤命令使用"!"。|cmdline-mode|

Ex 模式:

与命令行模式类似,但是执行完一条命令后,你会继续停留在Ex 模式。提供非常有限的命令行编辑。|Ex-mode|




还有六种_附加_模式。这些都是在基本模式的基础上变化而来的

操作符等待模式

该 (operator-pending) 模式与普通模式类似,但是在操作符之后,vim 等待一个动作 {motion} 以确定操作符的作用范围。


替换模式

替换 (replace) 模式是插入模式的特殊情况。你可以做和插入模式里相同的事情,但是你输入的字符会覆盖原先的字符。见 |Replace-mode|。如果置位了 'showmode' 选项,窗口底部会出现"-- REPLACE --" 字样。


虚拟替换模式

虚拟替换 (virtual replace) 模式类似于替换模式,但你替换的不是文件的字符,而是屏幕上占据的位置。见|Virtual-Replace-mode|。如果置位了 'showmode' 选项,窗口底部会出现"-- VREPLACE --" 字样。


插入普通模式           

在插入模式里输入 CTRL-O 可进入该 (insert normal) 模式。与普通模式类似,但是只能执行一条命令然后返回到插入模式。如果置位了 'showmode' 选项,窗口底部会出现"-- (insert) --" 字样。


插入可视模式           

在插入模式里进行可视模式的选择,例如,在插入模式里键入CTRL-O 然后键入 "v" 或 "V" 或 CTRL-V,可进入该 (insertvisual)模式。可视选择结束时,返回到插入模式。如果置位了 'showmode' 选项,窗口底部会出现"-- (insert) VISUAL --" 字样。


插入选择模式           

在插入模式里启动选择模式可进入该 (insert select) 模式。例如,用鼠标拖拽或 <S-Right>。如果选择模式结束,Vim 返回插入模式。如果置位了 'showmode' 选项,窗口底部会出现"-- (insert) SELECT --" 字样。



2.各种模式下的map命令

命令说明:mapNormal, Visual, Operator-pending:nmapNormal:imapInsert:vmapVirtual:omapOperator-pending


3.map映射:

范例1

nmap <F2> GoDate: <Esc>:read !date<CR>kj

以上命令含义:

  1. nmap,表示在Normal模式下的映射
  2. <F2>,表示Normal模式下按<F2>
  3. GoDate,首先是G跳转到文档末尾,o进入Insert模式,Date:表示我们要输入的字符串。
  4. <Esc>,退出Insert模式。
  5. :read !date,执行date命令,并把命令输出追加到当前行之后。
  6. <CR>,表示回车。
  7. kJ,将光标上移一行(k),并合并上下两行(J)。


范例2:

omap <F7> a{

光标移到{上,输入d<F7>,就能删除一个C语句块(包括{}和它们之间的文本),而y<F7>就能复制整个代码块。

0 0