Ubuntu Server 20.04 LTS 环境下搭建vim 编辑器Python IDE的详细步骤

Tia ·
更新时间:2024-11-13
· 1363 次阅读

目录

安装配置vim-plug

安装vim-plug

配置vim-plug

安装coc.nvim插件

更新vim

安装node

添加coc.nvim到.vimrc文件

配置服务器

设置TAB 代码补全

设置F5一键执行代码

安装配置vim-plug 安装vim-plug curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim 配置vim-plug

在家目录下创建.vimrc配置文件

在.vimrc下填写配置

vim ~/.vimrc call plug#begin() Plug 'neoclide/coc.nvim' Plug 'asins/vimcdoc' Plug 'preservim/nerdtree' Plug 'mhinz/vim-startify' Plug 'luochen1990/rainbow' call plug#end() 安装coc.nvim插件 更新vim sudo add-apt-repository ppa:jonathonf/vim sudo apt-get update sudo apt-get install vim 安装node sudo apt update sudo apt install nodejs npm sudo curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash - sudo apt install nodejs 添加coc.nvim到.vimrc文件 call plug#bing() Plug 'neoclide/coc.nvim', {'branch': 'release'} call plug#end()

:PlugInstall 安装自动补全插件
:CocInfo 检查插件安装情况
:CocInstall coc-json coc-tsserver支持JSON和Typescript相关子插件

配置服务器

:CocConfig添加Python配置数据
:CocInstall coc-pyright

// be careful not to condense the hierarchy as it breaks pyls "languageserver": { "python": { "command": "python", "args": [ "-mpyls", "-vv", "--log-file", "/tmp/lsp_python.log" ], "trace.server": "verbose", "filetypes": [ "python" ], "settings": { "pyls": { "enable": true, "trace": { "server": "verbose" }, "commandPath": "", "configurationSources": [ "pycodestyle" ], "plugins": { "jedi_completion": { "enabled": true }, "jedi_hover": { "enabled": true }, "jedi_references": { "enabled": true }, "jedi_signature_help": { "enabled": true }, "jedi_symbols": { "enabled": true, "all_scopes": true }, "mccabe": { "enabled": true, "threshold": 15 }, "preload": { "enabled": true }, "pycodestyle": { "enabled": true }, "pydocstyle": { "enabled": false, "match": "(?!test_).*\\.py", "matchDir": "[^\\.].*" }, "pyflakes": { "enabled": true }, "rope_completion": { "enabled": true }, "yapf": { "enabled": true } } } } } } 设置TAB 代码补全

在.vimrc文件中添加以下代码

set nobackup set nowritebackup set updatetime=300 set signcolumn=yes inoremap <silent><expr> <TAB> \ coc#pum#visible() ? coc#pum#next(1): \ CheckBackspace() ? "\<Tab>" : \ coc#refresh() inoremap <expr><S-TAB> coc#pum#visible() ? coc#pum#prev(1) : "\<C-h>" inoremap <silent><expr> <CR> coc#pum#visible() ? coc#pum#confirm() \: "\<C-g>u\<CR>\<c-r>=coc#on_enter()\<CR>" function! CheckBackspace() abort let col = col('.') - 1 return !col || getline('.')[col - 1] =~# '\s' endfunction " Use <c-space> to trigger completion. if has('nvim') inoremap <silent><expr> <c-space> coc#refresh() else inoremap <silent><expr> <c-@> coc#refresh() endif " Use `[g` and `]g` to navigate diagnostics " Use `:CocDiagnostics` to get all diagnostics of current buffer in location list. nmap <silent> [g <Plug>(coc-diagnostic-prev) nmap <silent> ]g <Plug>(coc-diagnostic-next) " GoTo code navigation. nmap <silent> gd <Plug>(coc-definition) nmap <silent> gy <Plug>(coc-type-definition) nmap <silent> gi <Plug>(coc-implementation) nmap <silent> gr <Plug>(coc-references) " Use K to show documentation in preview window. nnoremap <silent> K :call ShowDocumentation()<CR> function! ShowDocumentation() if CocAction('hasProvider', 'hover') call CocActionAsync('doHover') else call feedkeys('K', 'in') endif endfunction " Highlight the symbol and its references when holding the cursor. autocmd CursorHold * silent call CocActionAsync('highlight') " Symbol renaming. nmap <leader>rn <Plug>(coc-rename) " Formatting selected code. xmap <leader>f <Plug>(coc-format-selected) nmap <leader>f <Plug>(coc-format-selected) augroup mygroup autocmd! " Setup formatexpr specified filetype(s). autocmd FileType typescript,json setl formatexpr=CocAction('formatSelected') " Update signature help on jump placeholder. autocmd User CocJumpPlaceholder call CocActionAsync('showSignatureHelp') augroup end " Applying codeAction to the selected region. " Example: `<leader>aap` for current paragraph xmap <leader>a <Plug>(coc-codeaction-selected) nmap <leader>a <Plug>(coc-codeaction-selected) " Remap keys for applying codeAction to the current buffer. nmap <leader>ac <Plug>(coc-codeaction) " Apply AutoFix to problem on the current line. nmap <leader>qf <Plug>(coc-fix-current) " Run the Code Lens action on the current line. nmap <leader>cl <Plug>(coc-codelens-action) " Map function and class text objects " NOTE: Requires 'textDocument.documentSymbol' support from the language server. xmap if <Plug>(coc-funcobj-i) omap if <Plug>(coc-funcobj-i) xmap af <Plug>(coc-funcobj-a) omap af <Plug>(coc-funcobj-a) xmap ic <Plug>(coc-classobj-i) omap ic <Plug>(coc-classobj-i) xmap ac <Plug>(coc-classobj-a) omap ac <Plug>(coc-classobj-a) " Remap <C-f> and <C-b> for scroll float windows/popups. if has('nvim-0.4.0') || has('patch-8.2.0750') nnoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : "\<C-f>" nnoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : "\<C-b>" inoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(1)\<cr>" : "\<Right>" inoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(0)\<cr>" : "\<Left>" vnoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : "\<C-f>" vnoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : "\<C-b>" endif " Use CTRL-S for selections ranges. " Requires 'textDocument/selectionRange' support of language server. nmap <silent> <C-s> <Plug>(coc-range-select) xmap <silent> <C-s> <Plug>(coc-range-select) " Add `:Format` command to format current buffer. command! -nargs=0 Format :call CocActionAsync('format') " Add `:Fold` command to fold current buffer. command! -nargs=? Fold :call CocAction('fold', <f-args>) " Add `:OR` command for organize imports of the current buffer. command! -nargs=0 OR :call CocActionAsync('runCommand', 'editor.action.organizeImport') " Add (Neo)Vim's native statusline support. " NOTE: Please see `:h coc-status` for integrations with external plugins that " provide custom statusline: lightline.vim, vim-airline. set statusline^=%{coc#status()}%{get(b:,'coc_current_function','')} " Mappings for CoCList " Show all diagnostics. nnoremap <silent><nowait> <space>a :<C-u>CocList diagnostics<cr> " Manage extensions. nnoremap <silent><nowait> <space>e :<C-u>CocList extensions<cr> " Show commands. nnoremap <silent><nowait> <space>c :<C-u>CocList commands<cr> " Find symbol of current document. nnoremap <silent><nowait> <space>o :<C-u>CocList outline<cr> " Search workspace symbols. nnoremap <silent><nowait> <space>s :<C-u>CocList -I symbols<cr> " Do default action for next item. nnoremap <silent><nowait> <space>j :<C-u>CocNext<CR> " Do default action for previous item. nnoremap <silent><nowait> <space>k :<C-u>CocPrev<CR> " Resume latest coc list. nnoremap <silent><nowait> <space>p :<C-u>CocListResume<CR> 设置F5一键执行代码 "一键运行代码 map <F5> :call CompileRunGcc()<CR> func! CompileRunGcc() exec "w" if &filetype == 'c' exec "!g++ % -o %<" exec "!time ./%<" elseif &filetype == 'cpp' exec "!g++ % -o %<" exec "!time ./%<" elseif &filetype == 'java' exec "!javac %" exec "!time java %<" elseif &filetype == 'sh' :!time bash % elseif &filetype == 'python' exec "!time python3 %" elseif &filetype == 'html' exec "!firefox % &" elseif &filetype == 'go' " exec "!go build %<" exec "!time go run %" elseif &filetype == 'mkd' exec "!~/.vim/markdown.pl % > %.html &" exec "!firefox %.html &" endif endfunc

到此这篇关于Ubuntu Server 20.04 LTS 环境下搭建vim 编辑器Python IDE的文章就介绍到这了,更多相关vim 编辑器Python IDE内容请搜索软件开发网以前的文章或继续浏览下面的相关文章希望大家以后多多支持软件开发网!



环境 ubuntu ide lts vim Python

需要 登录 后方可回复, 如果你还没有账号请 注册新账号