NVIM 版本 v0.6.1
假设我在 markdown 中写一个列表,假设光标在 上item3
。现在,o
在正常模式或Enter
插入模式下执行会自动缩进下一行。
+ item1
+ item2
+ item3
|
首先,我不知道为什么会发生这种情况?我确定这不是我的 .vimrc 文件的问题。这是我的 .vimrc:
1 " basics
2 set nocompatible
3 set nobackup
4 set noswapfile
5 set list
6 set listchars=eol:¬
7 set number
8 set mouse=a
9 set wildmenu
10 set ic
11 set ai
12 set clipboard=unnamedplus
13 set tabstop=4
14 set shiftwidth=4
15 set expandtab
16 set scrolloff=5
17 syntax on
18 let g:tex_flavor = "latex" " try using modline in latex files
19 "colorscheme morning
20
21
22 function! ExecuteMacroOverVisualRange()
23 echo "@".getcmdline()
24 execute ":'<,'>normal @".nr2char(getchar())
25 endfunction
26
27
28 " mapping
29 let mapleader="," "
30 nnoremap <C-j> <C-w>j
31 nnoremap <C-k> <C-w>k
32 nnoremap <C-l> <C-w>l
33 nnoremap <C-h> <C-w>h
34 xnoremap . :norm.<CR>
35 map <F5> :set spell! spelllang=en_us<CR>
36 xnoremap @ :<C-u>call ExecuteMacroOverVisualRange()<CR>
37 nnoremap <Leader>o 3o<Esc><Esc>i
38 nnoremap <Leader>O 3O<Esc><Esc>2ki
39 nnoremap <Leader>i 2o<Esc><Esc>i
40 nnoremap <Leader>I 2O<Esc><Esc>ki
41 autocmd FileType markdown nnoremap <buffer> o o<C-d>
42 autocmd FileType markdown nnoremap <buffer> O O<C-d>
43 autocmd FileType markdown inoremap <buffer> <CR> <CR><C-d>
44
45
46 "plugin settings
47 autocmd FileType python setlocal commentstring=#\ %s "vim-commentary
48 map <Leader>vv :Vifm<CR>
49 map <F2> :NERDTreeToggle<CR>
50 let g:UltiSnipsExpandTrigger="<tab>"
51 let g:UltiSnipsJumpForwardTrigger="<c-j>"
52 let g:UltiSnipsJumpBackwardTrigger="<c-k>"
53 let g:UltiSnipsEditSplit="vertical"
其次,现在我找到了一个避免这个问题的解决方法,如 .vimrc 文件中的第 41-43 行所示。我觉得可能存在更多更好的解决方案来避免这个问题,解决这个问题的最佳方法是什么?
答案1
至少就我而言,意外的压痕来自vim-markdown插件安装在 中~/.vim/pack/
,删除它解决了这个缩进问题。另一位用户注意到了这个问题并在此处报告:https://github.com/preservim/vim-markdown/issues/640。截至目前,这仍然是一个悬而未决的问题。
如果您无法在自己的 vim 配置中找到问题,我建议您~/.vim
暂时移至一边或使用vim -u NONE
以将行为范围缩小到较少的配置。您还可以查看 vim 尝试加载的配置vim --version
。