我知道你可以imap
在.vimrc
文件中添加自定义键映射到vim .我的问题是,如果要创建其他自定义运算符,运动,命令并将它们映射到键,那么添加它们的最佳方法是什么,这样它们就不会与现有绑定冲突?
类似地,在emacs中,通过Cc序列添加了许多自定义键命令.为了更加技术化,vim中是否存在允许用户自定义的未绑定密钥?换句话说,用户可以使用免费密钥空间吗?
Eri*_*tis 14
:imap
Enter 将显示插入模式映射的列表.
我的问题是,如果要创建其他自定义运算符,运动,命令并将它们映射到键,那么添加它们的最佳方法是什么,这样它们就不会与现有绑定冲突?
在我看来,最好的方法是创建自定义命令,它们以大写,本地的小写开头.
另外,你可以使用<leader>
我使用,一些\.
例如 :let mapleader = ","
然后,您可以使用领导者将其与其他键组合,例如,p调用命令,本机或自定义,请参阅下文:
:map <leader>p :MyCustomCommand<CR>
自定义动画示例.删除光标后的第三个单词.
nnoremap <leader>x :normal 2wdw<CR>
可以使用几个命令来创建新的,删除和列出映射,这里是一个工作模式列表:help map-overview
Normal Visual+Select Operator-pending ~
:map :noremap :unmap :mapclear yes yes yes
:nmap :nnoremap :nunmap :nmapclear yes - -
:vmap :vnoremap :vunmap :vmapclear - yes -
:omap :onoremap :ounmap :omapclear - - yes
Run Code Online (Sandbox Code Playgroud)
更多信息
:help map
这是一个示例函数,转换为自定义命令
function! MoveLastLines(f)
exe '$-9,$w ' . a:f "write last ten lines to the passed filename
$-9,$d "delete last ten lines
endfunction
command! -nargs=1 -range MoveTo :call MoveLastLines(<f-args>)
Run Code Online (Sandbox Code Playgroud)
现在,下面两行都是等价的
:call MoveLastLines('newFile.txt')
:MoveTo newFile.txt