我知道您可以在imap
文件中使用.vimrc
向vim添加自定义键映射。我的问题是,如果要创建其他自定义运算符,运动,命令并将它们映射到键,那么添加它们的最佳方法是什么,这样它们就不会与现有绑定冲突?
类似地,在emacs中,通过C-c序列添加了许多自定义键命令。为了更加技术化,vim中是否存在允许用户自定义的未绑定密钥?换句话说,用户可以使用免费密钥空间吗?
答案 0 :(得分:14)
:imap
Enter 将显示插入模式映射的列表。
我的问题是,如果要创建其他自定义运算符, 运动,命令和映射到键,什么是最好的添加方式 他们这样他们不会与现有的绑定冲突?
在我看来,最好的方法是创建自定义命令,它们以大写的本地命令开头。
此外,您可以使用<leader>
我使用,部分使用 \ 。
e.g。 :let mapleader = ","
然后,你可以使用领导者将它与其他键组合,比如, p 来调用命令,本机或自定义,见下文:
:map <leader>p :MyCustomCommand<CR>
自定义动画示例。删除光标后的第三个单词。
nnoremap <leader>x :normal 2wdw<CR>
可以使用多个命令来创建新的,删除和列出映射,这是一个工作模式列表,来自{{ 1}}
: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
这是一个示例函数,转换为自定义命令
: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>)
:call MoveLastLines('newFile.txt')