Neovim:如何修复 HTML 中 JavaScript 的缩进?
Neovim: How do I fix indentation for JavaScript inside HTML?
我想使用 <script></script>
在 HTML 文件中编写一些 JavaScript 代码,但是在使用 o
插入新行时出现错误的缩进。
这是我想要的:
<script type="text/javascript">
function sumNumbers(num1, num2) {
return num1 + num2;
}
</script>
这是我得到的:
<script type="text/javascript">
function sumNumbers(num1, num2) {
return num1 + num2;
}
</script>
可能启用了两种不同的缩进选项。
我正在使用 sheerun/vim-polyglot
,我认为它是唯一一个进行缩进的插件。
我正在使用 Neovim。这是我的 init.vim
:
call plug#begin('~/.local/share/nvim/plugged')
Plug 'sheerun/vim-polyglot'
Plug 'neoclide/coc.nvim', {'branch': 'release'}
Plug 'morhetz/gruvbox'
Plug 'dracula/vim'
Plug 'scrooloose/nerdtree'
Plug 'ryanoasis/vim-devicons'
Plug 'maximbaz/lightline-ale'
Plug 'itchyny/lightline.vim'
Plug 'yggdroot/indentline'
Plug 'mattn/emmet-vim'
Plug 'AndrewRadev/tagalong.vim'
call plug#end()
set encoding=UTF-8
set number
set scrolloff=8
set timeoutlen=300
filetype plugin on
syntax enable
colorscheme dracula
highlight Normal ctermbg=233
set cursorline
highlight CursorLine ctermbg=235
set hlsearch
set incsearch
set ignorecase
set smartcase
let g:indentLine_char = '|'
let g:NERDTreeShowHidden = 1
let g:NERDTreeMinimalUI = 1
let g:NERDTreeIgnore = []
let g:NERDTreeStatusline = ''
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
nnoremap <silent> <C-n> :NERDTreeToggle<CR>
let g:user_emmet_leader_key=','
let g:user_emmet_install_global=0
autocmd FileType html,css EmmetInstall
tnoremap <Esc> <C-\><C-n>
tnoremap <A-[> <Esc>
tnoremap <A-h> <C-\><C-n><C-w>h
tnoremap <A-j> <C-\><C-n><C-w>j
tnoremap <A-k> <C-\><C-n><C-w>k
tnoremap <A-l> <C-\><C-n><C-w>l
nnoremap <A-h> <C-w>h
nnoremap <A-j> <C-w>j
nnoremap <A-k> <C-w>k
nnoremap <A-l> <C-w>l
let g:coc_global_extensions = ['coc-emmet', 'coc-css', 'coc-html', 'coc-json', 'coc-prettier', 'coc-tsserver', 'coc-eslint']
nmap <C-s> :w<CR>
imap <C-s> <Esc>:w<CR>
有没有办法知道发生了什么?
在您的 coc-settings.json
文件中,有一种方法可以添加某些文件类型,这些文件类型将在保存时进行格式化。也许这会有所帮助。
{
"coc.preferences.formatOnSaveFiletypes": [
"javascript"
]
}
您可以为此创建一个自动命令:
augroup Indentation
autocmd!
autocmd FileType javascript set shiftwidth=2
augroup END
我想使用 <script></script>
在 HTML 文件中编写一些 JavaScript 代码,但是在使用 o
插入新行时出现错误的缩进。
这是我想要的:
<script type="text/javascript">
function sumNumbers(num1, num2) {
return num1 + num2;
}
</script>
这是我得到的:
<script type="text/javascript">
function sumNumbers(num1, num2) {
return num1 + num2;
}
</script>
可能启用了两种不同的缩进选项。
我正在使用 sheerun/vim-polyglot
,我认为它是唯一一个进行缩进的插件。
我正在使用 Neovim。这是我的 init.vim
:
call plug#begin('~/.local/share/nvim/plugged')
Plug 'sheerun/vim-polyglot'
Plug 'neoclide/coc.nvim', {'branch': 'release'}
Plug 'morhetz/gruvbox'
Plug 'dracula/vim'
Plug 'scrooloose/nerdtree'
Plug 'ryanoasis/vim-devicons'
Plug 'maximbaz/lightline-ale'
Plug 'itchyny/lightline.vim'
Plug 'yggdroot/indentline'
Plug 'mattn/emmet-vim'
Plug 'AndrewRadev/tagalong.vim'
call plug#end()
set encoding=UTF-8
set number
set scrolloff=8
set timeoutlen=300
filetype plugin on
syntax enable
colorscheme dracula
highlight Normal ctermbg=233
set cursorline
highlight CursorLine ctermbg=235
set hlsearch
set incsearch
set ignorecase
set smartcase
let g:indentLine_char = '|'
let g:NERDTreeShowHidden = 1
let g:NERDTreeMinimalUI = 1
let g:NERDTreeIgnore = []
let g:NERDTreeStatusline = ''
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
nnoremap <silent> <C-n> :NERDTreeToggle<CR>
let g:user_emmet_leader_key=','
let g:user_emmet_install_global=0
autocmd FileType html,css EmmetInstall
tnoremap <Esc> <C-\><C-n>
tnoremap <A-[> <Esc>
tnoremap <A-h> <C-\><C-n><C-w>h
tnoremap <A-j> <C-\><C-n><C-w>j
tnoremap <A-k> <C-\><C-n><C-w>k
tnoremap <A-l> <C-\><C-n><C-w>l
nnoremap <A-h> <C-w>h
nnoremap <A-j> <C-w>j
nnoremap <A-k> <C-w>k
nnoremap <A-l> <C-w>l
let g:coc_global_extensions = ['coc-emmet', 'coc-css', 'coc-html', 'coc-json', 'coc-prettier', 'coc-tsserver', 'coc-eslint']
nmap <C-s> :w<CR>
imap <C-s> <Esc>:w<CR>
有没有办法知道发生了什么?
在您的 coc-settings.json
文件中,有一种方法可以添加某些文件类型,这些文件类型将在保存时进行格式化。也许这会有所帮助。
{
"coc.preferences.formatOnSaveFiletypes": [
"javascript"
]
}
您可以为此创建一个自动命令:
augroup Indentation
autocmd!
autocmd FileType javascript set shiftwidth=2
augroup END