alighters

程序、写作、人生

Neovim 初学与配置

| Comments

Install

Mac 环境下的安装

1
brew install nvim

检查 nvim 环境 在 nvim 下,执行:

1
:checkhealth

Neovim Terminal mode

终端模式 Terminal mode 终端缓冲区 Terminal Buffer (指的是一个进程) tnoremap 用于创建终端模式下的键映射

1. 开启终端模式

进入命令行模式,输入如下:

1
2
3
:terminal
:term         (上者的简写)
:te           (继续简写)

:!{cmd} 命令行模式下,执行命令内容 :read !{cmd} 将命令执行后的内容,添加至当前缓冲区 :terminal {cmd} 通过执行终端模式的命令内容,添加至当前缓冲区 :ls 查看当前所有缓冲区的进程编号

<C-^> 切换缓冲区 :1b 切换到至第一个缓冲区 :1bwipeout! 直接关闭第一个缓冲区的内容

:qa! 退出 neovim,所有终端缓冲区的内容都会被关闭

2. 管理终端缓冲区窗口

1
2
3
4
:terminal {cmd}                当前窗口创建缓冲区
:split | terminal {cmd}      横向分割创建窗口
:vsplit | terminal {cmd}     纵向分割创建窗口
:tabedit | terminal {cmd}        新标签页创建窗口

3. 终端缓冲区使用普通模式的命令

1
nvim +terminal

打开 nvim,并进入终端模式 在切回普通模式时,可以执行常用的 vim 键,如 y p 等。执行 p,会将当前寄存器中的内容粘贴至光标处。

移动常用的命令:

搜索命令 :如 /duo ,通过 n / N 进行下一处、上一处的跳转

gg 跳到顶部 G 跳到底部 向上滚动一行 向下滚动一行 向上滚动半页 向下滚动半页 向下滚动一页 向上滚动一页

在显示出的文件路径上,可以通过 gf 命令,在新开的缓冲区中打开此文件。 <C-^> 可进行切换。

4. 向终端缓冲区发送命令

1
:echo b:terminal_job_id      输出终端缓冲区所在的窗口任务编号
1
:call    jobsend(1, “\<C-c>npm run server\<CR>")       向窗口1发送重启服务的命令

参数 2 需要使用双引号

创建一个临时命令

1
:command Restart call jobsend(1, "\<C-c>npm run server\<CR>")

Plugins

配置 Plug Vim

Plug vim )

Auto Install

1
2
3
4
5
6
7
8
9
10
" Install vim-plug if not found
if empty(glob('~/.vim/autoload/plug.vim'))
  silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs
    \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
endif

" Run PlugInstall if there are missing plugins
autocmd VimEnter * if len(filter(values(g:plugs), '!isdirectory(v:val.dir)'))
  \| PlugInstall --sync | source $MYVIMRC
\| endif

1. Coc.vim

Coc Info

1
:CocInfo

Coc help

1
:h coc-nvim

Coc config

1
:CocConfig

Install extension

1
:CocInstall coc-json coc-tsserver

install python

1
:CocInstall coc-python

commands

1
:CocCommand

check the log info

1
:CocOpenLog

Session 管理

1. 保存会话

1
:mksession

2. 加载会话

1
vim -S

或者使用 source

1
:source Session.vim

3. 自定义会话

1
2
3
:mksession mysession.vim

vim -S mysession.vim

4. Obsession Plugin

tpope/vim-obsession

1
2
:Obsession (:Obsess)         开启自动记录会话,是一个开关,再次输入会自动关闭
:Obsession! (:Obsess!)        完全关闭自动保存

5. 持久化 Undo

1
set undofile

参考资料

Setting Up Neovim for Web Development in 2020 | by Dominik Tarnowski | Better Programming | Medium

版权归作者所有,转载请注明原文链接:/blog/2021/01/10/neovim-initial-setup/

给 Ta 个打赏吧...

Comments