您可以使用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 次 |
最近记录: |