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
路径用相对路径即可。