有关vim的求助

18.04、16.04、14.04
回复
头像
chuckcheng
帖子: 12
注册时间: 2017-05-02 10:00
系统: ubuntu16.04
送出感谢: 0
接收感谢: 0

有关vim的求助

#1

帖子 chuckcheng » 2017-05-15 16:08

vim版本: 8.0
我在/etc/vim/vimrc里面添加了对js,html的缩进设置如下:

代码: 全选

autocmd FileType html,css,xml,javascript set ai
autocmd FileType html,css,xml,javascript set sw=2
autocmd FileType html,css,xml,javascript set ts=2
autocmd FileType html,css,xml,javascript set sts=2
这时候用vim创建html文件并编辑,缩进一切正常
但是再次打开的时候,缩进就变成了8个空格的制表符,这是为什么啊。
而且语法高亮显示也变了,说明vim把这个html的文件检测成了另一个文件类型?
进入vim,用scriptname看了一下,如下:

代码: 全选

  1: /usr/share/vim/vimrc
  2: /usr/share/vim/vim80/debian.vim
  3: /usr/share/vim/vim80/syntax/syntax.vim
  4: /usr/share/vim/vim80/syntax/synload.vim
  5: /usr/share/vim/vim80/syntax/syncolor.vim
  6: /usr/share/vim/vim80/filetype.vim
  7: /usr/share/vim/vim80/defaults.vim
  8: /usr/share/vim/vim80/syntax/nosyntax.vim
  9: /usr/share/vim/vim80/ftplugin.vim
 10: /usr/share/vim/vim80/indent.vim
 11: /usr/share/vim/vim80/plugin/getscriptPlugin.vim
 12: /usr/share/vim/vim80/plugin/gzip.vim
 13: /usr/share/vim/vim80/plugin/logiPat.vim
 14: /usr/share/vim/vim80/plugin/manpager.vim
 15: /usr/share/vim/vim80/plugin/matchparen.vim
 16: /usr/share/vim/vim80/plugin/netrwPlugin.vim
 17: /usr/share/vim/vim80/plugin/rrhelper.vim
 18: /usr/share/vim/vim80/plugin/spellfile.vim
 19: /usr/share/vim/vim80/plugin/tarPlugin.vim
 20: /usr/share/vim/vim80/plugin/tohtml.vim
 21: /usr/share/vim/vim80/plugin/vimballPlugin.vim
 22: /usr/share/vim/vim80/plugin/zipPlugin.vim
又看了一下filetype:

代码: 全选

filetype detection:ON  plugin:ON  indent:ON                                          0,0-1        全部
感觉智商不够用了,这是为什么啊?

PS:目前已解决,vim对不同文件类型有不同的配置文件,在/home/.vimrc设置缩进等配置是没有问题的,但是vim有对django,jinja模板语法有单独的htmldjango配置文件,所以用django模板语法编写代码的如需配置缩进,可在/usr/share/vim/vim80[此处注意你的版本号]/htmldjango.vim中更改。
上次由 chuckcheng 在 2017-05-15 17:46,总共编辑 2 次。
头像
chuckcheng
帖子: 12
注册时间: 2017-05-02 10:00
系统: ubuntu16.04
送出感谢: 0
接收感谢: 0

Re: 有关vim的求助

#2

帖子 chuckcheng » 2017-05-15 16:12

补充一下,用set filetype=html之后,缩进和语法高亮又正常了,但是再次打开还是不对。难道每次打开以前的html文件,都要这样?
poloshiao
论坛版主
帖子: 18280
注册时间: 2009-08-04 16:33
送出感谢: 21 次
接收感谢: 1957 次

Re: 有关vim的求助

#3

帖子 poloshiao » 2017-05-15 16:42

我在/etc/vim/vimrc里面添加了对js,html的缩进设置如下:
...
这时候用vim创建html文件并编辑,缩进一切正常
但是再次打开的时候,缩进就变成了8个空格的制表符,这是为什么啊。
1. 可能在 其它地方 還有類似 vimrc 的設定檔 其存取順序排在後面 所以覆蓋了存取順序在前面的設定
1-1. 例如
http://manpages.ubuntu.com/manpages/zes ... vim.1.html
vim - Vi IMproved, a programmers text editor
FILES
~/.vimrc Your personal Vim initializations.
當再次打开 vim 時 其存取順序在後面 所以覆蓋了存取順序在前面的設定檔 vimrc

2. 建議
桌面程式 個人使用
儘量編輯 ~/ 裡面的設定檔
头像
chuckcheng
帖子: 12
注册时间: 2017-05-02 10:00
系统: ubuntu16.04
送出感谢: 0
接收感谢: 0

Re: 有关vim的求助

#4

帖子 chuckcheng » 2017-05-15 17:15

poloshiao 写了:
我在/etc/vim/vimrc里面添加了对js,html的缩进设置如下:
...
这时候用vim创建html文件并编辑,缩进一切正常
但是再次打开的时候,缩进就变成了8个空格的制表符,这是为什么啊。
1. 可能在 其它地方 還有類似 vimrc 的設定檔 其存取順序排在後面 所以覆蓋了存取順序在前面的設定
1-1. 例如
http://manpages.ubuntu.com/manpages/zes ... vim.1.html
vim - Vi IMproved, a programmers text editor
FILES
~/.vimrc Your personal Vim initializations.
當再次打开 vim 時 其存取順序在後面 所以覆蓋了存取順序在前面的設定檔 vimrc

2. 建議
桌面程式 個人使用
儘量編輯 ~/ 裡面的設定檔
我删掉了全局配置文件里的改动
添加了home下的配置文件,但是还是出现了老问题。
我看了一下这个配置文件6: /usr/share/vim/vim80/filetype.vim
发现了针对html的这一段:

代码: 全选

 873 " HTML (.shtml and .stm for server side)
 874 au BufNewFile,BufRead *.html,*.htm,*.shtml,*.stm  call s:FThtml()
 875 
 876 " Distinguish between HTML, XHTML and Django
 877 func! s:FThtml()
 878   let n = 1
 879   while n < 10 && n < line("$")
 880     if getline(n) =~ '\<DTD\s\+XHTML\s'
 881       setf xhtml
 882       return
 883     endif
 884     if getline(n) =~ '{%\s*\(extends\|block\|load\)\>\|{#\s\+'
 885       setf htmldjango
 886       return
 887     endif
 888     let n = n + 1
 889   endwhile
 890   setf html
 891 endfunc
是不是因为我的html是使用jinja模板写的,里面有{% block %}这样的内容,所以我要在htmldjango这个配置文件里面增加对缩进的改动才能生效?
poloshiao
论坛版主
帖子: 18280
注册时间: 2009-08-04 16:33
送出感谢: 21 次
接收感谢: 1957 次

Re: 有关vim的求助

#5

帖子 poloshiao » 2017-05-15 17:24

我删掉了全局配置文件里的改动
添加了home下的配置文件,但是还是出现了老问题。
全局配置文件 不要刪除 只要不要去編輯它 就好
因為移除它 怕會讓某些設定失效
是不是因为我的html是使用jinja模板写的,里面有{% block %}这样的内容,所以我要在htmldjango这个配置文件里面增加对缩进的改动才能生效?
這個部份 請比較熟悉的網友 幫忙
头像
chuckcheng
帖子: 12
注册时间: 2017-05-02 10:00
系统: ubuntu16.04
送出感谢: 0
接收感谢: 0

Re: 有关vim的求助

#6

帖子 chuckcheng » 2017-05-15 17:25

poloshiao 写了:
是不是因为我的html是使用jinja模板写的,里面有{% block %}这样的内容,所以我要在htmldjango这个配置文件里面增加对缩进的改动才能生效?
這個部份 請比較熟悉的網友 幫忙

好的,十分感谢。
回复

回到 “LTS 长支持版”