分类目录归档:vim

Vim再学习00

接触Vim差不多也有一年多了,期间各种原因用或不用,现在也基本把Vim当做了日常编辑器来使用,但有个问题就是,虽然可以熟练使用,但更多的知识去使用它,而不是去了解他,去懂他。Vim并不是一般的编辑器。

这次重新下载的vim,没有配置任何东西,从零开始,去了解他,不会故意去了解,更多的是在使用过程中,去了解,不过由于原来就比较熟练了,所以很多东西跳跃比较大,也算是总结吧对以前的使用。

可能主要分为:

  • 基本使用
  • 配置文件
  • 常用插件
  • 进阶使用

Vim 真的很好用

vim几种模式和映射

vim有一个强大的功能就是其映射功能,可以将各种按键映射成不同的功能。例如:

可以方便的映射定义各种快捷键。但是需要注意的一点就是vim有很多模式,不同模式下的映射方式不同,map只是普通模式下的映射,同样是<C-a> 可以再不同的模式下实现不同的功能。所以先来看一下vim的各个模式。

vim一共可以分为五种模式:

  1. 普通模式(Normal Mode)

  最常见的模式,打开vim不进行操作即为普通模式。

2.  插入模式 (Insert Mode)

可以输入的那种模式,普通模式下按i键可以进入。

3.  可视模式(Visual Mode)

可以选择多行、多列、段等进行操作,普通模式下按v可以按行选择,按<C-V>可以按列(块)选择。

4.  选择模式(Select Mode)

与可视模式差不多,不过这个选择之后,按键后会将选择的地方替换,与win下常见的编辑模式相同。普通模式下按gh可以进入。

5. 命令行模式(Command-line/Ex)

普通模式下按” : “ 进入命令行模式,可以进行相关的操作。Ex模式可以连续输入多行命令,普通模式下按Q进入。

 针对不同的模式于是乎也就产生了不同的映射方式,并且这些映射方式可以互相组合,map为基本映射,对普通模式、插入模式、可视模式、命令行模式都有效,然后会有不同的前缀表示不同的模式,主要有:

  • nore    非递归模式的映射
  • n         在普通模式下有效
  • v          在可视模式下有效
  • i           在插入模式下有效
  • c           在命令行模式下有效

对于递归:

inoremap 表示避免映射的嵌套和递归,imap则没有这个限制。
举例来说: <c-e>在插入模式下表示插入光标下面的字符(参见:h i_ctrl-e)。但是你有某
种原因希望使用 <c-e>表示别的含义,例如表示插入字符 “E” (随便举的例子),同时,你
希望保留<c-e>的功能,但是需要映射到别的组合键表示这个功能。那么该怎么办呢?你可
以先重新定义<c-e>的功能:

:imap <c-e> E

然后把原来的<c-e>映射到别的组合键,比如<c-t>, 你可以这样
:inoremap <c-t> <c-e>

注意这里你就不能用 imap 来实现,因为这样会出现递归。嗯?不明白,那么你可以试试这
个错误的命令:
:imap <c-t> <c-e>

分别键入正确和错误的命令,然后在插入模式下键入<c-t>,看看屏幕上出现什么,你就会
明白的。

一些映射举例:

参考:VIM学习笔记 键盘映射 (Map)

 vim的几种模式和按键映射