Vim映射不尊重自动延迟

时间:2014-07-11 15:32:51

标签: vim

我试图学习vimscript,所以我不能使用插件。我要做的是在'<>'中自动包装HTML标签。并自动关闭它们,就像这样。

用户类型

  

HTML>

一旦他点击'>',就会映射到此。

<html> [cursor] </html>

我设法使用以下vimrc

执行此操作
set filetype on
set incsearch
set scrolloff=5
set wildmode=longest,list,full
set tabstop=4
set autoindent
set cindent
set number
nnoremap <leader> ddp 
noremap _ ddkP
nnoremap <leader>ev :vsplit $MYVIMRC<cr>
nnoremap <leader>sv :source $MYVIMRC<cr>
nnoremap jk <esc>
nnoremap <esc> <nop>
let mapleader = "-" 
let localleader = "\\"
autocmd FileType html set tabstop=2
autocmd FileType html set autoindent
autocmd FileType html inoremap <buffer> > <esc>vbyi<<esc>lea><enter><enter></<esc>pa><esc>ki<tab>

但是,当我使用第二个标签执行此操作时,它仅尊重第一个缩进,因此它会

<html> <head> <title> </title> </head> </html>

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

如果已经创建了该行,则不会添加缩进。

尝试

autocmd FileType html <buffer> > inoremap <Esc>vbyi<<Esc>lea><CR></<Esc>pa><Esc>O<Tab>

这样,在结束标记之后,标签之间会有一条空行。