您可以使用MacVim的命令从Edit > Find > Find...菜单项“解除绑定” ?F ( Command+ F;<D-f>在 Vim 中编写) ,然后使用普通命令映射它。:macmenu:map
if has('gui_macvim')
macmenu Edit.Find.Find\.\.\. key=<nop>
map <D-f> /
endif
Run Code Online (Sandbox Code Playgroud)
这个特定的:macmenu命令只有在你把它放在你的 中时才有效~/.gvimrc,所以上面的行应该放在那里。
如果您调用菜单项本身(单击它或使用:emenu),Mac OS X 查找对话框仍将显示。
另一种方法是重新定义菜单项本身。如果您想将 ?F 绑定到某个不同的功能,这将是不合适的(因为Edit > Find > Find...菜单项会执行搜索以外的其他操作!),但它可能是可以接受的,因为您只想开始不同的样式的搜索。
您可以使用:menu命令的变体将菜单项重新定义为(或多或少)等效于键入/:
if has("gui_macvim")
nmenu Edit.Find.Find\.\.\. /
vmenu Edit.Find.Find\.\.\. <C-C>/
imenu Edit.Find.Find\.\.\. <C-\><C-O>/
cmenu Edit.Find.Find\.\.\. <C-C>/
omenu Edit.Find.Find\.\.\. <C-C>/
endif
Run Code Online (Sandbox Code Playgroud)
这些命令的最佳位置是您的~/.gvimrc(尽管原因与上述:macmenu命令略有不同)。
这些命令涵盖正常模式、视觉和选择模式、插入模式、命令模式和操作员待处理模式。
这种方法意味着按下 ?F 和选择菜单项都将启动/基于搜索的搜索(即/在命令行区域中由光标指示的模式,而不是使用基于 GUI 的:promptfind)。
正如上述每个建议中所指出的,命令的位置很重要。如果您将它们放入~/.gvimrc. 但是某些命令在其他上下文中也可能有效。
对菜单命令有效性的最大影响是它们相对于$VIMRUNTIME/menu.vim. 该文件包含构建菜单的命令。它在~/.vimrc和之间自动获取~/.gvimrc,但也可以手动获取(例如参见:help console-menus)。此文件中的大多数命令都受 if 语句保护,因此它们只运行一次。这意味着您可以手动获取它,然后重新定义其中的一些菜单项,.vimrc以便您可以在控制台和 GUI 模式下使用更改后的菜单项。
nmenu,…~/.vimrc如果您将“重新定义菜单项”解决方案中的命令放在source $VIMRUNTIME/menu.vim它们之前,则它们可能对您有效。如果您不menu.vim先获取源代码,那么您的定义将在稍后获取时/在稍后获取时被覆盖(即稍后在~/.vimrc; 自动,打开语法高亮显示时;自动,在~./gvimrc基于 GUI 的 Vim 实例之前;或手动,在:提示下)。
Vim 的大多数 GUI 实例都Edit.Find\.\.\.用于菜单项,但MacVimFind在层次结构中插入一个子菜单以匹配通常的 Mac OS X 排列,因此命令应该受到保护has('gui_macvim')(这样如果您使用启动文件,它们就不会导致错误使用非MacVim构建的 Vim)。
macmenu该macmenu命令仅在启动时有效。您可以在:提示下输入它,但如果您以这种方式使用它,它实际上不会更改任何设置。这在 中提到:help :macmenu,但我在浏览文档的前几次错过了它:
此命令必须在启动文件中使用,例如在“~/.gvimrc”中。否则没有效果。
在 中menu.vim,在创建菜单项后,一些macmenu命令用于为菜单项和它们触发的 GUI“动作”建立默认快捷键。但是,与同一文件中的菜单定义命令不同macmenu,建立这些绑定的命令不受多次运行的保护。这意味着您可以使用macmenu命令~/.vimrc来为没有默认绑定/操作的菜单项建立绑定/操作,但您必须使用它~/.gvimrc来修改在menu.vim. 这似乎是MacVim版本的一个轻微错误menu.vim。
所以,唯一的(目前)适用于地方macmenu的命令是~/.gvimrc,最终启动时间采购之后menu.vim。同样,某些菜单层次结构是特定于MacVim 的,因此应使用has('gui_macvim').
map <D-f>该<D-…>键符号看起来是有效的在大多数建立的Vim(尽管它可能是唯一真正的“苹果”可用版本)。因此,您应该能够安全地映射 Command 键,~/.vimrc而不必担心会导致其他 Vim 版本出错。当然,在MacVim 中,如果您要映射一个通常是菜单项快捷方式的键,您还必须将其与菜单项解除绑定(这意味着 中的伴随macmenu命令~/.gvimrc)。
| 归档时间: |
|
| 查看次数: |
1221 次 |
| 最近记录: |