我正在尝试让它像 Mac 中的默认文本编辑一样。我在 ~/.vimrc 中尝试过
map! <D-Left> 0
,
map! <D-Right> $
但当然没用。我怎样才能做到这一点?
답변1
据我所知,Command 键修饰符语法(<D-...>
) 仅在 GUI 模式实例中有效维姆在 Mac OS X 上。
这维姆实例必须是基于 GUI 的,因为大多数终端仿真器 (终端,iTerm等)不会为 Command 组合键生成控制序列,因此只有 tty 的实例维姆无法知道曾经按下过 Command 组合键(终端仿真器从不通过 tty 接口发送任何内容)。实际上,终端绑定 ⌘← 和 ⌘→(Command-Left 和 -Right)以循环浏览其打开的窗口,因此当您在上下文中键入时,这些键“已被占用”终端。
麦克维姆(当在 GUI 模式下运行时)确实附带了(以及其他 Mac 风格的击键)<D-Left>
和<D-Right>
(分别用于<Home>
(几乎相同0
)和<End>
(相同$
))。需要注意的是,这些默认映射是在 中建立的$VIM/gvimrc
,因此只能从您的~/.gvimrc
†中正确覆盖它们。
我认为还有其他基于 GUI 的版本维姆对于 Mac OS X,但是麦克维姆似乎是唯一现代的。
†粗略地说,启动文件按以下顺序处理:$VIM/vimrc
、~/.vimrc
、$VIM/gvimrc
、~/.gvimrc
。自从麦克维姆的$VIM/gvimrc
地图<D-Left>
,您需要将您的映射<D-Left>
(如果您实际上想覆盖它)放入您的地图中,~/.gvimrc
以便它拥有“最终决定权”。