我正在尝试设置一个将映射键';'的vim键映射到A; - 即我想自动附加';'到最后一行。但是我很难设置这个映射。如果可能的话,我还想将此限制为仅限于java文件。可以这样做吗?

由于

有帮助吗?

解决方案

映射本身就是这样完成的:

:map ; A;<esc>

我建议把这行放在.vimrc中并使用它(它不应该打扰你,因为映射只能在命令模式下工作)。如果您真的必须将此行为限制为某些文件,则需要查看 autocmd 函数(:help autocmd

其他提示

如果要将此功能限制为java缓冲区,请查看ftplugins。 然后映射变为:

nnoremap <buffer> ; A;<esc>
顺便说一句,我建议不要映射'; ',因为它是一个非常有用的命令,可用于其他严格定义的映射(太多的vimmers正在使用:* map 而不是:* noremap )。

使用ftplugins作为Luc Hermitte说或将以下内容添加到.vimrc

autocmd filetype java :nnoremap <buffer> ; A;<esc>

将它放在〜/ .vim / after / ftplugin / java.vim

nnoremap <buffer> ; A;<Esc>

现在这个映射应该只对java缓冲区是本地的

作为一个快速实现,如何:

map ; $a;cntl-vESC

然后点击返回

我会考虑只为Java文件启用它。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top