20230626review


为neovim配置插件

我的Ubuntu系统中使用apt命令默认安装的nvim版本是v0.4,而主流插件要求的版本是v0.7,查询后得知包管理器中的安装包更新速度缓慢,需要自己进行配置
方法如下:

  1. 添加neovim官方的PPA
sudo add-apt-repository ppa:neovim-ppa/stable
  1. 更新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之间就可以配置想要安装的插件

我安装的插件如下:

  1. coc.nvim:coc.nvim是一款基于语言服务器协议的自动补全插件,支持多种编程语言。
  2. fzf.vim:fzf.vim是一款模糊搜索插件,可以快速定位文件、缓冲区、代码行等。
  3. NERDTree:NERDTree是一款文件目录树插件,可以方便地浏览和管理文件。
  4. vim-airline:vim-airline是一款状态栏美化插件,可以显示当前文件的编码格式、语法高亮等信息。
  5. 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 ,说明成功连接到数据库


Author: morphotherain
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint polocy. If reproduced, please indicate source morphotherain !
  TOC