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
的值:
-
定义
$VIM
环境变量值。可以用Vim查看$VIM支持文件的指定目录。
例如:setenv VIM /home/paul/vim -
当作“helpfile”(帮助文件路径)使用,除非“helpfile”路径也包含在环境变量中(默认是
$VIMRUNTIME/doc/help.txt
:因果难定的问题)。文件名(“help.txt”或其它)被调用,请按“doc”,“runtime”和“vim{version}”顺序调用后续目录名。 -
对于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”。这样就缩短了代码长度对不对? -
对于uninx被当作编译期定义的安装目录来使用(详见“:version”输出)。设置$VIM环境变量,更改最近一次设置,使用“:let”命令:
:let $VIM = "/home/paul/vim/"
$VIMRUNTIME
环境变量$VIMRUNTIME
用来找出各种支持文件,像在线文档和文件使用语法高亮一样。例如,主帮助文件通常是“$VIMRUNTIME/doc/help.txt”。
你没有按惯例设置自己的$VIMRUNTIME
,但让Vim自行估计。按下顺序发现$VIMRUNTIME
值:
-
如果环境变量
$VIMRUNTIME
已经设置,则直接使用它,当运行文件在特定位置时,你可以使用。 -
如果
$VIM/vim{version}
存在,则使用。{version}是Vim的版本号,不包括任何'-' 或'.'。例如$VIM/vim54
。这是$VIMRUNTIME
标准值。 -
如果
$VIM/runtime
存在,则使用。 -
使用
$VIM
值,这是向后兼容老版本。 -
当‘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