我试图学习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>
我该如何解决这个问题?
答案 0 :(得分:1)
如果已经创建了该行,则不会添加缩进。
尝试
autocmd FileType html <buffer> > inoremap <Esc>vbyi<<Esc>lea><CR></<Esc>pa><Esc>O<Tab>
这样,在结束标记之后,标签之间会有一条空行。