欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

debian安装使用youcompleteme

程序员文章站 2022-05-26 14:39:56
...

作为vim插件,youcompleteme的编译有些费时费力,好在debian库里已经有安装包了vim-youcompleteme,vim-addon-manager.vim-nox安装这三个包(vim用debian自带即可,不必从源代码自己编译,也会更稳定些),vam install youcompleteme.

来到这个目录下:/usr/lib/ycmd/ycmd/completers/rust/rust_completer.py

RUST_ROOT = os.path.join( os.getenv( 'HOME' ), '.cargo' )
RA_EXECUTABLE = utils.FindExecutable( os.path.join(
    os.getenv( 'HOME' ), '.local', 'bin', 'rust-analyzer' ) )
上面的代码替换掉相应行的代码就可以了。上面的代码里,我用的是rust,安装位置在默认位置。其它语言找相应的copleter.py。  
/usr/lib/ycmd/ycm_extra_conf.py复制到.vim文件夹下。~/.vimrc里加入下面的代码:  
set nu
syntax enable
filetype plugin indent on
set encoding=utf-8
let g:ycm_language_server = 
   \ [ 
   \   {
   \     'name': 'rust',
   \     'cmdline': [ 'rust_analyzer' ],
   \     'filetypes': [ 'rust' ],
   \     'project_root_files': [ 'Cargo.toml' ]
   \   }
   \ ]
let g:ycm_global_ycm_extra_conf='~/.vim/ycm_extra_conf.py'
let g:tcm_auto_trigger=1
可能需要加上let g:ycm_rust_src_path = '/path/to/your/src'。打开~/.vim/ycm_extra_conf.py,找到flags = [,在-x下面用rust替换,找到return extension in [ '.h', '.hxx', '.hpp', '.hh'],里面加上.rs。找到language = kwargs[ 'language' ],在下面插入下面的代码:  
    if language == 'rust':
      return {
		'ls': {
			'rust':{
          			'all_features':True,
				'all_targets':False,
				'wait_to_build':1500,
			}
		}
      }
     其它配置在网上可以随处找到,就不在这里给出了。到此,ycm已经可以在cargo new的项目里正常使用了。无法在非cargo创建的单文件.rs里使用。如果项目里有depencies,在项目的根目录下新建一个.ycm_extra_conf.py,文件名前的“.”不能少。里面下上如下几行:
         def PythonSysPath( **kwargs ):
	sys_path = kwargs[ 'sys_path' ]
	sys_path.insert( 1, 'path/to/your/src' )
	return sys_path
	
	路径用相对路径即可。

相关标签: vim 编辑器