首页 > 其他分享 >neovim的插件管理器vim-plug导致代码颜色不显示问题解决

neovim的插件管理器vim-plug导致代码颜色不显示问题解决

时间:2023-10-05 23:24:45浏览次数:61  
标签:neovim plug 插件 markdown 管理器 vim Vim nvim

neovim的帮助文件路径

F:\Programs\Neovim\share\nvim\runtime\doc

runtimepath的帮助文档路径

F:\Programs\Neovim\share\nvim\runtime\doc\options.txt


$VIM

环境变量$VIM被用来确定Vim中不同的用户文件的位置,比如用户启动脚本“.vimrc”。这个是系统设置,详见 startup。

允许每个使用者需要时修改$VIM环境变量,Vim将试图从以下位置取得$VIM的值:

  1. 定义$VIM环境变量值。可以用Vim查看$VIM支持文件的指定目录。

    例如:setenv VIM /home/paul/vim

  2. 当作“helpfile”(帮助文件路径)使用,除非“helpfile”路径也包含在环境变量中(默认是$VIMRUNTIME/doc/help.txt:因果难定的问题)。文件名(“help.txt”或其它)被调用,请按“doc”,“runtime”和“vim{version}”顺序调用后续目录名。

  3. 对于MSDOS,Win32和OS/2 Vim试图使用可执行文件的目录名,如果它结尾是“/src”,可以被调用。这个可应用在:把某目录中ZIP文件解包,或者,调整查找vim可执行文件的搜索路径。后续目录名的调动,依据:“runtime”和“vim{version}”(例如,“vim54”)。
    例如: 在windows7在$VIM默认值是vim安装的根目录,在要引用vim安装目录时,就可以不输入全部路径,由$VIM代替就可以了。
    举例: 安装目录是E:/gvim/vim,如果要打开vim目录下“_vimrc”, 使用命令:“gvim E:/gvim/vim/_vimrc”,而使用$VIM之后是“gvim $VIM/_vimrc”。这样就缩短了代码长度对不对?

  4. 对于uninx被当作编译期定义的安装目录来使用(详见“:version”输出)。设置$VIM环境变量,更改最近一次设置,使用“:let”命令:

:let $VIM = "/home/paul/vim/"    

$VIMRUNTIME

环境变量$VIMRUNTIME用来找出各种支持文件,像在线文档和文件使用语法高亮一样。例如,主帮助文件通常是“$VIMRUNTIME/doc/help.txt”。

你没有按惯例设置自己的$VIMRUNTIME,但让Vim自行估计。按下顺序发现$VIMRUNTIME值:

  1. 如果环境变量$VIMRUNTIME已经设置,则直接使用它,当运行文件在特定位置时,你可以使用。

  2. 如果$VIM/vim{version}存在,则使用。{version}是Vim的版本号,不包括任何'-' 或'.'。例如$VIM/vim54。这是$VIMRUNTIME标准值。

  3. 如果$VIM/runtime存在,则使用。

  4. 使用$VIM值,这是向后兼容老版本。

  5. 当‘helpfile’选项被设置,不包含$,它的值是有可用的,从最后消除"doc/help.txt"。

对于Unix,当有个$VIMRUNTIME内编译默认值(检查":version"输出结果),步长在2,3和4之间跳跃,内编译默认值在步长5后被使用,这个意思是内编译默认值会支配$VIM值,如果$VIM设置为“/etc”并且执行期文件在"/usr/share/vim/vim54",才能使用。

曾经使用过Vim,更改$VIMRUNTIME环境变量。

更改$VIMRUNTIME最近一次值,使用命令":let",格式如下:

:let $VIMRUNTIME = "/home/piet/vim/vim54"

$HOME

使用"~"就如同使用"$HOME",但它只能在选项开始之前和空格或逗号后面使用。
在Unix系统中"~user"能被使用,它代替了用户home目录,例如:

:set path=~mool/include,/usr/include

在Unix系统也可使用"${HOME}"形式,字符用{}括起来,注意你如果想使用命令"gf",你需要在'isfname'上加'{' 和'}'。

注意:扩充环境变量和"~/"仅用":set"命令,而不是":let"命令。
注意:扩展选项最大长度受限制,系统决定长度,是大值在256 到1024个字符。

vim安装插件

在网页上写CSDN文章有诸多不便,感觉vim很好用,可是vim中没有预览功能。按照网上找到的教程安装插件,将以下代码复制的到_vimrc文件中。

set rtp+=$VIM/vimfiles/bundle/Vundle.vim/
call vundle#begin('./vimfiles/bundle/')

" let Vundle manage Vundle, required
Plugin 'VundleVim/Vundle.vim'

"Plug 'iamcco/markdown-preview.vim'
"Plugin 'godlygeek/tabular'
"Plugin 'preservim/vim-markdown'
"Plugin 'iamcco/markdown-preview.nvim' 
"Plugin  'iamcco/mathjax-support-for-mkdp'
"Plugin 'iamcco/markdown-preview.vim:'
Plugin  'iamcco/mathjax-support-for-mkdp'
Plugin   'iamcco/markdown-preview.vim'

" All of your Plugins must be added before the following line
call vundle#end()            " required

打开vim,命令模式下运行:PluginInstall。插件安装成功了以为可以用,但输入:MarkownPreview却报错:

安装neovim

安装nvim,下载地址:http://neovim.io/。

搞到凌晨4点也没搞定。想着安装neovim把,下载下来后不管运行nvim.exe还是nvim-qt.exe都报 can't open file F:\Program Files\Vim\syntax\syntax.vim。无语了我的neovim打开怎么跑到Vim的安装目录中去了。

网上搜了一下在init.vim添加:

"let $VIMRUNTIME="F:\\Program Files\\Vim\\linux_vim\\vim81"
let $VIMRUNTIME="F:\\Program Files\\Vim\\vim82"
set runtimepath="F:\\Program Files\\Vim\\vim82"

虽然能找到syntax.vim了,但又报:filetypedetect bufread。搞不定了。

继续搜索,发现有两个环境变量XDG_CONFIG_HOME、XDG_DATA_HOME可能需要配置,windows中neovim的配置文件默认放在目录~\AppData\Local\nvim\下。修改这两个环境变量可以改变配置文件init.vim的存放位置。打开nvim在普通模式中使用:echo stdpath('config')查看修改后的配置文件位置。

在修改的过程中发现还有一个环境变量VIM=F:\Program Files\Vim\是当初安装Vim时留下的,猜测可能是VIM引导neovim到Vim的安装目录下找syntax.vim文件了。果断删掉$VIM,果然重新运行nvim.exe一切正常。

自动生成init.vim文件

" 先启动 neovim
$ nvim
" 然后再 neovim 中输入如下两条命令
:call mkdir(stdpath('config'), 'p')
:exe 'edit '.stdpath('config').'/init.vim'

下载plug.vim

vim-plug是一个极简的Vim插件管理器。

配置vim-plug,下载plug.vim放入neovim安装目录的config\nvim-data\site\autoload中

Administrator  Desktop  ♥ 17:20  iwr -useb https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim |`
>     ni "$(@($env:XDG_DATA_HOME, $env:LOCALAPPDATA)[$null -eq $env:XDG_DATA_HOME])/nvim-data/site/autoload/plug.vim" -Force

    Directory: F:\Programs\Neovim\config\nvim-data\site\autoload

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---           2023/4/24    17:21          83127 plug.vim

安装neovim的插件

复制以下代码放入init.vim文件中

let $VIMRUNTIME='F:\Programs\Neovim\share\nvim\runtime\'
let &packpath = &runtimepath

set nocompatible

" 基础配置
syntax on

" 插件
call plug#begin('F:\Programs\Neovim\config\nvim-data\site\plugged')
" themes
Plug 'morhetz/gruvbox'

" Markdown
Plug 'iamcco/markdown-preview.nvim', { 'do': { -> mkdp#util#install() }, 'for': ['markdown', 'vim-plug']}
Plug 'dhruvasagar/vim-table-mode', { 'on': 'TableModeToggle', 'for': ['text', 'markdown', 'vim-plug'] }
Plug 'mzlogin/vim-markdown-toc', { 'for': ['gitignore', 'markdown', 'vim-plug'] }

call plug#end()

关掉重新运行,在nvim中进入命令模式(按冒号" : "),输入PlugInstall完成安装。

运行

打开一个.md文件,命令模式下输入:MarkdownPreview就能自动打开默认浏览器实时预览。或者在init.vim文件中设置快捷键如下:

nmap <silent> <F8> <Plug>MarkdownPreview        " for normal mode
imap <silent> <F8> <Plug>MarkdownPreview        " for insert mode

" 使用谷歌浏览器
let g:mkdp_brower = 'chromium'
let g:mkdp_auto_start = 1

关于markdown-preview.nvim安装后无法运行的问题的解决方案

打开F:\Programs\Neovim\config\nvim-data\site\plugged\markdown-preview.nvim\app文件夹,里面有一个install.cmd脚本,Linux中是install.sh。运行它,等该脚本运行完毕后重新打开nvim普通模式下执行:MarkdownPreview命令一般就能生效了。

回过头重新配置Vim

安装vim-plug

在Vim的安装目录F:\Program Files\Vim\vimfiles\中创建文件夹autoload,打开命令行Powershell(需要按照curl)中执行:

curl -fLo plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

头一两次可能会报错连不上服务器,需要多执行几遍直到成功。

安装vim的的Markdown预览插件

将与neovim的init.vim文件中同样的代码,修改一下路径复制到_vimrc文件中。

" Plugins will be downloaded under the specified directory.
call plug#begin('F:\Program Files\Vim\vimfiles\plugged')

" Markdown
Plug 'iamcco/markdown-preview.nvim', { 'do': { -> mkdp#util#install() }, 'for': ['markdown', 'vim-plug']}
Plug 'dhruvasagar/vim-table-mode', { 'on': 'TableModeToggle', 'for': ['text', 'markdown', 'vim-plug'] }
Plug 'mzlogin/vim-markdown-toc', { 'for': ['gitignore', 'markdown', 'vim-plug'] }

call plug#end()

" markdown-preview
let g:mkdp_open_to_the_world=1
let g:mkdp_open_ip='localhost'

保存后重新打开,输入:PlugInstall安装插件,这一步也可能要重复执行几次。安装完成后输入:call mkdp#util#install()

当出现下图说明已经成功了:

与neovim配置一样,设置完预览快捷键就大功告成了。

卸载Vim插件

如果你有哪个vim插件不想要了,只要删掉你Vim配置文件中的 Plug 'xxx/xxx' 那一行就好了。下次Vim启动的时候,那个插件就不会被加载。这样做并不会删掉那个插件的文件。你可以通过 :PlugClean 来删除所有的已经不用了的插件的文件。

插件“懒加载”(Lazy Load)

vim-plug提供了很多额外的选项。如果你安装了很多插件,然后发现这些插件让你的Vim的启动速度变慢了的话,你可以选择让一些插件不在Vim启动的时候加载,或者说让一些插件只在编辑某个特定类型的文件的时候在被加载。下面我来举一些例子来让你们更方便的理解这个vim-plug的功能。

Plug 'scrooloose/nerdtree', { 'on':  'NERDTreeToggle' }

只有在执行 :NERDTreeToggle 的时候才加载这个插件

Plug 'fatih/vim-go' , { 'for': 'go' }

只有在打开.go文件的时候才加载这个插件

Plug 'yuezk/vim-js', { 'for': ['php', 'html', 'javascript'] }

只有在打开php,html和javascript文件的时候才加载这个插件。

自动化

你可以让vim-plug在安装/升级完一个插件之后做一些事情,比如运行一个脚本。

Plug 'Yggdroot/LeaderF', { 'do': './install.sh' }

不用担心,大多数插件都不需要这一步。如果需要的话,插件的README里面会很清楚的标明的。所以在安装插件的时候请先阅读你要安装的那个插件的说明文件(Readme)

vim启动时到底加载了哪些脚本xxx.vim

前面说了,Vim的结构非常整洁,.vimrc只是多个配置文件中的其中一个而已。其实,你可以让Vim告诉你究竟加载了哪些脚本。试试看:启动终端,直接打开vim,或者是编辑计算机上的任意一个文件,如vim test.py。加载后,运行如下命令:

:scriptnames 

查看vim加载时加载了那些插件(执行了哪些脚本)

解决vim-plug插件不显示代码颜色问题

原先我安装了vim-plug插件管理器,今天突然发现neovim打开的任何代码都没有颜色,以为是neovim版本问题,就想着把init.vim复制出来重新安装neovim,复制出来了以后打开python文件代码居然有颜色。那么问题肯定出在init.vim文件。把下面这段代码删掉又重新有颜色了,逐渐排查问题出在了call plug#begin()。于是有了个两难选择,有用插件代码就没有颜色,要代码有颜色就不能用插件。想从vim-plug下手解决从下午搞到现在晚上9点多都没解决,刚刚看到vim8原生内置(naive)插件安装(二)这篇文章介绍其实不用插件管理器。

" 插件
call plug#begin('F:\Programs\Neovim\config\nvim-data\site\plugged')
" themes
Plug 'morhetz/gruvbox'

" vim-airline 标签栏插件
Plug 'Vim-airline/vim-airline'

" Markdown
Plug 'iamcco/markdown-preview.nvim', { 'do': { -> mkdp#util#install() }, 'for': ['markdown', 'vim-plug']}

" 格式化表格
Plug 'dhruvasagar/vim-table-mode', { 'on': 'TableModeToggle', 'for': ['text', 'markdown', 'vim-plug'] }
Plug 'mzlogin/vim-markdown-toc', { 'for': ['gitignore', 'markdown', 'vim-plug'] }

" 代码高亮
Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'}

" 文字环绕,到https://github.com/tpope/vim-surround下载并安装
Plug 'tpope/vim-surround' 

" 从剪贴板插入图片 
Plug 'ferrine/md-img-paste.vim' 

" nerdtree
Plug 'preservim/nerdtree'

call plug#end()

我的处理

按照上面文章给出的信息,用neovim打开一个文件,执行

:echo $VIMRUMTIME

得到一个路径:F:\Programs\Neovim\share\nvim\runtime里面有两个文件夹\pack\dist,在dist文件夹里创建start文件夹,再从F:\Programs\Neovim\config\nvim-data\site\plugged将插件复制到start文件夹里。重新用neovim打开一个python文件,代码就有颜色了插件也可以用了。

Administrator  plugged  ♥ 22:49  dir

    Directory: F:\Programs\Neovim\config\nvim-data\site\plugged

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d----           2023/4/24    17:44                gruvbox
d----           2023/4/24    17:47                markdown-preview.nvim
d----            2023/5/9    15:55                md-img-paste.vim
d----           2023/10/5    20:11                nerdtree
d----           2023/10/5    16:37                nvim-treesitter
d----            2023/5/4    19:53                surround
d----           2023/10/5    18:19                vim-airline
d----           2023/4/24    17:40                vim-markdown-toc
d----            2023/5/4    20:20                vim-surround
d----           2023/4/24    17:44                vim-table-mode

说明:我没有复制surround插件,次插件用于文字环绕的,可是也能用。

highlight

引用:

https://gitcode.net/mirrors/junegunn/vim-plug
https://gitcode.net/mirrors/iamcco/markdown-preview.nvim
https://blog.csdn.net/m0_52421468/article/details/127867966
https://blog.csdn.net/m0_70129081/article/details/124558701
neovim 安装配置
https://www.jianshu.com/p/88dd20795263
https://blog.csdn.net/qq_40394751/article/details/128747972
https://www.bilibili.com/read/cv21699240/
https://blog.csdn.net/qq_44365861/article/details/123533285

标签:neovim,plug,插件,markdown,管理器,vim,Vim,nvim
From: https://www.cnblogs.com/yangsail0422/p/17744087.html

相关文章

  • idea常用插件
    1.Idea插件安装:File->Settings->plugin->Markerplace -> install  -> 重启IDEA即可GenerateAllSetter:一键调用一个对象的所有的set方法,get方法等在方法上生成两个对象的转换Translation:翻译MyBatisLog:完整日志打印RestfulToolKit:接口定位,Ctrl+\2. Idea_Co......
  • 堡垒机AccessClient插件在Mac苹果电脑闪退,已解决
    我的配置:Macmini,AppleM2,MacOS版本13.4(22F66)先来总结我的方案:1.安装Python3;2.修改main.scpt并生效;3.看指定输出的日志提示什么;4.最后需要安装MicrosoftRemoteDesktopforMac。最初的解决方案:https://www.zhihu.com/question/435060483改了日志输出位置,查看日志,找不对具......
  • MySQL详细解析之Clone插件
    文档课题:MySQL详细解析之Clone插件.系统:rhel7.3数据库:MySQL8.0.271、理论知识从MySQL8.0.17开始引入Clone插件,克隆插件允许从本地或远程MySQLServer克隆数据.克隆的数据存储在InnoDB中的schema(database)、table(表)、tablespaces(表空间)和datadictionarymetadata(数据字典元数......
  • 打开SQL Server配置管理器
    进入C盘的System32 搜索SQL就可以了(其实最开始是打算这样查SQLServer2022对应的配置管理器的版本的,阴差阳错发现了本体 或者直接win+r,输入SQLServerManger16.msc(不过我没成功过……) 参考——https://blog.csdn.net/YINZHE__/article/details/120575321 ......
  • django-celery-beat插件使用
    该插件从Django管理界面管理celery的定期任务,您可以在其中动态****创建、编辑和删除定期任务以及它们的运行频率。django-celery-beat提供了几种添加定时或周期性任务的方式,预先在在settings.py中添加好定时任务。通过Djangoadmin后台动态添加。(实际上就是操作model模型类)......
  • flower插件-监视celery
    安装和使用:https://flower.readthedocs.io/en/latest/install.html#installationhttps://github.com/mher/flower/tree/master/examplescelery相关配置:#发送与任务相关的事件,以便可以使用flower之类的工具来监控任务#或者在启动worker服务时,使用-E参数。worker_send_task_......
  • idea插件开发(1)-第一个Idea插件
    idea插件开发和传统的java项目不太一样,开发前有三个限制:Gradle:类似maven的构建工具,建议采用V8.1+版本;javaSDK:正常要求java11或java17版本;IntellijPlatformSDK:需要注意这是插件开发的sdk,不是javaSDK。建议下载JetBrainsRuntimeversion17.0.6一、开发前准备知识1、What'sIntell......
  • Jenkins List Git Branches插件 构建选择指定git分支
    ListGitBranchesParameter|JenkinspluginAddsabilitytochoosefromgitrepositoryrevisionsortagshttps://plugins.jenkins.io/list-git-branches-parameter/1、安装组件  ListGitBranches2、验证功能1)新建任务 2)新增构建参数 3)选择git仓库我这里选择gitee,其他......
  • Better Input:VSCode插件开发指南
    更好的阅读体验?0.准备工作先安装(更新)node.js和nmpnode更新去Node.js官网下载最新版本,然后重新安装在原来的安装路径下(第一次下载可只进行第三步)node-v查看当前版本是否是最新版本wherenode查看之前的安装路径去Node.js官网下载LTS版本执行node-v查看现......
  • mysql在安装group_replication插件时,报错ERROR 1126"can't open share library xxxx g
    问题描述:mysql在安装group_replication插件时,报错ERROR1126"can'topensharelibraryxxxxgroup_replication.so",如下所示:数据库:MySQL8.0.27系统:rhel7.31、问题重现mysql>INSTALLPLUGINgroup_replicationSONAME'group_replication.so';ERROR1126(HY0......