×

vi 命令手册

vi/vim 命令大全

vim 命令手册

Vim 关于Vim 安装Vim 用法Vim 配置vim 配置.vimrc方案vim 配置.vimrc方案1vim 配置.vimrc方案2Vim 文件合并Vim 技巧和建议Vim 插件Vim 参阅

Vimscript 编程参考

Vimscript 前言Vimscript 鸣谢Vimscript 预备知识Vimscript 打印信息Vimscript 设置选项Vimscript 基本映射Vimscript 模式映射Vimscript 精确映射Vimscript LeadersVimscript 编辑你的Vimrc文件Vimscript AbbreviationsVimscript 更多的MappingsVimscript 锻炼你的手指本地缓冲区的设置和映射Vimscript 自动命令Vimscript 本地缓冲区缩写Vimscript 自动命令组Operator-Pending 映射Operator-Pending 更多映射Vimscript 状态条Vimscript 负责任的编码Vimscript 变量Vimscript 变量作用域Vimscript 条件语句Vimscript 比较Vimscript 函数Vimscript 函数参数Vimscript 数字Vimscript 字符串Vimscript 字符串函数Vimscript Execute命令Vimscript Normal命令Vimscript 执行normal!Vimscript 基本的正则表达式Grep 运算符Operator 第1部分Grep 运算符Operator 第2部分Grep 运算符Operator 第3部分Vimscript 列表Vimscript 循环Vimscript 字典Vimscript 切换Vimscript 函数式编程Vimscript 路径Vimscript 创建一个完整的插件Vimscript 基本插件配置方式用Pathogen配置插件Vimscript 检测文件类型Vimscript 基本语法高亮Vimscript 高级语法高亮Vimscript 基本折叠Vimscript 高级折叠Vimscript 段移动原理Vimscript Potion段移动Vimscript 外部命令Vimscript 自动加载Vimscript 文档Vimscript 发布Vimscript 还剩下什么?

Vimscript Leaders


我们已经学了一种不会让我们发狂的键盘映射方法,但是你可以注意到另外一个问题。

每次我们像:nnoremap dd这样映射一个按键都会覆盖掉的原有功能。 如果哪天我们想用了,怎么办?

有些按键你平常使用并不需要用到。你几乎永远不会用到-、 HL 和这些按键的功能(当然,是在normal模式下)。依据你的工作方式,可能还有其他你 不会用到的按键。

这些按键都可以随意映射,但是只有这6个按键貌似不够吧。难道为Vim称道的可定制传说 有问题?

映射按键序列

不像Emacs,Vim可以映射多个按键。运行下面命令:

:nnoremap -d dd
:nnoremap -c ddO

norma模式下快读敲入 -d-c查看效果。第一个映射作用是删除一行,第二个是 删除一行并进入insert模式。

这就意味着你可以用一个你不常用的按键(如-)作为“前缀”,后接其它字符作为一个整体 进行映射。你需要多敲一个按键以执行这些映射,多一个按键而已,很容易就记住了。

如果你也认为这是个好方法,我可以告诉你,Vim已经支持这种机制。

Leader

我们称这个“前缀”为“leader”。你可以按你的喜好设置你的leader键。运行命令:

:let mapleader = "-"

你可以替换-为你喜欢的按键。尽管会屏蔽一个有用的功能,但我个人使用的是,,因为这个键比较 比较容易按到。

当你创建新的映射时,你可以使用表示“我设置的leader按键”。运行命令:

:nnoremap d dd

现在试试按下你的leader按键和d。Vim会删除当前行。

然而为何每次都要繁琐的设置?为什么创建映射时不直接敲入你的“前缀”按键? 原因主要有三个。

首先,你某天可能会想要更换你的“leader”。在一个地方定义它使得更方便更换它。

第二,其他人看你的~/.vimrc文件时,一旦看到就能够立即知道你的用意。如果他们 喜欢你的~/.vimrc配置,即使他们使用不同的leader也可以简单的复制你的映射配置。

最后,许多Vim插件都会创建以开头的映射。如果你已经设置了leader,你会更容易上手 使用那些插件。

Local Leader

Vim有另外一个“leader”成为“local leader“。这个leader用于那些只对某类文件 (如Python文件、HTML文件)而设置的映射。

本书将在后续章节讲述如何为特定类型的文件创建映射,但你可以现在创建一个“localleader”:

:let maplocalleader = "\"

注意我们使用\而不是,因为在Vimscript中是转义字符。我们将在后续章节 讲到这个。

现在你就可以在映射中使用了,使用方法和一样(当然, 你要使用另外一个前缀)。

如果你不喜欢反斜线,请随意更改它。

练习

阅读:help mapleader

阅读:help maplocalleader

在你的~/.vimrc文件中设置mapleadermaplocalleader

增加前缀到之前章节中你添加到~/.vimrc文件中的映射命令, 防止那些映射覆盖了默认的按键作用。


分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)