IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> WSL下的NeoVim安装与配置 -> 正文阅读

[开发工具]WSL下的NeoVim安装与配置

1 python模块下载

sudo apt-get install python-dev python-pip python3-dev python3-pip

2 添加仓库并下载

sudo add-apt-repository ppa:neovim-ppa/stable
sudo apt-get update
sudo apt-get install neovim

检查版本:

nvim -v

3 更改域名解析

访问这个网站:https://ipaddress.com/website/raw.githubusercontent.com
出现403就点击Goto Homepage

选择Data项下面的第一个就可以了 复制下来
在这里插入图片描述
然后打开/etc/hosts追加下面一行,保存就行
注意可能要使用root身份:sudo nvim /etc/hosts

182.199.105.133 raw.githubusercontent.com

加快git访问速度

安装插件管理器:vim-plug

有了上面一步,就可以快速下载vim-plug了:

sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \
       https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'

一般来说会秒下成功,但是如果遇到错误类似errorno104:

curl: (56) OpenSSL SSL_read: Connection reset by peer, errno 104

这是因为服务器的SSL证书没有经过第三方机构的签署,所以才报错

git config --global http.sslVerify "false"

VIM-PLUG下载插件

插件下载的NVIM语句的模板是这样的:
这两句之间填充你要下载的插件就可以了

call plug#begin('~/.vim/plugged')

call plug#end()

但是如果你下载出现了问题,你需要在plug开始声明之后添加这一句才能成功访问到github:

let g:plug_url_format='git@github.com:%s.git'

好了现在你可以放肆的往其中插入plug声明了,想要什么只要按格式:

plug ' xxxxxx'

记录下来就可以了,最后保存,再执行:PlugInstall即可出现下载插件的分屏界面
放心吧,应该没有问题了,vim-plug支持多线程下载的,比vundle快很多倍

插件推荐以及配置

NERDTree 文件树

实现文件目录功能
下载: Plug 'scrooloose/nerdtree'
配置文件追加:let g:NERDTreeWinSize=20

Airline 状态栏

下载:‘Vim-airline/vim-airline’
配置文件追加:

" 配置 vim-airline 标签栏插件
let g:airline#extensions#tabline#enabled = 1

Coc.vim 代码补全与检测

可以自行学习

Ranger 文件浏览器

下载:Plug 'kevinhwang91/rnvimr'
配置文件追加:

let g:rnvimr_ex_enable = 1
nnoremap <silent> <M-o> : RnvimrToggle<CR>
nnoremap <M-+> :bp<CR>
nnoremap <M--> :bn<CR>

snazzy 主题

"nazzy 主题插件
 colorscheme snazzy
 let g:SnazzyTransparent = 1

indentLine 缩进显示

暂时没有使用

ctags cscope 阅读代码的函数跳转和查找

ctags

安装:

sudo apt-get install exuberant-ctags

cscope

使用命令:
cscope find [option] [filename]
其中
option:
0或者s —— 查找这个C符号
1或者g —— 查找这个定义
2或者d —— 查找被这个函数调用的函数(们)
3或者c —— 查找调用这个函数的函数(们)
4或者t —— 查找这个字符串
6或者e —— 查找这个egrep匹配模式
7或者f —— 查找这个文件
8或者i —— 查找#include这个文件的文件(们)

nmap zs :cs find s =expand(“”)
nmap zg :cs find g =expand(“”)
nmap zc :cs find c =expand(“”)
nmap zt :cs find t =expand(“”)
nmap ze :cs find e =expand(“”)
nmap zf :cs find f =expand(“”)
nmap zi :cs find i =expand(“”)
nmap zd :cs find d =expand(“”)

NerdCommenter

下载 Plug 'scrooloose/nerdcommenter' 快速注释
配置leader:let mapleader = ","

使用:

,ca   在可选的注释方式之间切换,比如C/C++ 的块注释/* */和行注释//
,cc   注释当前行
,c    切换注释/非注释状态
,cs   以”性感”的方式注释
,cA   在当前行尾添加注释符,并进入Insert模式
,cu   取消注释

配置init.vim基本设置

找一篇经典的复制粘贴上去就行,都差不多。
建议将jj映射为esc
为上面的插件的使用映射一些快捷键,方便使用

Tips

不管是本地开发还是远程登陆服务器开发
都建议使用原生CMD和Windows Terminal,不要使用Fluent Terminal,会让NVIM变得很卡,亲身经历
VIM还得是自己养出来的配置文件才用着舒心,对于VIM的语法也应该在平时多积累一点。

我的配置

set nu
let mapleader = "," 
" 插件安装
call plug#begin('~/.config/nvim/plugged')
let g:plug_url_format='git@github.com:%s.git'

Plug 'scrooloose/nerdtree' , {'on':'NERDTreeToggle'}
Plug 'ervandew/supertab'
Plug 'scrooloose/nerdcommenter'
" Coc 智能补全插件引擎
Plug 'neoclide/coc.nvim', {'branch': 'release'}

"标签栏插件
Plug 'Vim-airline/vim-airline'

Plug 'kevinhwang91/rnvimr'

Plug 'mhinz/vim-startify'

Plug 'connorholyday/vim-snazzy'

" markdown 预览插件
Plug 'iamcco/markdown-preview.nvim'

" gtags
Plug 'jsfaint/gen_tags.vim'

call plug#end()

" 配置 Nerdtree 的窗口宽度默认值
let g:NERDTreeWinSize=20
" 配置 vim-airline 标签栏插件
let g:airline#extensions#tabline#enabled = 1

let g:gen_tags#gtags_default_map = 1
let g:airline#extensions#gen_tags#enabled = 1

" 配置 ranger 文件浏览器插件
let g:rnvimr_ex_enable = 1   
" " Alt+o 打开 ranger                                       
nnoremap <silent> <M-o> :RnvimrToggle<CR>
 "Alt+加号 切换至下一个标签,减号则是切换回上一个
nnoremap <M-+> :bp<CR> 
nnoremap <M--> :bn<CR>
"nazzy 主题插件
colorscheme snazzy
let g:SnazzyTransparent = 1

set nowrap    "不自动折行
set showmatch    "光标遇到括号高亮另一半
set cc=80        "标尺线
set encoding=utf-8
set fenc=utf-8 	    "编码
set mouse=a 		    "支持鼠标
set tabstop=2 	    "Tab = 4空格
set expandtab 	    "Tab 转空格
set cursorline    "光标所在行高亮
set scrolloff=5    "垂直滚动时光标距离底部的行数
set hlsearch 		    "搜索时高亮匹配结果
set foldmethod=indent "代码折叠
set foldcolumn=0    "折叠宽度
setlocal foldlevel=14159 "折叠层数
set foldlevelstart=99 "打开文件默认不折叠代码
set paste             "设置粘贴模式
			        
filetype plugin indent on "文件类型检测
syntax on        "语法高亮

nnoremap <leader>gt :!find -name "*.c" -o -name "*.cpp" -o -name "*.h" -o -name "*.hpp" > FileList.txt && ctags -L -< FileList.txt && cscope -bkq -i FileList.txt <CR>
inoremap jk <ESC>

if has("cscope")
    set csto=0
    set nocsverb
    " add any database in current directory
    if filereadable("cscope.out")
        cs add cscope.out
    endif
    set csverb
    "set cst  这两句会将cscope当作tag,当找不到时会卡住,因此注释掉
    "set cscopetag
endif

" Cscope map  mode  1
nmap zs :cs find s <C-R>=expand("<cword>")<CR><CR>
nmap zg :cs find g <C-R>=expand("<cword>")<CR><CR>
nmap zc :cs find c <C-R>=expand("<cword>")<CR><CR>
nmap zt :cs find t <C-R>=expand("<cword>")<CR><CR>
nmap ze :cs find e <C-R>=expand("<cword>")<CR><CR>
nmap zf :cs find f <C-R>=expand("<cfile>")<CR><CR>
nmap zi :cs find i <C-R>=expand("<cfile>")<CR><CR>
nmap zd :cs find d <C-R>=expand("<cword>")<CR><CR>
" Cscope map  mode  2
nmap <C-\>s :cs find s <C-R>=expand("<cword>")<CR><CR>
nmap <C-\>g :cs find g <C-R>=expand("<cword>")<CR><CR>
nmap <C-\>c :cs find c <C-R>=expand("<cword>")<CR><CR>
nmap <C-\>t :cs find t <C-R>=expand("<cword>")<CR><CR>
nmap <C-\>e :cs find e <C-R>=expand("<cword>")<CR><CR>
nmap <C-\>f :cs find f <C-R>=expand("<cfile>")<CR><CR>
nmap <C-\>i :cs find i <C-R>=expand("<cfile>")<CR><CR>
nmap <C-\>d :cs find d <C-R>=expand("<cword>")<CR><CR>

nnoremap <C-n>     :NERDTreeToggle<CR>
nnoremap <C-f>     :NERDTreeFind<CR>

let g:gen_tags#gtags_default_map = 1
let g:gen_tags#root_marker = ".repo"


  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-08-06 11:04:10  更:2022-08-06 11:06:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/3 23:29:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码