为neovim配置插件
我的Ubuntu系统中使用apt命令默认安装的nvim版本是v0.4,而主流插件要求的版本是v0.7,查询后得知包管理器中的安装包更新速度缓慢,需要自己进行配置
方法如下:
- 添加neovim官方的PPA
sudo add-apt-repository ppa:neovim-ppa/stable
- 更新neovim
sudo apt-get update
sudo apt-get upgrade neovim
更新完成后再输入nvim –version查询返回
NVIM v0.7.2
Build type: Release
LuaJIT 2.1.0-beta3
成功更新到v0.7版本
下一步是再neovim里面安装插件
新建一个文件 ~/.config/nvim/init.vim
打开这个文件输入
call plug#begin('~/.config/nvim/plugged')
" 插件
call plug#end()
在plug#begin和plug#end之间就可以配置想要安装的插件
我安装的插件如下:
- coc.nvim:coc.nvim是一款基于语言服务器协议的自动补全插件,支持多种编程语言。
- fzf.vim:fzf.vim是一款模糊搜索插件,可以快速定位文件、缓冲区、代码行等。
- NERDTree:NERDTree是一款文件目录树插件,可以方便地浏览和管理文件。
- vim-airline:vim-airline是一款状态栏美化插件,可以显示当前文件的编码格式、语法高亮等信息。
- vim-commentary:vim-commentary是一款注释插件,可以快速注释和取消注释代码。
全部安装方式如下
Plug 'neoclide/coc.nvim', {'branch': 'release'}
Plug 'junegunn/fzf.vim'
Plug 'preservim/nerdtree'
Plug 'vim-airline/vim-airline'
Plug 'tpope/vim-surround'
编辑完init.vim之后输入:PlugInstall
发现安装不成功,无法连接到对应的库
多试几次即可(
实在不行等个半天再安装
安装完成后coc.vim提示node is not exectuable,
这是因为没有安装coc的依赖项node.js
运行以下命令安装
sudo apt isntall nodejs npm
sudo npm i -g yarn
安装完成后打开nvim显示node.js版本太低
按照如下方法更新node.js
安装node.js
这个我用了很久很久的时间都没办法正常使用wget下载安装
所以最后选择了离线安装的方式.具体步骤太多复杂建议自行百度
总之成功安装node.js>14.14.0之后(我装的是14.15)
就可以激活coc的自动补全了,但是实际使用中发现
无论按下Tab还是ctrl+空格,都没有办法触发自动补全项
经过排查之后发现是没有配置快捷键的原因
在~/.config/nvim/init.vim 文件的末尾加入下列代码并保存
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>"
重启nvim, 成功出发自动补全=w=
累死我了…..
postgreSQL连接测试
新建一个用户testuser并设定密码 ,新建一个数据库testdb
新建文件postgreSQLtest.cpp
输入以下内容:
#include <iostream>
#include <pqxx/pqxx>
using namespace std;
using namespace pqxx;
int main()
{
connection C("dbname=testdb user=testuser password=不予展示");
if(C.is_open())
{
cout<<"open database successfully"<<endl;
}
else
{
cout<<"can't open database"<<endl;
return 1;
}
C.disconnect();
return 0;
}
(这个莫名不能复制,只有手敲一遍了!就当练习打字。。。。)
然后咏唱gcc咒文启动编译(误)
g++ -o postgresqltest postgresqltest.cpp -lpqxx -lpq
如果按照上述步骤来的话,编译完成后直接运行会报一个这样的错误
terminate called after throwing an instance of 'pqxx::broken_connection'
what(): FATAL: Peer authentication failed for user "testuser"
这是因为数据库的本地默认连接方式是peer(好像是根据主机用户名进行认证,我也不懂,往下看吧)
需要把认证方式改成md5也就是密码认证(密码上面已经设置过了)
修改方式如下:
首先找到一个叫做pg_hba.conf的文件,如果没有动过它的话,它大概是在这个位置:
/etc/postgresql/12/main/pg_hba.conf
(12是版本号,根据版本不同有可能是别的数字)
然后把里面的peer有一个算一个都改成md5,保存修改
然后重启数据库:
sudo systemctl restart postgresql
就修改成功了!
修改认证方式后再次运行postgresqltest
输出open database successfully ,说明成功连接到数据库