您好我正在使用MacVim 7.3 我正在关注名为smash into vim的PeepCode教程。
其中一个主题是为某些命令分配各种“映射”(我将它们视为快捷方式或别名)。
例如,这是我的。 vimrc 文件的一部分(见下文) 帮助文件说默认情况下被指定为反斜杠(\)。但是,当我进入命令行模式并输入:\ tt时,我收到以下错误:
E10:\应该跟/,?或&
对我做错了什么的想法?我可以告诉macvim b / c我正在使用我的.vimrc文件我使用该文件来交换分号和冒号绑定现在;将导致编辑器进入命令行模式。
" Tab mappings.
map <leader>tt :tabnew<cr>
map <leader>te :tabedit
map <leader>tc :tabclose<cr>
map <leader>to :tabonly<cr>
map <leader>tn :tabnext<cr>
map <leader>tp :tabprevious<cr>
map <leader>tf :tabfirst<cr>
map <leader>tl :tablast<cr>
map <leader>tm :tabmove
" Controversial...swap colon and semicolon for easier commands
nnoremap ; :
nnoremap : ;
vnoremap ; :
vnoremap : ;
答案 0 :(得分:9)
当您映射<leader>tt
之类的内容时,它在命令模式下无效(使用:
调用),但在正常模式下。
所以你要做的就是在没有\tt
的情况下输入:
,看看会发生什么:有希望打开一个新标签页。
关于在定义新映射时使用<leader>
,主要的兴趣是,如果您对\
的使用不满意,可以在开始时按以下方式重新定义密钥您的.vimrc
:
:let mapleader = ","
并且您的领导者密钥将在每个后续映射命令中更改:\tt
变为,tt
祝你成为精通Vim用户的好运!
答案 1 :(得分:2)
您有两个问题:一个是您使用map
然后重新映射分号,因此map <leader>tt :tabnew<CR>
尝试执行;tabnew<CR>
(;
重复之前的t / T / f / F动作,ta
将光标移动到下一个a
,n
尝试重复上一个搜索等等),它将无效。您应该尽可能使用noremap
,除非您知道自己在做什么,否则不要使用map
,而我还建议您将nore
更改为noremap
:我认为您不需要从可视化和特别是操作员待定模式更改选项卡。第二个问题是nnoremap
在正常模式下重新映射命令,因此您需要输入noremap
,而不是\tt
或:\tt
。