日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

如何在Linux上使用VIM进行.Net Core开发

發布時間:2023/12/4 linux 57 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何在Linux上使用VIM进行.Net Core开发 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

對于在Linux上開發.Net Core的程序員來說, 似乎都缺少一個好的IDE.
Windows上有Visual Studio, Mac上有Visual Studio for Mac, 難道Linux只有Visual Studio Code了嗎?
Linux上有兩個最好的編輯器: VIM和Emacs, 哪個更好不是這一篇的主題, 這一篇的主題是如何在Linux上簡單的構建一個比較好用的.Net Core開發環境.

以下的內容面向的是剛接觸VIM的新手, 如果你完全未接觸過, 可以去找一些入門的文章看看.
以下使用的環境是 Ubuntu 16.04 LTS + .Net Core 2.0 preview 2.

導入一個通用的vimrc

如果你是新手, 并且你的vimrc(vim的配置文件)空空如也, 請導入下面這個vimrc.
這個配置文件啟用了智能縮進和改善了快捷鍵等等, 強烈推薦新手一開始使用它.
地址:?https://github.com/amix/vimrc

git clone --depth=1 git://github.com/amix/vimrc.git ~/.vim_runtime sh ~/.vim_runtime/install_basic_vimrc.sh

安裝模塊管理工具pathogen.vim

跟眾多IDE中一樣, vim可以模塊化管理功能.
管理工具除了pathogen外還有Vundle等, 但pathogen是最簡單的, 安裝完以后把插件放在"~/.vim/bundle"下即可.
地址:?https://github.com/tpope/vim-pathogen

mkdir -p ~/.vim/autoload ~/.vim/bundle curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim echo -e "\nexecute pathogen#infect()" >> ~/.vimrc

安裝mono

雖然這篇文章介紹的是.Net Core開發, 但是C#的智能語法提示插件基于mono,所以必須先安裝mono.
ubuntu 16.04自帶的mono版本比較低, 需要從官方安裝, 步驟如下:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF echo "deb http://download.mono-project.com/repo/ubuntu xenial main" | sudo tee /etc/apt/sources.list.d/mono-official.list sudo apt-get update sudo apt-get install mono-devel

安裝vim.nox

ubuntu 16.04上的vim默認不帶python支持, 而omnisharp-vim要求python支持, 所以需要另外安裝一個vim.nox.

sudo apt-get install vim.nox-py2 sudo update-alternatives --set vi /usr/bin/vim.nox-py2 sudo update-alternatives --set vim /usr/bin/vim.nox-py2

安裝OmniSharp

OmniSharp用于動態解析C#的語法, 為語法分析和補全提示等功能提供支持, Visual Studio Code中用的也是它.
地址:?https://github.com/OmniSharp/omnisharp-vim

cd ~/.vim/bundle git clone https://github.com/OmniSharp/omnisharp-vim.git cd omnisharp-vim git submodule update --init --recursive cd server xbuild cd ~/.vim/bundle/omnisharp-vim/omnisharp-roslyn ./build.sh

安裝OmniSharp需要的其他組件

OmniSharp只提供了語言服務, 還需要安裝其他組件來實現智能提示等功能.

dispatch.vim

用于后臺啟動OmniSharp的語言服務
地址:?https://github.com/tpope/vim-dispatch

cd ~/.vim/bundle git clone https://github.com/tpope/vim-dispatch

CtrlP

用于查找和定位類型
地址:?https://github.com/ctrlpvim/ctrlp.vim

cd ~/.vim/bundle git clone https://github.com/ctrlpvim/ctrlp.vim

syntastic

用于實現語法檢查
地址:?https://github.com/vim-syntastic/syntastic

cd ~/.vim/bundle git clone https://github.com/vim-syntastic/syntastic

vim-deus

替換默認的配色
地址:?https://github.com/ajmwagar/vim-deus

cd ~/.vim/bundle git clone https://github.com/ajmwagar/vim-deus

添加自定義的配置

創建我們自己使用的配置文件

mkdir -p ~/.vim/bundle/myconf/plugin vi ~/.vim/bundle/myconf/plugin/myconf.vim

添加以下的部分到myconf.vim中, 更多配置可以參考omnisharp-vim中的README.
粘貼前需要使用":set paste"防止粘貼的內容觸發快捷鍵.

" 讓omnisharp使用roslyn let g:OmniSharp_server_type = 'v1' let g:OmniSharp_server_type = 'roslyn' let g:OmniSharp_prefer_global_sln = 1" 設置omnisharp let g:OmniSharp_timeout = 1 set noshowmatch set completeopt=longest,menuone,preview let g:syntastic_cs_checkers = ['code_checker'] set updatetime=500 augroup omnisharp_commandsautocmd!autocmd FileType cs call s:SetCSharpOptions()setlocal omnifunc=OmniSharp#Completefun! s:SetCSharpOptions()autocmd BufEnter,TextChanged,InsertLeave *.cs SyntasticCheckautocmd BufWritePost *.cs call OmniSharp#AddToProject()autocmd CursorHold *.cs call OmniSharp#TypeLookupWithoutDocumentation()" 設置快捷鍵" F12轉到定義nnoremap <F12> :OmniSharpGotoDefinition<cr>nnoremap gd :OmniSharpGotoDefinition<cr>" Ctrl+F12轉到實現nnoremap <C-F12> :OmniSharpFindImplementations<cr>nnoremap fi :OmniSharpFindImplementations<cr>" F11查找使用nnoremap <F11> :OmniSharpFindUsages<cr>nnoremap fu :OmniSharpFindUsages<cr>nnoremap ft :OmniSharpFindType<cr>nnoremap fs :OmniSharpFindSymbol<cr>nnoremap fm :OmniSharpFindMembers<cr>nnoremap fx ?:OmniSharpFixIssue<cr>nnoremap fxu :OmniSharpFixUsings<cr>nnoremap tt :OmniSharpTypeLookup<cr>nnoremap dc :OmniSharpDocumentation<cr>nnoremap <C-Up> :OmniSharpNavigateUp<cr>nnoremap <C-Down> :OmniSharpNavigateDown<cr>nnoremap gc :OmniSharpGetCodeActions<cr>vnoremap gcv :call OmniSharp#GetCodeActions('visual')<cr>" F2重命名nnoremap <F2> :OmniSharpRename<cr>nnoremap rl :OmniSharpReloadSolution<cr>nnoremap cf :OmniSharpCodeFormat<cr>nnoremap tp :OmniSharpAddToProject<cr>nnoremap ss :OmniSharpStartServer<cr>nnoremap sp :OmniSharpStopServer<cr>nnoremap th :OmniSharpHighlightTypes<cr>" F1切換buffernnoremap <F1> :buffers<CR>:buffer" F5編譯+運行nnoremap <F5> :make<CR>" Enter選擇提示內容+顯示文檔inoremap <expr><Enter> pumvisible() ? "\<C-Y>\<Esc>:OmniSharpDocumentation<CR>a" : "\<Enter>"" Tab切換提示內容inoremap <expr><Tab> pumvisible() ? "\<C-n>" : "\<Tab>"" (選擇提示內容+顯示文檔inoremap <expr>( pumvisible() ? "\<Esc>:OmniSharpDocumentation<CR>a(" : "("" 添加多行注釋inoremap /// ///<Space><summary><CR><CR></summary><Esc>kA<Space>" 設置即時提示set completeopt+=menuset completeopt+=menuoneset completeopt+=noinsertautocmd InsertCharPre * call s:TypeComplete()fun! s:TypeComplete()if pumvisible() && v:char !~ '\.'return ''endifif v:char =~ '\(\K\|\.\)'call feedkeys("\<C-x>\<C-o>", 'n')endifendfunendfun augroup END" 定義有多行時不提示Enter繼續 set cmdheight=2" 轉到定義時不詢問保存 set hidden" 開啟256色支持 set t_Co=256" 顯示行號 set number" 替換默認的配色 colorscheme deus

.Net Core 2.0支持

如果系統同時如果安裝了.Net Core 2.0 preview 2, 可能會導致Omnisharp的語言服務啟動失敗, 可以用下面的辦法解決.

cp -i ~/.nuget/packages/runtime.ubuntu.16.04-x64.runtime.native.System/1.0.1/runtimes/ubuntu.16.04-x64/native/System.Native.so ~/.vim/bundle/omnisharp-vim/omnisharp-roslyn/artifacts/publish/OmniSharp/default/net46/libSystem.Native.so cp -i /usr/share/dotnet/sdk/2.0.0-preview2-006497/Sdks/Microsoft.NET.Sdk/tools/net46/NuGet.*.dll ~/.vim/bundle/omnisharp-vim/omnisharp-roslyn/artifacts/publish/OmniSharp/default/net46/

另外由于omnisharp的目前的一個bug(#309), 還需要執行以下的命令

cd ~/.vim/bundle/omnisharp-vim/omnisharp-roslyn/artifacts/scripts ln -s OmniSharp Omnisharp

如果仍然無法得到智能提示, 可以手動啟動語言服務確認是否出錯.

~/.vim/bundle/omnisharp-vim/omnisharp-roslyn/artifacts/scripts/OmniSharp -p 2000 -s ~/NewProject/NewProject.sln

開發示例

首先創建一個項目

mkdir NewProject cd NewProject dotnet new console dotnet new sln dotnet sln add NewProject.csproj

然后生成一個Makefile, 這樣可以支持":Make"或者"F5"時編譯運行

echo -e "PHONY: run\nrun:\n\tdotnet run\n" > Makefile

最后使用vim打開代碼文件即可

vim Program.cs

效果(靜態圖)

效果(gif)


教程就到此為止了, 需要更多功能可以查看omnisharp-vim的官方Github.

原文地址:http://www.cnblogs.com/zkweb/p/7298996.html


.NET社區新聞,深度好文,微信中搜索dotNET跨平臺或掃描二維碼關注

總結

以上是生活随笔為你收集整理的如何在Linux上使用VIM进行.Net Core开发的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。