vim 长文件内跳转后颜色/配置丢失

2020-08-18 17:22:59 +08:00
 leaveeel

如图,如果行数较多,然后使用 G / ]] / n 等跳转命令会导致部分代码颜色丢失,往上翻会发现在某一行被截断,这时候进行 hjkl 移动会恢复向下一部分代码。然后继续找到下一个分隔行,直到最后

在变成白色的代码内 emmet 插件的 css 补全失效,被解析成标签。

js 代码应该是变成默认颜色了

这是应该显示的颜色

有没有人知道是什么原因,经常跳到文件尾碰到这个问题然后又从头一行一行移下来导致很烦燥

_vimrc 配置文件

filetype plugin indent on
"关闭兼容
set nocompatible
filetype off
"Windows 快捷键
source $VIMRUNTIME/vimrc_example.vim
"source $VIMRUNTIME/mswin.vim
"behave mswin
"字体设置
set guifont=微软雅黑:h13:cGB2312
"当前编辑的文件编码
set fileencoding=utf-8
"支持的编码
set fileencodings=ucs-bom,utf-8,chinese,cp936
set encoding=utf-8
set termencoding=utf-8
"解决菜单乱码
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
"解决输出乱码
language messages zh_CN.utf-8
"防止特殊符号无法正常显示
set ambiwidth=double
"显示标尺
set ruler
"显示操作
set showcmd
"高亮
syntax on
set cursorline cursorcolumn
"关闭工具栏 /滚动条
set go=
"显示最多行
set dy=lastline
"显示匹配括号
"set showmatch
"行号
set number
"制表符缩进 4 空格
set shiftwidth=4
"制表符宽 4 字符
set tabstop=4
"制表符替换为空格
set expandtab
"退格删除 4 个空格
set softtabstop=4
"自动缩进
set autoindent
"显示顶部 tab 标签
set showtabline=2
"禁用复制自动注释
set paste
"取消确认
set shortmess=atI
"自动保存
set autowrite
"历史记录
set history=1000
"禁用方向键
noremap <up> <nop>
noremap <down> <nop>
noremap <left> <nop>
noremap <right> <nop>
"系统剪切板
set clipboard+=unnamed
"不生成备份文件
set noundofile
set nobackup
"不生成意外退出备份文件
"set noswapfile
"禁用鼠标
"set mouse-=a
"最大化窗口
if has('win32')
    au GUIEnter * simalt ~x
else
    au GUIEnter * call MaximizeWindow()
endif
function! MaximizeWindow()
    silent !wmctrl -r :ACTIVE: -b add,maximized_vert,maximized_horz
endfunction
"初始化
autocmd BufNewFile *.html exec ':call HTMLModel()'
func HTMLModel()
    call setline(1,"<!DOCTYPE html>")
    call append(line("."),      "<html>")
    call append(line(".")+1,    "    <head>")
    call append(line(".")+2,    "        <meta charset='utf-8' />")
    call append(line(".")+3,    "        <meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no' />")
    call append(line(".")+4,    "        <meta http-equiv='X-UA-Compatible' content='IE=Edge,chrome=1' />")
    call append(line(".")+5,    "        <meta name='renderer' content='webkit' />")
    call append(line(".")+6,    "        <title></title>")
    call append(line(".")+7,    "    </head>")
    call append(line(".")+8,    "    <body>")
    call append(line(".")+9,    "        ")
    call append(line(".")+10,   "    </body>")
    call append(line(".")+11,   "</html>")
endfunc
autocmd BufNewFile *.html normal 11G$
"Vundle 的路径
set rtp+=$VIM/vimfiles/bundle/Vundle.vim
"插件的安装路径
call vundle#begin('$VIM/vimfiles/bundle/')
Plugin 'VundleVim/Vundle.vim'
Plugin 'tomasr/molokai'
Plugin 'ctrlp.vim'
Plugin 'scrooloose/nerdtree'
Plugin 'mattn/emmet-vim'
"Plugin 'othree/yajs.vim'
Plugin 'mxw/vim-jsx'
Plugin 'pangloss/vim-javascript'
Plugin 'jiangmiao/auto-pairs'
call vundle#end()

"molokai
syntax enable
colorscheme molokai
highlight NonText guibg=#060606
highlight Folded  guibg=#0A0A0A guifg=#9090D0
"树形表
nmap <C-n> :NERDTreeToggle<CR>
let NERDTreeShowLineNumbers=1
let NERDTreeShowHidden=1
"emmet 快捷键
let g:user_emmet_expandabbr_key = '<S-Tab>'
"ctrlP
set wildignore+=*/tmp/*,*.so,*.swp,*.zip,*.png,*.jpg,*.jpeg,*.gif " MacOSX/Linux
let g:ctrlp_custom_ignore = '\v[\/]\.(git|hg|svn)$'
"javascript
let g:javascript_plugin_jsdoc = 1
let g:javascript_plugin_ngdoc = 1
let g:javascript_plugin_flow = 1
869 次点击
所在节点    问与答
6 条回复
tamlok
2020-08-18 17:27:39 +08:00
写 cpp 的时候,我也遇到过~~
leaveeel
2020-08-18 17:53:29 +08:00
@tamlok 你是怎么解决的,我之前把 vimrc 删了打开过代码,好像也还是有这个问题。是 gvim 本身的 feature 吗
tamlok
2020-08-18 17:58:21 +08:00
@leaveeel 不会解决~~坐等高手
thedrwu
2020-08-18 18:04:02 +08:00
: syn sync fromstart

缺点就是有点慢。需要的时候 on-demand,然后再调回来
leaveeel
2020-08-18 18:30:46 +08:00
@thedrwu 感谢,有效。查了下这个方法,相当于重新执行了一次高亮语法。慢倒是没觉得,可能文件暂时没有特别大吧,不过至少比从上个有效区 j 下来方便多了!
leaveeel
2020-08-18 18:32:51 +08:00
@tamlok
4#给了解决办法,我在 vimrc 里给命令加了个快捷键,有需要你也可以配置一下。
`noremap <Leader>r <Esc>:syntax sync fromstart<CR>`

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/699353

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX