vim利用coc补全的配置过程

摘要:
下面提到的vim指的是nvim。我安装了nvim插件管理器Vim-plugcurl fLo~/。config/nvim/autoload/plug。vim-在/etc/profileaiasvim=“nvim”ln-s~/中创建。config/nvm/init。vim~/。vimrc-dirshttps://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim步骤3:安装coc插件。完成以上两个步骤后,可以添加coc插件。我的配置如下:setnu“Display line number”plug-in list“plug-in loading directory.config/nvim/plugged,或.vim/pplugged。您可以在将来将其下载到此目录,并启动vim以加载插件callplug#begin”starting statement plug‘neclip/cc。nvim’,{'branch':'release'}“这是coc.nvim插件插件‘fatih/vim go’,{'do':‘:GoUpdateBinaries’}”这是插件callplug#end()“end语句let:script_cwd=expandlets:source_list=['viml','config',]fors:items:source_listlets:path=splitfors:cfgins:pathiflereadableexecute‘source'。s:cfgendifindforruns:script_cwdunlets:source_list”go插件的配置设置letg:go_def_mode='gopls'letg:go_info_mode='gopls'我不确定其余的配置。让我们别管它。最终的结果是使用coc完成各种语言
  • 题外话,国内的博客为什么都是抄来抄去呢,还是要自己实践一下

  • coc插件原理 vscode 补全利用的是LSP (language server protocol), 简单理解就是编辑时启动一个进程,补全过程就类似app请求服务器得到补全数据。这就是为什么要装node,服务进程都是node启动。

第一步 安装nvim

  • 首先你需要 安装vim8 或者nvim 我测试的是macos
  • 如果是nvim, 需要把nvim 的配置文件做一次软链接指向 ~/.vimrc 这是延续以前的vim配置方式, 不做的话,只能修改./config/nvim/init.vim , 因为nvim的配置默认读取这个文件。
  • 以下提到的vim都是指的nvim,我在/etc/profile alias vim=“nvim” 了
ln -s ~/.config/nvim/init.vim ~/.vimrc

第二步 安装nvim插件管理器 Vim-plug

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

第三步 安装coc插件

  • 以上两步完成之后,可以添加coc插件,我的配置如下
set nu  " 显示行号  
" 插件列表    
" 插件加载目录 .config/nvim/plugged ,也可以是.vim/plugged 随便都可以, 以后太会下载到这个目录,启动vim也会加载这里的插件

call plug#begin('~/.config/nvim/plugged')  " 开始语句    
Plug 'neoclide/coc.nvim', {'branch': 'release'}   " 这是coc.nvim 插件
Plug 'fatih/vim-go', { 'do': ':GoUpdateBinaries' }    " 这是go语言补全需要的插件
    
call plug#end() " 结束语句
    
let s:script_cwd = expand('<sfile>:p:h')    
let s:source_list = [    
       'viml',    
       'config',    
      ]    
    
for s:item in s:source_list    
  let s:path = split(globpath(s:script_cwd . '/' . s:item, '*.vim'), '
')    
  for s:cfg in s:path    
    if filereadable(s:cfg)    
      execute 'source ' . s:cfg    
    endif    
  endfor    
endfor    
    
unlet s:script_cwd    
unlet s:source_list    
    
" 这两句是针对go插件的配置设定
let g:go_def_mode='gopls'    
let g:go_info_mode='gopls'    
  • 其余的配置我也不太清楚,暂且不管,最终要的是结果是利用coc补全各种语言…

第四步 如何安装php补全插件

  • 各种语言coc扩展这里有

  • coc-phpactor 是php7以上才可以用

  • coc-phpls 一般都用这个

  • 第一步 需要安装Intelephense

    npm i intelephense -g
    
  • 第二步打开vim, 安装coc-phpls

    CocInstall coc-phpls
    
  • 第三步 配置php language server

    • vim : CocConfig
    • 会默认打开一个配置文件
    ```
      {    
        "languageserver": {    
      	 "intelephense": {    
      		"command": "intelephense",    
      		"args": ["--stdio"],    
      		"filetypes": ["php"],    
      		"initializationOptions": {    
      			"storagePath": "/Users/kunming/php/"    
      		}    
      	}
      }
    ```
    
    • 这里外面的intelephense表示配置的名称
    • command里面的intelephense是一个文件
    • args 表示可执行文件后面的参数
    • 比如你打开一个php文件,ps命令可以看到系统会启动一个进程 node /usr/local/bin/intelephense --stdio
    • 有一个索引js的进程/usr/local/bin/node --no-warnings /Users/kunming/.SpaceVim/plugged/coc.nvim/build/index.js
    • node还会启动一个进程类似这样/usr/local/Cellar/node/14.1.0/bin/node /Users/kunming/.config/coc/extensions/node_modules/coc-phpls/node_modules/intelephense/lib/intelephense.js --node-ipc --clientProcessId=72264
    • filetypes 指定了对php文件有效
    • storagePath 表示初始化信息存储的位置,据我观察应该是打开一个文件,进程为php建立补全信息建立的索引日志文件,安装intelephense,会附带好多php文件,常见的php库,也是为了建立索引用的,初次编辑一个php文件,这个目录会有28872930这样的文件夹生成。
    • 最重要的:只有你在storagePath目录下建立的php文件或者项目,vim编辑才会出现补全提示,在别的目录是没有提示的,这一点研究了好久才感觉出来,文档也没说这些。

其余插件,我只安装了go的coc扩展和python的coc扩展,go扩展需要提前安装fatih/vim-go来支持

  • 同样每次编辑他们的文件都会启动一个类似node进程/usr/local/bin/node --no-warnings /Users/kunming/.SpaceVim/plugged/coc.nvim/build/index.js
  • 都是一个套路:
    1. 找到所需的插件,比如coc-python 安装他需要的依赖,一般插件后面会提到
    1. vim中安装coc扩展 CocInstall coc-python
    1. vim来打配置CocConfig,添加对应语言的server配置
    1. 所以LSP是一个cs结构的,有服务端也就是node进程, 客户端就是vim编辑器

免责声明:文章转载自《vim利用coc补全的配置过程》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇IOS ——OC—— NSDictionary的使用总结C# 线程thread下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Liunx 的常用命令

配置文件常用操作 d100回车删除 100 行gg=G 进行配置文件格式整理配置虚拟机 ipvim /etc/sysconfig/network-scripts/ifcfg-ens33修改环境变量vim /etc/profile配置完成之后source /etc/profile执行权限chmod a+x a+x 文件名 表示可执行权限,a 表示所有用户 路径...

vim recording功能介绍

使用vim时无意间触碰到q键,左下角出现“recording”这个标识,觉得好奇,遂在网上查了一下,然后这是vim的一个强大功能。他可以录制一个宏(Macro),在开始记录后,会记录你所有的键盘输入,包括在insert模式下的输入、正常模式下使用的各种命令等。 具体使用: 第一步:在正常模式下(非insert模式、非visual模式)按下q键盘 第二步:选...

springboot SFTP 文件上传下载功能

新增sftp.properies 文件保存 sftp服务器信息 # 协议 sftp.client.protocol=sftp # ip地址 sftp.client.host=改成自己的文件服务器地址 # 端口 sftp.client.port=22 # 用户名 sftp.client.username=root # 密码 sftp.client.passw...

关于配置文件Web.config文件的家常事

1. 在Web.config文件中数据库连接字符串的运用      a.将web.config文件中<system.web>标签之上的<connectionStrings />更改如下:          <connectionStrings>            <add  name="ConnStr"  co...

linux源码“.config”文件分析

转载于:http://www.cnblogs.com/amanlikethis/p/3641097.html 一、.config文件概述 .config文件是linux内核配置文件,当执行#make uImage编译生成内核时,顶层的Makefile会读取.config文件的内容,根据这个配置文件来编译所定制的内核。 二、.config文件关联 1 文件关...

内核源代码阅读工具介绍

跳转 在源代码阅读过程中,最常用的就是跳转到一个指定的函数的代码块中。 下面我们先介绍最常用的跳转功能 首选在内核源代码目录中,运行vim,然后输入: :tj start_kernel 如果tags文件中只有一个标号为start_kernel的索引,就会直接跳转到这个start_kernel函数的定义中,如果有多个标号为 start_kernel的索引,...