VIM命令

2018-10-29  本文已影响0人  郁中道

打印信息

echo 打印信息,脚本运行完毕后打印的信息就会消失

echom 打印信息,信息会被存储在==messages==中,适合再次查看信息

设置选项

布尔选项

布尔选项都可以设置off或者on,都可以通过:

:set <name>     打开选项
:set no<name>   前缀no关闭选项
:set <name>!    !切换布尔选项
:set <name>?    ?查看选项当前值

键值选项

键值选项可以设置一个值。可以通过:

:set <name>=<value> 设置选项的值
:set <name?         ?查看选项当前值

一次性设置多个选项

例如:

:set numberwidth=2
:set nonumber
:set number numberwidth=6   同时设置两个选项

基本映射

使用 map 命令可以同时映射 normal模式和visual模式 的键盘,如:

:map - x    - 映射为 x
:map - dd   - 映射为 dd

使用 <keyname> 映射一个特殊的按键

:map <space> viw 高亮选中整个单词
:map <c-d> dd    ctrl+d 将执行dd命令

==注意 键盘映射后面无法使用注释:==,如

:map <space> viw "Select word

当按下空格键时,Vim认为是想执行命令 viw<space>"<space>Select<space>word

模式映射

映射的递归特性

:nmap - dd
:nmap \ -

当按下 \ 时,Vim会解释其为 - 。但是因为映射了 - !Vim会继续解析 -dd , 即它会删除整行。

:nmap dd O<esc>jddk

这个映射实际上是 递归 的!当你按下dd后,Vim解释为:

==这个映射永远不会结束!==

映射的递归特性存在危险,自定义的映射和插件极容易发生冲突

非递归映射

Vim提供另一组映射命令,这些命令创建的映射在运行时, 不会进行递归

:nnoremap  
:vnoremap
:inoremap
:noremap

正常情况下应当优先使用这写不会产生递归的映射命令

设置Leader键

上一篇下一篇

猜你喜欢

热点阅读